| 82 | } |
| 83 | |
| 84 | export function constructLlmApi(config: LLMConfig): BaseLlmApi | undefined { |
| 85 | if (process.env.CONTINUE_USE_AI_SDK) { |
| 86 | if (["openai", "anthropic"].includes(config.provider)) { |
| 87 | const aiSdkApi = createAiSdkApiForProvider( |
| 88 | config as LLMConfig & { model?: string }, |
| 89 | config.provider, |
| 90 | ); |
| 91 | if (aiSdkApi) { |
| 92 | return aiSdkApi; |
| 93 | } |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | switch (config.provider) { |
| 98 | case "openai": |
| 99 | return new OpenAIApi(config); |
| 100 | case "azure": |
| 101 | return new AzureApi(config); |
| 102 | case "bedrock": |
| 103 | return new BedrockApi(config); |
| 104 | case "cohere": |
| 105 | return new CohereApi(config); |
| 106 | case "cometapi": |
| 107 | return new CometAPIApi(config); |
| 108 | case "askSage": |
| 109 | return new AskSageApi(config); |
| 110 | case "anthropic": |
| 111 | return new AnthropicApi(config); |
| 112 | case "gemini": |
| 113 | return new GeminiApi(config); |
| 114 | case "jina": |
| 115 | return new JinaApi(config); |
| 116 | case "deepseek": |
| 117 | return new DeepSeekApi(config); |
| 118 | case "moonshot": |
| 119 | return new MoonshotApi(config); |
| 120 | case "relace": |
| 121 | return new RelaceApi(config); |
| 122 | case "inception": |
| 123 | return new InceptionApi(config); |
| 124 | case "watsonx": |
| 125 | return new WatsonXApi(config); |
| 126 | case "vertexai": |
| 127 | return new VertexAIApi(config); |
| 128 | case "llamastack": |
| 129 | return new LlamastackApi(config); |
| 130 | case "xAI": |
| 131 | return openAICompatible("https://api.x.ai/v1/", config); |
| 132 | case "zAI": |
| 133 | return openAICompatible("https://api.z.ai/api/paas/v4/", config); |
| 134 | case "voyage": |
| 135 | return openAICompatible("https://api.voyageai.com/v1/", config); |
| 136 | case "mistral": |
| 137 | return openAICompatible("https://api.mistral.ai/v1/", config); |
| 138 | case "deepinfra": |
| 139 | return openAICompatible("https://api.deepinfra.com/v1/openai/", config); |
| 140 | case "vllm": |
| 141 | return openAICompatible("http://localhost:8000/v1/", config); |