Execute Groq major re-architecture and migration strategies with strangler fig pattern. Use when migrating to or from Groq, performing major version upgrades, or re-platforming existing integrations...
!npm list groq-sdk openai @anthropic-ai/sdk 2>/dev/null | grep -E "groq|openai|anthropic" || echo 'No LLM SDKs found'
Migrate to Groq from OpenAI, Anthropic, or other LLM providers. Groq's OpenAI-compatible API makes migration straightforward β the primary changes are a different SDK import, different model IDs, and different response metadata. The reward is 10-50x faster inference.
The safe path is a provider-abstraction layer plus feature-flagged traffic shifting: route a small canary to Groq, benchmark quality and speed, ramp to 100%, and keep a one-flag rollback the whole way.
| Source | Complexity | Key Changes |
|---|---|---|
| OpenAI | Low | Import, model IDs, base URL β API shape is identical |
| Anthropic | Medium | Different API shape, message format, streaming protocol |
| Local LLMs | Medium | Remove infra, add API calls |
| Other cloud (Bedrock, Vertex) | Medium | Remove cloud SDK, add groq-sdk |
GROQ_API_KEY) from console.groq.com.groq-sdk installed: npm install groq-sdk.groq_migration_pct value for gradual traffic shifting.OPENAI_API_KEY or equivalent)
so you can run both providers side-by-side during the cutover.>=18 if you use the performance.now() benchmark helper.Steps 1-2 below are the essential skeleton β the two changes every migration needs. Steps 3-7 (the provider abstraction, traffic shifting, scanner, benchmark, and full compatibility matrix) are moved verbatim into the reference files linked under Examples so this file stays scannable.
The minimal change: swap the SDK import, client, and model ID. The response
shape is identical, so downstream code (result.choices[0].message.content)
is untouched.
// BEFORE: OpenAI
import OpenAI from "openai";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const result = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Hello" }],
});
// AFTER: Groq (minimal changes)
import Groq from "groq-sdk";
const groq = new Groq({ apiKey: process.env.GROQ_API_KEY });
const result = await groq.chat.completions.create({
model: "llama-3.3-70b-versatile", // or "llama-3.1-8b-instant"
messages: [{ role: "user", content: "Hello" }],
});
// Same response shape: result.choices[0].message.content
Centralize the OpenAI/Anthropic β Groq translation so a single map drives the whole codebase and unknown models fall back to a safe default.
// OpenAI β Groq model equivalents
const MODEL_MAP: Record<string, string> = {
// OpenAI β Groq (quality equivalent)
"gpt-4o": "llama-3.3-70b-versatile",
"gpt-4o-mini": "llama-3.1-8b-instant",
"gpt-4-turbo": "llama-3.3-70b-versatile",
"gpt-3.5-turbo": "llama-3.1-8b-instant",
// Anthropic β Groq (approximate)
"claude-3-5-sonnet": "llama-3.3-70b-versatile",
"claude-3-haiku": "llama-3.1-8b-instant",
};
function migrateModelId(model: string): string {
return MODEL_MAP[model] || "llama-3.3-70b-versatile";
}
Once Steps 1-2 compile, wrap both providers in a common interface and shift traffic gradually. The full code lives in the references:
Running this skill's workflow produces:
gpt-* model IDs in use, any OpenAI-only features
(embeddings/images/fine-tuning) that block a clean cutover, and the number
of API-key references to update.LLMProvider layer with GroqProvider and
OpenAIProvider implementations both live behind one getProvider() call.groq_migration_pct feature flag driving the canary β 100% ramp, with a
one-flag rollback to 0%.| Issue | Cause | Solution |
|---|---|---|
| Quality regression | Different model strengths | Tune system prompts for Llama models |
| Missing features | Groq doesn't have embeddings/images | Keep OpenAI for those features |
| Rate limits | Different limits than OpenAI | Configure per-model rate limits |
| Cost increase | Different pricing structure | Route simple tasks to 8B model |
For ongoing SDK version upgrades between Groq model generations, see the
companion groq-upgrade-migration skill in this pack.