From af14225d3165aad370a3e34bc34fd95e9fa90145 Mon Sep 17 00:00:00 2001 From: mosade <384466872@qq.com> Date: Sun, 23 Jun 2024 16:14:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20fix=20incorrect=20baseURL?= =?UTF-8?q?=20for=20Groq=20in=20client=20mode=20(#2747)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/__tests__/chat.test.ts | 11 +++++++++-- src/services/chat.ts | 4 ++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/services/__tests__/chat.test.ts b/src/services/__tests__/chat.test.ts index e687befd5db8c..60c7d34d8544f 100644 --- a/src/services/__tests__/chat.test.ts +++ b/src/services/__tests__/chat.test.ts @@ -1,6 +1,7 @@ import { LobeChatPluginManifest } from '@lobehub/chat-plugin-sdk'; import { act } from '@testing-library/react'; import { merge } from 'lodash-es'; +import OpenAI from 'openai'; import { describe, expect, it, vi } from 'vitest'; import { DEFAULT_AGENT_CONFIG } from '@/const/settings'; @@ -15,6 +16,7 @@ import { LobeMoonshotAI, LobeOllamaAI, LobeOpenAI, + LobeOpenAICompatibleRuntime, LobeOpenRouterAI, LobePerplexityAI, LobeQwenAI, @@ -863,19 +865,24 @@ describe('AgentRuntimeOnClient', () => { expect(runtime['_runtime']).toBeInstanceOf(LobeZeroOneAI); }); - it('Groq provider: with apiKey', async () => { + it('Groq provider: with apiKey,endpoint', async () => { merge(initialSettingsState, { settings: { keyVaults: { groq: { apiKey: 'user-groq-key', + baseURL: 'user-groq-endpoint', }, }, }, } as UserSettingsState) as unknown as UserStore; const runtime = await initializeWithClientStore(ModelProvider.Groq, {}); expect(runtime).toBeInstanceOf(AgentRuntime); - expect(runtime['_runtime']).toBeInstanceOf(LobeGroq); + const lobeOpenAICompatibleInstance = runtime['_runtime'] as LobeOpenAICompatibleRuntime; + expect(lobeOpenAICompatibleInstance).toBeInstanceOf(LobeGroq); + expect(lobeOpenAICompatibleInstance.baseURL).toBe('user-groq-endpoint'); + expect(lobeOpenAICompatibleInstance.client).toBeInstanceOf(OpenAI); + expect(lobeOpenAICompatibleInstance.client.apiKey).toBe('user-groq-key'); }); it('DeepSeek provider: with apiKey', async () => { diff --git a/src/services/chat.ts b/src/services/chat.ts index 3eb78b3000939..f68f7344a28e4 100644 --- a/src/services/chat.ts +++ b/src/services/chat.ts @@ -140,6 +140,10 @@ export function initializeWithClientStore(provider: string, payload: any) { break; } case ModelProvider.Groq: { + providerOptions = { + apikey: providerAuthPayload?.apiKey, + baseURL: providerAuthPayload?.endpoint, + }; break; } case ModelProvider.DeepSeek: {