MS Teams AI聊天机器人返回预设提示而非预期对话问题排查
可能的问题点及修复步骤
Prompt文件路径错误
Teams AI框架中,当指定prompt: "chat"时,DefaultPromptManager会从prompts/chat子文件夹加载skprompt.txt和config.json文件。如果这两个文件直接放在prompts根目录下,框架会加载默认的预设提示文本。
修复:创建src/prompts/chat文件夹,将你的skprompt.txt和config.json移动到该文件夹内。模型类型与配置不匹配
你的config.json中type设为"completion",但AzureOpenAIPlanner开启了useSystemMessage: true。对于completion类型模型(如gpt-3.5-turbo-instruct),系统消息的拼接逻辑可能与模型预期不符;如果你的自定义模型是chat类型(如gpt-3.5-turbo),则需将config.json的type改为"chat"。
补充:若使用completion模型,可尝试将useSystemMessage设为false,让框架直接使用skprompt.txt作为前缀提示。PromptManager路径指向错误
代码中path.join(__dirname, "../src/prompts")的路径可能因编译后文件位置(如dist目录)无法正确指向源文件的prompts文件夹。可打印路径确认:const promptPath = path.join(__dirname, "../src/prompts"); console.log("Prompt path:", promptPath);若路径不正确,调整为相对编译后文件的正确路径,比如
path.join(__dirname, "./prompts")(需确保编译时prompts文件夹被复制到dist目录)。框架版本问题
旧版本@microsoft/teams-ai可能存在prompt加载bug,执行命令更新至最新版本:npm update @microsoft/teams-ai
内容的提问来源于stack exchange,提问作者Donatas

