Skip to content

Repository files navigation

groq-resumer-api

Cloudflare Worker (Hono) que responde perguntas sobre um portfólio via Groq, com base num CV em src/cv.md.

Projeto de estudo: mostra como montar um chat de IA simples, hospedado de graça, para "conversar" com seu currículo.

Endpoint

POST /chat

{
  "messages": [
    { "role": "user", "content": "Qual é a stack principal?" },
    { "role": "assistant", "content": "..." },
    { "role": "user", "content": "sim" }
  ]
}

Compatível também com { "message": "..." } (turno único).

Resposta:

{ "answer": "..." }

Limites: até 12 mensagens; user ≤ 800 chars; assistant ≤ 2000 chars.

Pré-requisitos

  1. Conta Cloudflare
  2. Chave Groq
  3. Bun instalado

Setup local

cd portfolio-chat-api
bun install
cp .dev.vars.example .dev.vars
# edite .dev.vars e cole GROQ_API_KEY
bun run dev

Worker local: http://127.0.0.1:8787

Teste rápido:

curl -X POST http://127.0.0.1:8787/chat \
  -H "Content-Type: application/json" \
  -H "Origin: http://localhost:5173" \
  -d "{\"messages\":[{\"role\":\"user\",\"content\":\"Qual sua formação?\"}]}"

Lint e testes

bun run lint        # Biome
bun run lint:fix   # Biome --write
bun run typecheck   # tsc --noEmit
bun run test        # bun:test

Deploy

1. Login na Cloudflare

bunx wrangler login

Abre o browser, autoriza o Wrangler na sua conta.

2. Configurar o secret (nunca no código)

bunx wrangler secret put GROQ_API_KEY

Cole a chave quando pedir. Fica só no ambiente Cloudflare.

3. Deploy manual

bunx wrangler deploy

Ao terminar, o CLI imprime uma URL tipo:

https://portfolio-chat-api.<seu-subdomain>.workers.dev

4. Ligar no seu site

No componente que faz as perguntas (ex: AskAbout.tsx):

const CHAT_API_URL = 'https://portfolio-chat-api.<seu-subdomain>.workers.dev/chat'

Rebuild e publique seu site.

5. Atualizar o CV

Edite src/cv.md e rode de novo:

bunx wrangler deploy

CI/CD (GitHub Actions)

Push em main dispara .github/workflows/deploy.yml:

  1. bun install
  2. bun run lint && bun run typecheck
  3. bun run test
  4. Deploy via cloudflare/wrangler-action

Secret necessário no repositório GitHub:

  • CLOUDFLARE_API_TOKEN — token com permissão de deploy de Workers

GROQ_API_KEY continua só como secret no Wrangler (não vai no GitHub).

CORS

Configure as origens permitidas via ALLOWED_ORIGINS no wrangler.jsonc, por exemplo:

  • https://seu-usuario.github.io
  • http://localhost:5173 (dev Vite)

Segurança

  • GROQ_API_KEY só como secret / .dev.vars (gitignored)
  • CV em arquivo local (não é segredo; já é público no portfólio)

About

Cloudflare Worker (Hono) que responde perguntas sobre um portfólio via Groq, com base num CV em `src/cv.md`. Projeto de estudo: mostra como montar um chat de IA simples, hospedado de graça, para "conversar" com seu currículo.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages