Added Moonshot API support, updated relevant models and settings, optimized OpenAI-compatible providers to handle CORS issues, and enhanced model management capabilities.

This commit is contained in:
duanfuxiang
2025-07-15 22:25:05 +08:00
parent 34296e6871
commit c0cd2ccf4d
9 changed files with 155 additions and 8 deletions

View File

@@ -1,4 +1,4 @@
import { ALIBABA_QWEN_BASE_URL, DEEPSEEK_BASE_URL, GROK_BASE_URL, INFIO_BASE_URL, OPENROUTER_BASE_URL, SILICONFLOW_BASE_URL } from '../../constants'
import { ALIBABA_QWEN_BASE_URL, DEEPSEEK_BASE_URL, GROK_BASE_URL, INFIO_BASE_URL, MOONSHOT_BASE_URL, OPENROUTER_BASE_URL, SILICONFLOW_BASE_URL } from '../../constants'
import { ApiProvider, LLMModel } from '../../types/llm/model'
import {
LLMOptions,
@@ -39,6 +39,7 @@ class LLMManager implements LLMManagerInterface {
private googleProvider: GeminiProvider
private groqProvider: GroqProvider
private grokProvider: OpenAICompatibleProvider
private moonshotProvider: OpenAICompatibleProvider
private infioProvider: OpenAICompatibleProvider
private openrouterProvider: OpenAICompatibleProvider
private siliconflowProvider: OpenAICompatibleProvider
@@ -85,6 +86,12 @@ class LLMManager implements LLMManagerInterface {
settings.grokProvider.baseUrl
: GROK_BASE_URL
)
this.moonshotProvider = new OpenAICompatibleProvider(
settings.moonshotProvider.apiKey,
settings.moonshotProvider.baseUrl && settings.moonshotProvider.useCustomUrl ?
settings.moonshotProvider.baseUrl
: MOONSHOT_BASE_URL
)
this.ollamaProvider = new OllamaProvider(settings.ollamaProvider.baseUrl)
this.openaiCompatibleProvider = new OpenAICompatibleProvider(settings.openaicompatibleProvider.apiKey, settings.openaicompatibleProvider.baseUrl)
this.isInfioEnabled = !!settings.infioProvider.apiKey
@@ -158,6 +165,12 @@ class LLMManager implements LLMManagerInterface {
request,
options,
)
case ApiProvider.Moonshot:
return await this.moonshotProvider.generateResponse(
model,
request,
options,
)
case ApiProvider.OpenAICompatible:
return await this.openaiCompatibleProvider.generateResponse(model, request, options)
default:
@@ -195,6 +208,8 @@ class LLMManager implements LLMManagerInterface {
return await this.groqProvider.streamResponse(model, request, options)
case ApiProvider.Grok:
return await this.grokProvider.streamResponse(model, request, options)
case ApiProvider.Moonshot:
return await this.moonshotProvider.streamResponse(model, request, options)
case ApiProvider.Ollama:
return await this.ollamaProvider.streamResponse(model, request, options)
case ApiProvider.OpenAICompatible: