极客前沿

一步步教你搭建本地 AI 助手,带工具调用和记忆功能

2026-07-09 01:30
freeCodeCamp
查看原文

从零开始,用 Ollama、LangChain 和 Qwen 在本地搭建一个能调用工具、记住对话的 AI 助手。

准备工作:你需要什么?

在开始之前,先确保你的电脑上安装了以下工具:

  • Ollama:一个让你在本地运行大语言模型的工具。它支持 macOS、Windows 和 Linux。去 ollama.com 下载安装包,像装普通软件一样双击安装即可。
  • Python 3.8+:编程语言,用来写控制逻辑。如果还没装,去 python.org 下载安装。
  • Qwen 模型:一个开源的、适合本地运行的大语言模型。安装完 Ollama 后,打开终端(命令行),输入 ollama pull qwen:7b,它会自动下载。如果你想用更小的模型节省内存,可以用 qwen:4bqwen:1.8b

常见坑提醒:下载模型需要网络,且文件较大(几 GB),请确保有足够磁盘空间和稳定网络。

安装 Python 库

我们需要安装 LangChain 及其相关库。打开终端,运行以下命令:

  1. pip install langchain langchain-community langchain-ollama – 安装核心库。
  2. 如果提示权限问题,可以在命令前加 pip install --user 或使用虚拟环境。

安装完成后,可以测试一下:在 Python 中输入 import langchain,没有报错就说明成功了。

编写你的第一个本地 AI 助手

现在我们来写一个简单的程序,让 AI 能调用工具(比如获取当前时间)并记住对话。复制以下代码保存为 agent.py

Tutorial Image
from langchain_ollama import ChatOllama
from langchain.agents import create_agent, Tool
from langchain.memory import ConversationBufferMemory
from langchain.schema import SystemMessage
from langchain.tools import tool

@tool
def get_current_time() -> str:
    """返回当前时间。"""
    from datetime import datetime
    return datetime.now().strftime("%H:%M:%S")

model = ChatOllama(model="qwen:7b", temperature=0)
tools = [get_current_time]
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
agent = create_agent(model, tools, memory=memory, system_message=SystemMessage(content="你是一个有用的助手。"))

while True:
    user_input = input("你: ")
    if user_input.lower() in ["exit", "quit"]:
        break
    response = agent.invoke({"input": user_input})
    print("AI:", response["output"])

这段代码做了三件事:

  • 定义了一个“获取当前时间”的工具(工具就是 Python 函数,AI 可以自主决定是否调用它)。
  • 创建了一个 AI 模型(Qwen 7B)。
  • 设置了短期记忆:每次对话都会记住历史,所以你可以连续提问。

运行并测试

在终端中运行 python agent.py,然后输入问题试试:

  1. 现在几点了? – AI 应该会调用工具返回正确时间。
  2. 那明天呢? – 因为记忆,AI 知道你在问明天的同一时间,会基于当前时间推算。
  3. 输入 exit 退出。

常见坑提醒:第一次运行需要加载模型,可能较慢(1-2分钟)。如果出现内存错误,可以换用 qwen:4bqwen:1.8b 模型。

下一步可以做什么?

现在你已经有了一个能调用工具、记住对话的本地 AI。你可以:

  • 添加更多工具,比如查天气、计算数学题、搜索本地文件。
  • 改用其他模型,比如 llama3mistral
  • 将短期记忆换成长期记忆(保存到数据库),实现跨会话记忆。

一切都在本地运行,保护隐私且免费。祝你玩得开心!

内容来源

freeCodeCamp

发布时间

2026-07-09 01:30

返回 AI技术