Python 现代开发学习笔记

(三)把回放模型换成本机模型

项目把生成模型作为参数传给回答函数,因此检索、引用检查和保存逻辑可以继续使用同一份代码。安装 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 接口

本章运行记录中的固定结果来自离线回放;本机模型的输出要单独留下一组问题、回答和检查结果,便于比较替换前后的行为。

笔记正文与全部题解 · Ctrl / ⌘ K