From efac5312b408d9d1c89ef0a3fb3562a2e071e45c Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Mon, 3 Mar 2025 11:49:35 +0800 Subject: [PATCH] fix: rerank model cannot use ai proxy (#3945) * fix: collection list count * fix: collection list count * fix: rerank model cannot use ai proxy * mongo init --- packages/service/common/mongo/init.ts | 22 +++++++++++++++---- packages/service/core/ai/config.ts | 2 +- .../core/ai/config/provider/AliCloud.json | 10 +++++++-- packages/web/i18n/en/account_model.json | 1 + packages/web/i18n/zh-CN/account_model.json | 1 + packages/web/i18n/zh-Hant/account_model.json | 1 + .../account/model/Log/index.tsx | 11 ++++++++++ projects/app/src/web/core/ai/channel.ts | 2 ++ 8 files changed, 43 insertions(+), 7 deletions(-) diff --git a/packages/service/common/mongo/init.ts b/packages/service/common/mongo/init.ts index ea9aca4e3..e43814a67 100644 --- a/packages/service/common/mongo/init.ts +++ b/packages/service/common/mongo/init.ts @@ -16,16 +16,30 @@ export async function connectMongo(): Promise { console.log('mongo start connect'); try { + // Remove existing listeners to prevent duplicates + connectionMongo.connection.removeAllListeners('error'); + connectionMongo.connection.removeAllListeners('disconnected'); connectionMongo.set('strictQuery', false); connectionMongo.connection.on('error', async (error) => { console.log('mongo error', error); - await connectionMongo.disconnect(); - await delay(1000); - connectMongo(); + try { + if (connectionMongo.connection.readyState !== 0) { + await connectionMongo.disconnect(); + await delay(1000); + await connectMongo(); + } + } catch (error) {} }); - connectionMongo.connection.on('disconnected', () => { + connectionMongo.connection.on('disconnected', async () => { console.log('mongo disconnected'); + try { + if (connectionMongo.connection.readyState !== 0) { + await connectionMongo.disconnect(); + await delay(1000); + await connectMongo(); + } + } catch (error) {} }); await connectionMongo.connect(process.env.MONGODB_URI as string, { diff --git a/packages/service/core/ai/config.ts b/packages/service/core/ai/config.ts index c2fb5688c..15013b07f 100644 --- a/packages/service/core/ai/config.ts +++ b/packages/service/core/ai/config.ts @@ -35,7 +35,7 @@ export const getAxiosConfig = (props?: { userKey?: OpenaiAccountType }) => { const { userKey } = props || {}; const baseUrl = userKey?.baseUrl || global?.systemEnv?.oneapiUrl || openaiBaseUrl; - const apiKey = userKey?.key || global?.systemEnv?.chatApiKey || process.env.CHAT_API_KEY || ''; + const apiKey = userKey?.key || global?.systemEnv?.chatApiKey || openaiBaseKey; return { baseUrl, diff --git a/packages/service/core/ai/config/provider/AliCloud.json b/packages/service/core/ai/config/provider/AliCloud.json index 703ed71d0..64a175c56 100644 --- a/packages/service/core/ai/config/provider/AliCloud.json +++ b/packages/service/core/ai/config/provider/AliCloud.json @@ -1,4 +1,10 @@ { "provider": "AliCloud", - "list": [] -} \ No newline at end of file + "list": [ + { + "model": "SenseVoiceSmall", + "name": "SenseVoiceSmall", + "type": "stt" + } + ] +} diff --git a/packages/web/i18n/en/account_model.json b/packages/web/i18n/en/account_model.json index 6e95eb545..dcf4a7866 100644 --- a/packages/web/i18n/en/account_model.json +++ b/packages/web/i18n/en/account_model.json @@ -24,6 +24,7 @@ "key_type": "API key format:", "log": "Call log", "log_detail": "Log details", + "log_request_id_search": "Search by requestId", "log_status": "Status", "mapping": "Model Mapping", "mapping_tip": "A valid Json is required. \nThe model can be mapped when sending a request to the actual address. \nFor example:\n{\n \n \"gpt-4o\": \"gpt-4o-test\"\n\n}\n\nWhen FastGPT requests the gpt-4o model, the gpt-4o-test model is sent to the actual address, instead of gpt-4o.", diff --git a/packages/web/i18n/zh-CN/account_model.json b/packages/web/i18n/zh-CN/account_model.json index 9e8bb55b9..89550d17b 100644 --- a/packages/web/i18n/zh-CN/account_model.json +++ b/packages/web/i18n/zh-CN/account_model.json @@ -24,6 +24,7 @@ "key_type": "API key 格式: ", "log": "调用日志", "log_detail": "日志详情", + "log_request_id_search": "根据 requestId 搜索", "log_status": "状态", "mapping": "模型映射", "mapping_tip": "需填写一个有效 Json。可在向实际地址发送请求时,对模型进行映射。例如:\n{\n \"gpt-4o\": \"gpt-4o-test\"\n}\n当 FastGPT 请求 gpt-4o 模型时,会向实际地址发送 gpt-4o-test 的模型,而不是 gpt-4o。", diff --git a/packages/web/i18n/zh-Hant/account_model.json b/packages/web/i18n/zh-Hant/account_model.json index 671c2fae7..20b56ca6a 100644 --- a/packages/web/i18n/zh-Hant/account_model.json +++ b/packages/web/i18n/zh-Hant/account_model.json @@ -22,6 +22,7 @@ "key_type": "API key 格式:", "log": "調用日誌", "log_detail": "日誌詳情", + "log_request_id_search": "根據 requestId 搜索", "log_status": "狀態", "mapping": "模型映射", "mapping_tip": "需填寫一個有效 Json。\n可在向實際地址發送請求時,對模型進行映射。\n例如:\n{\n \n \"gpt-4o\": \"gpt-4o-test\"\n\n}\n\n當 FastGPT 請求 gpt-4o 模型時,會向實際地址發送 gpt-4o-test 的模型,而不是 gpt-4o。", diff --git a/projects/app/src/pageComponents/account/model/Log/index.tsx b/projects/app/src/pageComponents/account/model/Log/index.tsx index eb29bf877..6da4e2954 100644 --- a/projects/app/src/pageComponents/account/model/Log/index.tsx +++ b/projects/app/src/pageComponents/account/model/Log/index.tsx @@ -32,6 +32,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import MyModal from '@fastgpt/web/components/common/MyModal'; import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; +import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; type LogDetailType = { id: number; @@ -55,11 +56,13 @@ const ChannelLog = ({ Tab }: { Tab: React.ReactNode }) => { const isRoot = userInfo?.username === 'root'; const [filterProps, setFilterProps] = useState<{ + request_id?: string; channelId?: string; model?: string; code_type: 'all' | 'success' | 'error'; dateRange: DateRangeType; }>({ + request_id: '', code_type: 'all', dateRange: { from: (() => { @@ -125,6 +128,7 @@ const ChannelLog = ({ Tab }: { Tab: React.ReactNode }) => { pageSize: 20, refreshDeps: [filterProps], params: { + request_id: filterProps.request_id, channel: filterProps.channelId, model_name: filterProps.model, code_type: filterProps.code_type, @@ -172,6 +176,13 @@ const ChannelLog = ({ Tab }: { Tab: React.ReactNode }) => { {Tab} + + setFilterProps({ ...filterProps, request_id: e.target.value })} + /> + )} diff --git a/projects/app/src/web/core/ai/channel.ts b/projects/app/src/web/core/ai/channel.ts index 7169b9106..b7a10061b 100644 --- a/projects/app/src/web/core/ai/channel.ts +++ b/projects/app/src/web/core/ai/channel.ts @@ -152,6 +152,7 @@ export const putChannel = (data: ChannelInfoType) => export const deleteChannel = (id: number) => DELETE(`/channel/${id}`); export const getChannelLog = (params: { + request_id?: string; channel?: string; model_name?: string; code_type?: 'all' | 'success' | 'error'; @@ -164,6 +165,7 @@ export const getChannelLog = (params: { logs: ChannelLogListItemType[]; total: number; }>(`/logs/search`, { + request_id: params.request_id, channel: params.channel, model_name: params.model_name, code_type: params.code_type,