v4.6.6-search test adapt diff search mode (#685)

This commit is contained in:
Archer
2024-01-03 15:40:03 +08:00
committed by GitHub
parent c766a0ed8a
commit 13b10720ac
57 changed files with 1101 additions and 612 deletions

View File

@@ -176,10 +176,12 @@ async function completions({
{
obj: ChatRoleEnum.Human,
value: replaceVariable(cqModel.functionPrompt || Prompt_CQJson, {
systemPrompt,
typeList: agents.map((item) => `{"${item.value}": ${item.key}}`).join('\n'),
text: `${histories.map((item) => `${item.obj}:${item.value}`).join('\n')}
Human:${userChatInput}`
systemPrompt: systemPrompt || 'null',
typeList: agents
.map((item) => `{"questionType": "${item.value}", "typeId": "${item.key}"}`)
.join('\n'),
history: histories.map((item) => `${item.obj}:${item.value}`).join('\n'),
question: userChatInput
})
}
];
@@ -194,7 +196,8 @@ Human:${userChatInput}`
});
const answer = data.choices?.[0].message?.content || '';
const id = agents.find((item) => answer.includes(item.key))?.key || '';
const id =
agents.find((item) => answer.includes(item.key) || answer.includes(item.value))?.key || '';
return {
inputTokens: data.usage?.prompt_tokens || 0,

View File

@@ -52,7 +52,12 @@ export async function dispatchDatasetSearch(
const concatQueries = [userChatInput];
// start search
const { searchRes, tokens, usingSimilarityFilter } = await searchDatasetData({
const {
searchRes,
tokens,
usingSimilarityFilter,
usingReRank: searchUsingReRank
} = await searchDatasetData({
rawQuery: userChatInput,
queries: concatQueries,
model: vectorModel.model,
@@ -81,7 +86,7 @@ export async function dispatchDatasetSearch(
similarity: usingSimilarityFilter ? similarity : undefined,
limit,
searchMode,
searchUsingReRank: usingReRank
searchUsingReRank: searchUsingReRank
}
};
}

View File

@@ -181,7 +181,7 @@ export async function dispatchModules({
});
}
// get fetch params
// get module running params
const params: Record<string, any> = {};
module.inputs.forEach((item: any) => {
params[item.key] = item.value;
@@ -198,6 +198,7 @@ export async function dispatchModules({
inputs: params
};
// run module
const dispatchRes: Record<string, any> = await (async () => {
if (callbackMap[module.flowType]) {
return callbackMap[module.flowType](dispatchData);
@@ -205,10 +206,13 @@ export async function dispatchModules({
return {};
})();
// format response data. Add modulename and moduletype
const formatResponseData = (() => {
if (!dispatchRes[ModuleOutputKeyEnum.responseData]) return undefined;
if (Array.isArray(dispatchRes[ModuleOutputKeyEnum.responseData]))
if (Array.isArray(dispatchRes[ModuleOutputKeyEnum.responseData])) {
return dispatchRes[ModuleOutputKeyEnum.responseData];
}
return {
moduleName: module.name,
moduleType: module.flowType,
@@ -216,8 +220,16 @@ export async function dispatchModules({
};
})();
// Pass userChatInput
const hasUserChatInputTarget = !!module.outputs.find(
(item) => item.key === ModuleOutputKeyEnum.userChatInput
)?.targets?.length;
return moduleOutput(module, {
[ModuleOutputKeyEnum.finish]: true,
[ModuleOutputKeyEnum.userChatInput]: hasUserChatInputTarget
? params[ModuleOutputKeyEnum.userChatInput]
: undefined,
...dispatchRes,
[ModuleOutputKeyEnum.responseData]: formatResponseData
});