langchain Chatchat 学习实践(三)——实现对Ollama的支持
更新:最新版Ollama已经支持openai接口,没有必应单独实现了:
"openai-api": {
"model_name": "qwen:7b",
"api_base_url": "http://{host}:11434/v1",
"api_key": "ollama",
"openai_proxy": "",
},
===================================
以下为ollama不支持openai时的实现方式:
1、采用Langchain的Ollama库,新建get_BaseChatModel方法,按照名称返回ChatOllama或ChatOpenAI实例; 2、在model_config.py.example中添加了ollama相关配置,用于设置ollama模型名称和ollama部署发布地址; 3、在chat.py,knowledge_base_chat.py,file_chat.py,search_engine_chat.py,agent_chat.py中将原有的get_BaseChatOpenAI改为get_BaseChatModel,按照模型名称返回ChatOpenAI或ChatOllama实例; 4、ollama的Prompt不支持类似"{{ input }}"这样的变量格式,只能是单括号且没有空格的定义方式,类似"{input}",因而在部分对话模块添加了字符串替换处理:prompt_template=prompt_template.replace("{ ", "").replace(" }", ""); 5、langchain的ollama没有model_name属性,因此在agent_chat.py添加了判断是否有该属性的代码; 6、对话历史转换部分,由于ollama不支持通过to_msg_template转换后的格式,但是支持tuple格式,因此根据模型名称判断,如果是ollama模型,改为调用to_msg_tuple方法;
详情可查看PR:
实现了Langchain Chatchat对Ollama的支持 by srszzw · Pull Request #3492 · chatchat-space/Langchain-Chatchat (github.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律