📌 前置知识:会 Python 基础 + 会用命令行
🎯 本课产出:一个能聊天的命令行 AI 程序
💡 工具:Ollama + Qwen2.5:7B + Python(0 成本、0门槛)


前言

最近 AI Agent 火得不行,但大多数教程要么太理论,要么要花钱调用 API(GPT-4、Gemini 都要钱)。

这个系列的目标是:用一台普通电脑 + 免费工具,从零开始手搓一个真正能跑的 Agent

不花一分钱,不依赖任何付费 API。


一、环境准备

做 Python 项目,强烈建议使用虚拟环境,避免依赖冲突。

1.1 创建虚拟环境

# 创建虚拟环境
python -m venv ai-agent-env

# 进入项目目录
cd your-project-folder

1.2 激活虚拟环境

macOS / Linux:

source ai-agent-env/bin/activate

Windows:

ai-agent-env\Scripts\activate

激活成功后,终端前面会显示 (ai-agent-env),说明你在虚拟环境里了。

1.3 安装依赖

pip install requests openai ollama

💡 以后每次开始项目,都先激活虚拟环境。


二、安装 Ollama

Ollama 是一个让你在本地跑模型的工具,装好之后一行命令就能跑起各种大模型。

Windows / macOS / Linux:官网下载安装包 https://ollama.com/download
安装完成后,终端输入 ollama --version 验证。


三、下载 Qwen 模型

我们用千问(Qwen)——阿里开源的国产大模型,中文能力很强,而且完全免费。

ollama pull qwen2.5:7b

说明:qwen2.5 是版本,7b = 70亿参数。参数越大,模型能力越强。7B 模型约 4.7GB,普通显卡/集显也能跑。

查看已下载的模型:

ollama list

四、先用命令行试试

直接对话测试:

ollama run qwen2.5:7b

输入:

你好,请介绍一下你自己

看到回答说明安装成功。按 Ctrl + D 退出。


五、Python 调用 LLM 的 N 种方式

下面是本文重点——用 Python 程序调用本地 LLM。我介绍 4 种主流方式:

4.1 方式一:requests(最简单)

直接用 HTTP 请求调用 Ollama API。

安装依赖:

pip install requests

代码:

import requests

def chat(prompt, model="qwen2.5:7b"):
    """单次对话"""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

if __name__ == '__main__':
    result = chat("用一句话解释什么是Python")
    print(result)

运行效果:

Python是一种高级编程语言,设计简单清晰,适用于多种编程任务。

4.2 方式二:OpenAI 兼容方式

Ollama 兼容 OpenAI 的 API 格式,可以用一个统一的接口调用。

安装依赖:

pip install openai

代码:

from openai import OpenAI

# Ollama 的 OpenAI 兼容端点
client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # Ollama 不需要真正的 key,随便填
)

def chat(prompt, model="qwen2.5:7b"):
    """使用 OpenAI SDK 调用本地模型"""
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": prompt}],
        stream=False
    )
    return response.choices[0].message.content

# 测试
result = chat("什么是大语言模型?")
print(result)

优点: 如果你以后想切换到真正的 OpenAI API,只需要改一行配置。


4.3 方式三:ollama 官方 SDK(最规范)

Ollama 官方提供的 Python SDK,API 更规范。

安装依赖:

pip install ollama

代码:

import ollama

def chat(prompt, model="qwen2.5:7b"):
    """使用官方 SDK 调用"""
    response = ollama.chat(
        model=model,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response['message']['content']

# 测试
result = chat("你好,请介绍一下你自己")
print(result)

优点: API 清晰,功能完善(支持流式、embedding 等)。


4.4 方式四:流式输出(打字机效果)

让 AI 的回答一个字一个字地出来,体验更好。

import requests
import json

def chat_stream(prompt, model="qwen2.5:7b"):
    response = requests.post(
        "http://localhost:11434/api/chat",
        json={
            "model": model,
            "messages": [{"role": "user", "content": prompt}],
            "stream": True
        },
        stream=True
    )
    response.raise_for_status()
    print("AI: ", end="", flush=True)
    for line in response.iter_lines():
        if not line:
            continue
        data = json.loads(line.decode("utf-8"))
        content = data.get("message", {}).get("content", "")
        print(content, end="", flush=True)
        if data.get("done", False):
            break
    print()
if __name__ == '__main__':
    chat_stream("用 5 句话介绍一下 Python")

运行效果:

AI: Python 是一种高级编程语言,以其简洁和清晰的语法著称。
它广泛应用于Web开发、数据科学、人工智能等领域。
Python 支持多种编程范式,并拥有庞大的标准库和第三方库资源。
无论初学者还是专业人士都能轻松使用。

4.5 方式五:curl 命令(最直接)

如果你不想写 Python,直接用 curl 命令也行:

curl http://localhost:11434/api/generate \
  -d '{
    "model": "qwen2.5:7b",
    "prompt": "用一句话介绍 Python"
  }'

六、完整项目:命令行 AI 助手

整合以上内容,做成一个真正能用的 AI 助手:

import requests

def chat(prompt, model="qwen2.5:7b"):
    """发送消息给本地模型"""
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": model,
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

if __name__ == "__main__":
    print("=" * 50)
    print("本地 AI 助手已启动")
    print("模型:Qwen2.5:7B(运行在你自己电脑上)")
    print("输入 q 退出")
    print("=" * 50)
    print()
    
    while True:
        user_input = input("你: ")
        
        if user_input.lower() == "q":
            print("再见!")
            break
        
        reply = chat(user_input)
        print(f"AI: {reply}\n")

保存为 ai_chat.py,运行:

python ai_chat.py

七、Ollama API 速查

API 地址 说明
Generate POST /api/generate 单次生成
Chat POST /api/chat 对话(带历史)
Embeddings POST /api/embeddings 向量嵌入
模型列表 GET /api/tags 查看已下载模型

八、常见问题

Q:提示 connection refused

A:先确保 Ollama 服务在运行。新开一个终端窗口,输入 ollama serve,保持运行。

Q:7B 模型跑不动?

A:7B 模型需要至少 8GB 内存(或 6GB 显存)。如果实在跑不动,换回 qwen2.5:3b(更小更快)。

Q:怎么换其他模型?

A:去 https://ollama.com/library 下载,比如 ollama pull llama3.2


九、下期预告

第二课:赋予模型一个角色(System Prompt)

学完这课,你将能让 AI 扮演 Python 老师、技术面试官、翻译助手……

敬请期待!


完整代码获取

关注公众号「开源情报局」,回复「Agent」获取本课完整源码。


本文为《手搓 AI Agent 从 0 到 1》系列教程第 1 课

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐