(三)把回放模型换成本机模型
项目把生成模型作为参数传给回答函数,因此检索、引用检查和保存逻辑可以继续使用同一份代码。安装 Ollama 后,用 ollama list 查看本机已有模型,再把实际模型名传给 CLI。
# 查看本机已下载的模型;需要下载时从官方模型库选择适合设备的模型。
ollama list
# 把 YOUR_CHAT_MODEL 换成列表中的聊天模型名。
uv run study-agent --ollama YOUR_CHAT_MODEL ask "NumPy 切片怎样避免改动原数组?" --thread model-1
YOUR_CHAT_MODEL 是需要替换的名称。在 Python 中,对应的模型适配器是 langchain_ollama.ChatOllama:
# 安装项目的 ollama extra 后使用;model 填本机实际安装的名称。
from langchain_ollama import ChatOllama
model = ChatOllama(
model="YOUR_CHAT_MODEL",
temperature=0,
client_kwargs={"timeout": 90}, # HTTP 客户端等待本机服务的时间,单位为秒。
)
# model 可传给后文 make_answer 的第三个参数,替换离线回放模型。temperature 控制采样的随机程度;设为 0 仍要按具体模型与运行环境检查输出。timeout 属于客户端请求设置,不能替代整个任务的取消、工具次数或资源限制。
聊天、向量编码、工具调用和结构化输出是不同能力。先让模型完成一轮普通回答,再检查它能否按要求返回 JSON;需要进入工具循环时,还要选支持工具调用的模型。ChatOllama 接口
本章运行记录中的固定结果来自离线回放;本机模型的输出要单独留下一组问题、回答和检查结果,便于比较替换前后的行为。