fix: reranker for sglang
This commit is contained in:
@@ -43,6 +43,6 @@ export default {
|
|||||||
'backend.recommendModels': 'Recommended Models',
|
'backend.recommendModels': 'Recommended Models',
|
||||||
'backend.filter.source': 'Filter by source',
|
'backend.filter.source': 'Filter by source',
|
||||||
'backend.add.custom': 'Custom',
|
'backend.add.custom': 'Custom',
|
||||||
'backend.add.community': 'Community Repository',
|
'backend.add.community': 'Community Backends',
|
||||||
'backend.community.title': 'Community Backends Marketplace'
|
'backend.community.title': 'Community Backends Marketplace'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -43,6 +43,6 @@ export default {
|
|||||||
'backend.recommendModels': 'Recommended Models',
|
'backend.recommendModels': 'Recommended Models',
|
||||||
'backend.filter.source': 'Filter by source',
|
'backend.filter.source': 'Filter by source',
|
||||||
'backend.add.custom': 'Custom',
|
'backend.add.custom': 'Custom',
|
||||||
'backend.add.community': 'Community Repository',
|
'backend.add.community': 'Community Backends',
|
||||||
'backend.community.title': 'Community Backends Marketplace'
|
'backend.community.title': 'Community Backends Marketplace'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export default {
|
|||||||
'backend.recommendModels': 'Recommended Models',
|
'backend.recommendModels': 'Recommended Models',
|
||||||
'backend.filter.source': 'Filter by source',
|
'backend.filter.source': 'Filter by source',
|
||||||
'backend.add.custom': 'Custom',
|
'backend.add.custom': 'Custom',
|
||||||
'backend.add.community': 'Community Repository',
|
'backend.add.community': 'Community Backends',
|
||||||
'backend.community.title': 'Community Backends Marketplace'
|
'backend.community.title': 'Community Backends Marketplace'
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -52,6 +52,6 @@ export default {
|
|||||||
// 2. 'backend.recommendModels': 'Recommended Models',
|
// 2. 'backend.recommendModels': 'Recommended Models',
|
||||||
// 3. 'backend.filter.source': 'Filter by source',
|
// 3. 'backend.filter.source': 'Filter by source',
|
||||||
// 4. 'backend.add.custom': 'Custom',
|
// 4. 'backend.add.custom': 'Custom',
|
||||||
// 5. 'backend.add.community': 'Community Repository',
|
// 5. 'backend.add.community': 'Community Backends',
|
||||||
// 6. 'backend.community.title': 'Community Backends Marketplace'
|
// 6. 'backend.community.title': 'Community Backends Marketplace'
|
||||||
// ========== End of To-Do List ==========
|
// ========== End of To-Do List ==========
|
||||||
|
|||||||
@@ -40,6 +40,6 @@ export default {
|
|||||||
'backend.recommendModels': '推荐模型',
|
'backend.recommendModels': '推荐模型',
|
||||||
'backend.filter.source': '按来源过滤',
|
'backend.filter.source': '按来源过滤',
|
||||||
'backend.add.custom': '自定义',
|
'backend.add.custom': '自定义',
|
||||||
'backend.add.community': '社区仓库',
|
'backend.add.community': '社区后端',
|
||||||
'backend.community.title': '社区后端市场'
|
'backend.community.title': '社区后端市场'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -143,7 +143,9 @@ const BackendDetail: React.FC<{
|
|||||||
</span>
|
</span>
|
||||||
</Subtitle>
|
</Subtitle>
|
||||||
<Content>
|
<Content>
|
||||||
<Typography.Text>{currentData?.description}</Typography.Text>
|
<Typography.Paragraph>
|
||||||
|
{currentData?.description}
|
||||||
|
</Typography.Paragraph>
|
||||||
</Content>
|
</Content>
|
||||||
</Section>
|
</Section>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import { rerankerSamples } from '../config/samples';
|
|||||||
import { ParamsSchema } from '../config/types';
|
import { ParamsSchema } from '../config/types';
|
||||||
import { LLM_METAKEYS } from '../hooks/config';
|
import { LLM_METAKEYS } from '../hooks/config';
|
||||||
import { useInitLLmMeta } from '../hooks/use-init-meta';
|
import { useInitLLmMeta } from '../hooks/use-init-meta';
|
||||||
|
import useRerankerResponse from '../reranker/hooks/use-reranker-response';
|
||||||
import '../style/ground-llm.less';
|
import '../style/ground-llm.less';
|
||||||
import '../style/rerank.less';
|
import '../style/rerank.less';
|
||||||
import '../style/system-message-wrap.less';
|
import '../style/system-message-wrap.less';
|
||||||
@@ -88,7 +89,7 @@ const fieldConfig: ParamsSchema[] = [
|
|||||||
|
|
||||||
const GroundReranker: React.FC<MessageProps> = forwardRef((props, ref) => {
|
const GroundReranker: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||||
const { modelList } = props;
|
const { modelList } = props;
|
||||||
|
const { handleSGlangResponse } = useRerankerResponse();
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
const requestSource = useRequestToken();
|
const requestSource = useRequestToken();
|
||||||
const [show, setShow] = useState(false);
|
const [show, setShow] = useState(false);
|
||||||
@@ -285,7 +286,7 @@ const GroundReranker: React.FC<MessageProps> = forwardRef((props, ref) => {
|
|||||||
|
|
||||||
setTextList(filledList);
|
setTextList(filledList);
|
||||||
|
|
||||||
const result: any = await rerankerQuery(
|
const res: any = await rerankerQuery(
|
||||||
{
|
{
|
||||||
model: parameters.model,
|
model: parameters.model,
|
||||||
top_n: parameters.top_n,
|
top_n: parameters.top_n,
|
||||||
@@ -297,6 +298,9 @@ const GroundReranker: React.FC<MessageProps> = forwardRef((props, ref) => {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// detect response type
|
||||||
|
const result = Array.isArray(res) ? handleSGlangResponse(res) : res;
|
||||||
|
|
||||||
setMessageId();
|
setMessageId();
|
||||||
setTokenResult(result.usage);
|
setTokenResult(result.usage);
|
||||||
|
|
||||||
|
|||||||
@@ -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<string, any>;
|
||||||
|
}[];
|
||||||
|
|
||||||
|
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;
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import _ from 'lodash';
|
||||||
|
|
||||||
export const GPUDriverMap = {
|
export const GPUDriverMap = {
|
||||||
NVIDIA: 'cuda',
|
NVIDIA: 'cuda',
|
||||||
AMD: 'rocm',
|
AMD: 'rocm',
|
||||||
@@ -184,7 +186,7 @@ const generateExtraArgs = (params: any) => {
|
|||||||
}
|
}
|
||||||
let argsStr = '';
|
let argsStr = '';
|
||||||
argsList.forEach(([key, value]) => {
|
argsList.forEach(([key, value]) => {
|
||||||
argsStr += `${key} ${value} \\\n `;
|
argsStr += `${key} ${_.isBoolean(value) ? value : value || ''} \\\n `;
|
||||||
});
|
});
|
||||||
return argsStr;
|
return argsStr;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user