Commit 647f7016 by archer

perf: 去除内容截取

parent 0db413ab
## 常见问题
**内容长度**
单次最长 4000 tokens, 上下文最长 8000 tokens, 上下文超长时会被截断。
chatgpt 上下文最长 4096 tokens, 上下文超长时会报错。
**删除和复制**
点击对话头像,可以选择复制或删除该条内容。
......
......@@ -61,7 +61,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式
const map = {
......@@ -69,12 +69,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System
};
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map(
(item: ChatItemType) => ({
role: map[item.obj],
content: item.value
})
);
const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
role: map[item.obj],
content: item.value
}));
// console.log(formatPrompts);
// 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
......@@ -116,8 +116,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
});
} else {
// 有匹配情况下,添加知识库内容。
// 系统提示词过滤,最多 2000 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2000);
// 系统提示词过滤,最多 2500 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2500);
prompts.unshift({
obj: 'SYSTEM',
......@@ -128,7 +128,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式
const map = {
......@@ -136,12 +136,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System
};
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map(
(item: ChatItemType) => ({
role: map[item.obj],
content: item.value
})
);
const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
role: map[item.obj],
content: item.value
}));
// console.log(formatPrompts);
// 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
......@@ -74,21 +74,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
});
}
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式
const map = {
Human: ChatCompletionRequestMessageRoleEnum.User,
AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System
};
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map(
(item: ChatItemType) => ({
role: map[item.obj],
content: item.value
})
);
const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
role: map[item.obj],
content: item.value
}));
// console.log(formatPrompts);
// 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
......@@ -140,8 +140,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
});
} else {
// 有匹配或者低匹配度模式情况下,添加知识库内容。
// 系统提示词过滤,最多 2800 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2800);
// 系统提示词过滤,最多 2500 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2500);
prompts.unshift({
obj: 'SYSTEM',
......@@ -151,21 +151,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
});
}
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式
const map = {
Human: ChatCompletionRequestMessageRoleEnum.User,
AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System
};
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map(
(item: ChatItemType) => ({
role: map[item.obj],
content: item.value
})
);
const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
role: map[item.obj],
content: item.value
}));
// console.log(formatPrompts);
// 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment