Skip to content

feat(api): cambia el proveedor LLM de Claude a Groq (RF-07) - #22

Merged
ErgoCodes merged 1 commit into
mainfrom
feat/llm-groq-provider
Sep 30, 2026
Merged

ErgoCodes merged 1 commit into
mainfrom
feat/llm-groq-provider

Conversation

@ErgoCodes

@ErgoCodes ErgoCodes commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Resumen

  • La generación pasa a Groq (openai/gpt-oss-120b, https://api.groq.com/openai/v1/chat/completions) con un adaptador nuevo, groq-llm.provider.ts, que sustituye a claude-llm.provider.ts. HTTP directo, sin SDK, igual que Voyage.
  • Motivo, registrado en REQUIREMENTS.md §10 (2026-09-28): Gemini devolvía 503 repetidos en el tier gratuito de su API y OpenRouter daba 404 "unavailable for free" en tres modelos :free pese a tener la cuota intacta. La capa gratuita de Groq no usa créditos, solo límites de tasa, y no pide tarjeta.
  • El puerto LlmProvider, el prompt (separación dato/instrucción de RNF-05) y las citas no cambian; solo el adaptador y la configuración.
  • Variables: CLAUDE_API_KEY/CLAUDE_MODEL → GROQ_API_KEY/GROQ_MODEL (config.ts, .env.example, config de tests).
  • Docs: CLAUDE.md, REQUIREMENTS.md (tabla de stack y §10) y README.md (arquitectura, stack, cómo ejecutarlo, nueva decisión "Generación", costes) dejan de nombrar Claude/Haiku. También se quita de la justificación de Voyage el motivo "integración coherente con Claude", que ya no aplica.

⚠️ Rompe el .env local: después de mergear hay que añadir GROQ_API_KEY (y quitar CLAUDE_API_KEY), o la API no arranca porque la validación de configuración falla.

#23 (rate limiting) está apilada sobre esta rama: mergear esta primero.

Test plan

  • pnpm --filter @docqa/api lint / typecheck
  • pnpm --filter @docqa/api test (tests del adaptador con fetch mockeado: cabeceras, cuerpo, errores HTTP, respuesta vacía)
  • pnpm --filter @docqa/api test:integration (Mongo real, verificado junto con feat(api): límite de 20 preguntas por minuto por usuario (RNF-04) #23)
  • Hacer una pregunta en local con una GROQ_API_KEY real y comprobar respuesta y citas

🤖 Generated with Claude Code

La generación pasa a Groq (`openai/gpt-oss-120b`) tras descartar Gemini
(503 repetidos en el tier gratuito de la API) y OpenRouter (404 "unavailable
for free" en los modelos gratuitos pese a tener cuota intacta). La capa
gratuita de Groq no usa créditos, solo límites de tasa, y no pide tarjeta,
así que la demo pública funciona sin coste.

Solo cambia el adaptador: el puerto LlmProvider, el prompt (RNF-05) y las
citas quedan igual. Las variables pasan a GROQ_API_KEY y GROQ_MODEL.
REQUIREMENTS.md registra la decisión en la sección 10, y README y CLAUDE.md
dejan de nombrar a Claude/Haiku como modelo de generación.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ErgoCodes
ErgoCodes merged commit 3771da7 into main Sep 30, 2026
2 checks passed
@ErgoCodes
ErgoCodes deleted the feat/llm-groq-provider branch September 30, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant