mirror of
https://github.com/EthanMarti/infio-copilot.git
synced 2026-05-10 00:47:46 +00:00
add grok
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { ALIBABA_QWEN_BASE_URL, DEEPSEEK_BASE_URL, OPENROUTER_BASE_URL, SILICONFLOW_BASE_URL } from '../../constants'
|
||||
import { ALIBABA_QWEN_BASE_URL, DEEPSEEK_BASE_URL, GROK_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 anthropicProvider: AnthropicProvider
|
||||
private googleProvider: GeminiProvider
|
||||
private groqProvider: GroqProvider
|
||||
private grokProvider: OpenAICompatibleProvider
|
||||
private infioProvider: InfioProvider
|
||||
private openrouterProvider: OpenAICompatibleProvider
|
||||
private siliconflowProvider: OpenAICompatibleProvider
|
||||
@@ -77,6 +78,16 @@ class LLMManager implements LLMManagerInterface {
|
||||
this.anthropicProvider = new AnthropicProvider(settings.anthropicProvider.apiKey)
|
||||
this.googleProvider = new GeminiProvider(settings.googleProvider.apiKey)
|
||||
this.groqProvider = new GroqProvider(settings.groqProvider.apiKey)
|
||||
console.log('GrokProvider',
|
||||
settings.grokProvider.apiKey,
|
||||
settings.grokProvider.baseUrl,
|
||||
settings.grokProvider.useCustomUrl
|
||||
)
|
||||
this.grokProvider = new OpenAICompatibleProvider(settings.grokProvider.apiKey,
|
||||
settings.grokProvider.baseUrl && settings.grokProvider.useCustomUrl ?
|
||||
settings.grokProvider.baseUrl
|
||||
: GROK_BASE_URL
|
||||
)
|
||||
this.ollamaProvider = new OllamaProvider(settings.ollamaProvider.baseUrl)
|
||||
this.openaiCompatibleProvider = new OpenAICompatibleProvider(settings.openaicompatibleProvider.apiKey, settings.openaicompatibleProvider.baseUrl)
|
||||
this.isInfioEnabled = !!settings.infioProvider.apiKey
|
||||
@@ -145,6 +156,12 @@ class LLMManager implements LLMManagerInterface {
|
||||
request,
|
||||
options,
|
||||
)
|
||||
case ApiProvider.Grok:
|
||||
return await this.grokProvider.generateResponse(
|
||||
model,
|
||||
request,
|
||||
options,
|
||||
)
|
||||
case ApiProvider.OpenAICompatible:
|
||||
return await this.openaiCompatibleProvider.generateResponse(model, request, options)
|
||||
default:
|
||||
@@ -182,6 +199,8 @@ class LLMManager implements LLMManagerInterface {
|
||||
return await this.googleProvider.streamResponse(model, request, options)
|
||||
case ApiProvider.Groq:
|
||||
return await this.groqProvider.streamResponse(model, request, options)
|
||||
case ApiProvider.Grok:
|
||||
return await this.grokProvider.streamResponse(model, request, options)
|
||||
case ApiProvider.Ollama:
|
||||
return await this.ollamaProvider.streamResponse(model, request, options)
|
||||
case ApiProvider.OpenAICompatible:
|
||||
|
||||
@@ -22,7 +22,8 @@ export class OpenAICompatibleProvider implements BaseLLMProvider {
|
||||
private baseURL: string
|
||||
|
||||
constructor(apiKey: string, baseURL: string) {
|
||||
this.adapter = new OpenAIMessageAdapter()
|
||||
console.log('OpenAICompatibleProvider constructor', apiKey, baseURL)
|
||||
this.adapter = new OpenAIMessageAdapter()
|
||||
this.client = new OpenAI({
|
||||
apiKey: apiKey,
|
||||
baseURL: baseURL,
|
||||
@@ -37,6 +38,7 @@ export class OpenAICompatibleProvider implements BaseLLMProvider {
|
||||
request: LLMRequestNonStreaming,
|
||||
options?: LLMOptions,
|
||||
): Promise<LLMResponseNonStreaming> {
|
||||
console.log('OpenAICompatibleProvider generateResponse', this.baseURL, this.apiKey)
|
||||
if (!this.baseURL || !this.apiKey) {
|
||||
throw new LLMBaseUrlNotSetException(
|
||||
'OpenAI Compatible base URL or API key is missing. Please set it in settings menu.',
|
||||
|
||||
Reference in New Issue
Block a user