diff --git a/public/docs/chatProblem.md b/public/docs/chatProblem.md index 90b4641bb..9b46c72ef 100644 --- a/public/docs/chatProblem.md +++ b/public/docs/chatProblem.md @@ -1,6 +1,6 @@ ## 常见问题 **内容长度** -单次最长 4000 tokens, 上下文最长 8000 tokens, 上下文超长时会被截断。 +chatgpt 上下文最长 4096 tokens, 上下文超长时会报错。 **删除和复制** 点击对话头像,可以选择复制或删除该条内容。 diff --git a/src/pages/api/chat/chatGpt.ts b/src/pages/api/chat/chatGpt.ts index c9cf6b6a0..213f5e2f3 100644 --- a/src/pages/api/chat/chatGpt.ts +++ b/src/pages/api/chat/chatGpt.ts @@ -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); diff --git a/src/pages/api/chat/vectorGpt.ts b/src/pages/api/chat/vectorGpt.ts index b23f09608..704f2f9dc 100644 --- a/src/pages/api/chat/vectorGpt.ts +++ b/src/pages/api/chat/vectorGpt.ts @@ -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); diff --git a/src/pages/api/openapi/chat/chatGpt.ts b/src/pages/api/openapi/chat/chatGpt.ts index e96d37eea..eabd17e4d 100644 --- a/src/pages/api/openapi/chat/chatGpt.ts +++ b/src/pages/api/openapi/chat/chatGpt.ts @@ -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); diff --git a/src/pages/api/openapi/chat/vectorGpt.ts b/src/pages/api/openapi/chat/vectorGpt.ts index 1f3b1803c..84749e3f5 100644 --- a/src/pages/api/openapi/chat/vectorGpt.ts +++ b/src/pages/api/openapi/chat/vectorGpt.ts @@ -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);