From 7548836b67621d18d0a67abf2786681290d7b8f2 Mon Sep 17 00:00:00 2001 From: jialin Date: Tue, 3 Feb 2026 18:40:16 +0800 Subject: [PATCH] fix: reranker for sglang --- src/locales/en-US/backends.ts | 2 +- src/locales/ja-JP/backends.ts | 2 +- src/locales/ru-RU/backends.ts | 4 +- src/locales/zh-CN/backends.ts | 2 +- .../backends/community/backend-detail.tsx | 4 +- .../playground/components/ground-reranker.tsx | 8 +++- .../reranker/hooks/use-reranker-response.ts | 40 +++++++++++++++++++ .../playground/reranker/params-config.ts | 0 src/pages/resources/config/gpu-driver.ts | 4 +- 9 files changed, 57 insertions(+), 9 deletions(-) create mode 100644 src/pages/playground/reranker/hooks/use-reranker-response.ts create mode 100644 src/pages/playground/reranker/params-config.ts diff --git a/src/locales/en-US/backends.ts b/src/locales/en-US/backends.ts index 1475b8e1..3feda808 100644 --- a/src/locales/en-US/backends.ts +++ b/src/locales/en-US/backends.ts @@ -43,6 +43,6 @@ export default { 'backend.recommendModels': 'Recommended Models', 'backend.filter.source': 'Filter by source', 'backend.add.custom': 'Custom', - 'backend.add.community': 'Community Repository', + 'backend.add.community': 'Community Backends', 'backend.community.title': 'Community Backends Marketplace' }; diff --git a/src/locales/ja-JP/backends.ts b/src/locales/ja-JP/backends.ts index 1475b8e1..3feda808 100644 --- a/src/locales/ja-JP/backends.ts +++ b/src/locales/ja-JP/backends.ts @@ -43,6 +43,6 @@ export default { 'backend.recommendModels': 'Recommended Models', 'backend.filter.source': 'Filter by source', 'backend.add.custom': 'Custom', - 'backend.add.community': 'Community Repository', + 'backend.add.community': 'Community Backends', 'backend.community.title': 'Community Backends Marketplace' }; diff --git a/src/locales/ru-RU/backends.ts b/src/locales/ru-RU/backends.ts index d4934d26..9e9dfc9b 100644 --- a/src/locales/ru-RU/backends.ts +++ b/src/locales/ru-RU/backends.ts @@ -43,7 +43,7 @@ export default { 'backend.recommendModels': 'Recommended Models', 'backend.filter.source': 'Filter by source', 'backend.add.custom': 'Custom', - 'backend.add.community': 'Community Repository', + 'backend.add.community': 'Community Backends', 'backend.community.title': 'Community Backends Marketplace' }; @@ -52,6 +52,6 @@ export default { // 2. 'backend.recommendModels': 'Recommended Models', // 3. 'backend.filter.source': 'Filter by source', // 4. 'backend.add.custom': 'Custom', -// 5. 'backend.add.community': 'Community Repository', +// 5. 'backend.add.community': 'Community Backends', // 6. 'backend.community.title': 'Community Backends Marketplace' // ========== End of To-Do List ========== diff --git a/src/locales/zh-CN/backends.ts b/src/locales/zh-CN/backends.ts index 3913677f..a14aee40 100644 --- a/src/locales/zh-CN/backends.ts +++ b/src/locales/zh-CN/backends.ts @@ -40,6 +40,6 @@ export default { 'backend.recommendModels': '推荐模型', 'backend.filter.source': '按来源过滤', 'backend.add.custom': '自定义', - 'backend.add.community': '社区仓库', + 'backend.add.community': '社区后端', 'backend.community.title': '社区后端市场' }; diff --git a/src/pages/backends/community/backend-detail.tsx b/src/pages/backends/community/backend-detail.tsx index c640af1a..1c32b610 100644 --- a/src/pages/backends/community/backend-detail.tsx +++ b/src/pages/backends/community/backend-detail.tsx @@ -143,7 +143,9 @@ const BackendDetail: React.FC<{ - {currentData?.description} + + {currentData?.description} + )} diff --git a/src/pages/playground/components/ground-reranker.tsx b/src/pages/playground/components/ground-reranker.tsx index d3e637ca..2302b8e6 100644 --- a/src/pages/playground/components/ground-reranker.tsx +++ b/src/pages/playground/components/ground-reranker.tsx @@ -38,6 +38,7 @@ import { rerankerSamples } from '../config/samples'; import { ParamsSchema } from '../config/types'; import { LLM_METAKEYS } from '../hooks/config'; import { useInitLLmMeta } from '../hooks/use-init-meta'; +import useRerankerResponse from '../reranker/hooks/use-reranker-response'; import '../style/ground-llm.less'; import '../style/rerank.less'; import '../style/system-message-wrap.less'; @@ -88,7 +89,7 @@ const fieldConfig: ParamsSchema[] = [ const GroundReranker: React.FC = forwardRef((props, ref) => { const { modelList } = props; - + const { handleSGlangResponse } = useRerankerResponse(); const intl = useIntl(); const requestSource = useRequestToken(); const [show, setShow] = useState(false); @@ -285,7 +286,7 @@ const GroundReranker: React.FC = forwardRef((props, ref) => { setTextList(filledList); - const result: any = await rerankerQuery( + const res: any = await rerankerQuery( { model: parameters.model, top_n: parameters.top_n, @@ -297,6 +298,9 @@ const GroundReranker: React.FC = forwardRef((props, ref) => { } ); + // detect response type + const result = Array.isArray(res) ? handleSGlangResponse(res) : res; + setMessageId(); setTokenResult(result.usage); diff --git a/src/pages/playground/reranker/hooks/use-reranker-response.ts b/src/pages/playground/reranker/hooks/use-reranker-response.ts new file mode 100644 index 00000000..1dfe2913 --- /dev/null +++ b/src/pages/playground/reranker/hooks/use-reranker-response.ts @@ -0,0 +1,40 @@ +type VllmResponse = { + results: { + document: string; + index: number; + relevance_score: number; + }[]; +}; + +type SGLangResponse = { + document: string; + index: number; + score: number; + meta_info: Record; +}[]; + +const useRerankerResponse = () => { + const handleSGlangResponse = (response: SGLangResponse) => { + const promptTokens = response.reduce((acc, curr) => { + return acc + (curr.meta_info?.prompt_tokens || 0); + }, 0); + const results = response.map((item) => ({ + document: item.document, + index: item.index, + relevance_score: item.score + })); + return { + results, + usage: { + prompt_tokens: promptTokens, + total_tokens: promptTokens + } + }; + }; + + const handleVllmResponse = (response: VllmResponse) => {}; + + return { handleSGlangResponse, handleVllmResponse }; +}; + +export default useRerankerResponse; diff --git a/src/pages/playground/reranker/params-config.ts b/src/pages/playground/reranker/params-config.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/pages/resources/config/gpu-driver.ts b/src/pages/resources/config/gpu-driver.ts index 2f2400d9..f2442fb7 100644 --- a/src/pages/resources/config/gpu-driver.ts +++ b/src/pages/resources/config/gpu-driver.ts @@ -1,3 +1,5 @@ +import _ from 'lodash'; + export const GPUDriverMap = { NVIDIA: 'cuda', AMD: 'rocm', @@ -184,7 +186,7 @@ const generateExtraArgs = (params: any) => { } let argsStr = ''; argsList.forEach(([key, value]) => { - argsStr += `${key} ${value} \\\n `; + argsStr += `${key} ${_.isBoolean(value) ? value : value || ''} \\\n `; }); return argsStr; };