背景:AI回答出错,开始以为是代码问题使得之前的对话出现在上下文,没想到是mlx-omni-server的问题
debug过程:
最开始比较好运地在github论坛找到同样的问题,大概率确认服务器出错。
之后用copilot写了一个简单的go代码重现情况,并通过服务器log监视thinking process有没有包含旧提问信息。
调查发现哪怕用独立client也可能会吃到之前的错误内存。另外换成deepseek等模型也会有同样问题。
于是考虑更换server tool,从chatgpt推荐里选择了ollama。ollama同样支持openai的api,所以后端代码不用修改。
LLM server安装都很简单,不用过多设置,一条指令就能启动服务。测试后发现之前的bug被解决。
之后需要补上api-key的认证,但这时发现ollama不支持api-key。好在openai的api token认证和http的bearer token认证格式一致,所以加一层nginx检查token即可。