diff --git a/packages/llm/src/providers/factory.ts b/packages/llm/src/providers/factory.ts new file mode 100644 index 0000000..61d6635 --- /dev/null +++ b/packages/llm/src/providers/factory.ts @@ -0,0 +1,15 @@ +import type { LLMProviderConfig } from "@codeboard/shared"; +import type { LLMProvider } from "./base.js"; +import { OpenAIProvider } from "./openai.js"; +import { AnthropicProvider } from "./anthropic.js"; + +export function createProvider(config: LLMProviderConfig): LLMProvider { + switch (config.provider) { + case "openai": + return new OpenAIProvider(config.apiKey, config.model, config.baseUrl); + case "anthropic": + return new AnthropicProvider(config.apiKey, config.model); + default: + throw new Error(`Unknown LLM provider: ${config.provider}`); + } +}