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) ...@@ -61,7 +61,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
} }
// 控制在 tokens 数量,防止超出 // 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken); // const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式 // 格式化文本内容成 chatgpt 格式
const map = { const map = {
...@@ -69,12 +69,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -69,12 +69,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
AI: ChatCompletionRequestMessageRoleEnum.Assistant, AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System SYSTEM: ChatCompletionRequestMessageRoleEnum.System
}; };
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map( const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
(item: ChatItemType) => ({ role: map[item.obj],
role: map[item.obj], content: item.value
content: item.value }));
})
);
// console.log(formatPrompts); // console.log(formatPrompts);
// 计算温度 // 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10); const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
...@@ -116,8 +116,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -116,8 +116,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}); });
} else { } else {
// 有匹配情况下,添加知识库内容。 // 有匹配情况下,添加知识库内容。
// 系统提示词过滤,最多 2000 tokens // 系统提示词过滤,最多 2500 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2000); const systemPrompt = systemPromptFilter(formatRedisPrompt, 2500);
prompts.unshift({ prompts.unshift({
obj: 'SYSTEM', obj: 'SYSTEM',
...@@ -128,7 +128,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -128,7 +128,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
} }
// 控制在 tokens 数量,防止超出 // 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken); // const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式 // 格式化文本内容成 chatgpt 格式
const map = { const map = {
...@@ -136,12 +136,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -136,12 +136,10 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
AI: ChatCompletionRequestMessageRoleEnum.Assistant, AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System SYSTEM: ChatCompletionRequestMessageRoleEnum.System
}; };
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map( const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
(item: ChatItemType) => ({ role: map[item.obj],
role: map[item.obj], content: item.value
content: item.value }));
})
);
// console.log(formatPrompts); // console.log(formatPrompts);
// 计算温度 // 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10); const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
...@@ -74,21 +74,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -74,21 +74,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}); });
} }
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式 // 格式化文本内容成 chatgpt 格式
const map = { const map = {
Human: ChatCompletionRequestMessageRoleEnum.User, Human: ChatCompletionRequestMessageRoleEnum.User,
AI: ChatCompletionRequestMessageRoleEnum.Assistant, AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System SYSTEM: ChatCompletionRequestMessageRoleEnum.System
}; };
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map( const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
(item: ChatItemType) => ({ role: map[item.obj],
role: map[item.obj], content: item.value
content: item.value }));
})
);
// console.log(formatPrompts); // console.log(formatPrompts);
// 计算温度 // 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10); const temperature = modelConstantsData.maxTemperature * (model.temperature / 10);
......
...@@ -140,8 +140,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -140,8 +140,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}); });
} else { } else {
// 有匹配或者低匹配度模式情况下,添加知识库内容。 // 有匹配或者低匹配度模式情况下,添加知识库内容。
// 系统提示词过滤,最多 2800 tokens // 系统提示词过滤,最多 2500 tokens
const systemPrompt = systemPromptFilter(formatRedisPrompt, 2800); const systemPrompt = systemPromptFilter(formatRedisPrompt, 2500);
prompts.unshift({ prompts.unshift({
obj: 'SYSTEM', obj: 'SYSTEM',
...@@ -151,21 +151,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) ...@@ -151,21 +151,16 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}); });
} }
// 控制在 tokens 数量,防止超出
const filterPrompts = openaiChatFilter(prompts, modelConstantsData.contextMaxToken);
// 格式化文本内容成 chatgpt 格式 // 格式化文本内容成 chatgpt 格式
const map = { const map = {
Human: ChatCompletionRequestMessageRoleEnum.User, Human: ChatCompletionRequestMessageRoleEnum.User,
AI: ChatCompletionRequestMessageRoleEnum.Assistant, AI: ChatCompletionRequestMessageRoleEnum.Assistant,
SYSTEM: ChatCompletionRequestMessageRoleEnum.System SYSTEM: ChatCompletionRequestMessageRoleEnum.System
}; };
const formatPrompts: ChatCompletionRequestMessage[] = filterPrompts.map( const formatPrompts: ChatCompletionRequestMessage[] = prompts.map((item: ChatItemType) => ({
(item: ChatItemType) => ({ role: map[item.obj],
role: map[item.obj], content: item.value
content: item.value }));
})
);
// console.log(formatPrompts); // console.log(formatPrompts);
// 计算温度 // 计算温度
const temperature = modelConstantsData.maxTemperature * (model.temperature / 10); 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