本次的学习主要以学习LLM+RAG+Agent的学习历程
基本日历如下
第一阶段:Python与API(第1-7天)

  • D1:搭环境+虚拟环境,拿硅基流动API Key,跑通第一个调用脚本。

  • D2:写任务拆解函数(parse_task)+ logging,读PDF前1000字符。

  • D3:写模拟工具(search/summarize/translate)+ 主循环执行任务。

  • D4:装LangChain,用ChatPromptTemplate替换字符串拼接。

  • D5:用LangChain Tool和initialize_agent搭第一个简单Agent。

  • D6:实现“文件情报员Agent”:读文件→总结→提取关键词→输出JSON。

  • D7:同上(完成项目),总结Chain/Agent/Tool/Memory/RAG概念。

第二阶段:RAG核心(第8-14天)

  • D8:装llama-index,加载文档文件夹,切分文本块(chunk_size=512)。

  • D9:装chromadb,将文本块存入向量数据库。

  • D10:写查询脚本,用相似性检索Top-K块并打印。

  • D11:构建RetrievalQA链,让模型基于检索块回答问题。

  • D12:调优chunk_size(256/512/1024)和top_k(2/4/6)。

  • D13:增加对话历史(ConversationBufferMemory)支持多轮。

  • D14:封装成CLI应用(循环输入→输出+引用来源)。

第三阶段:Agent编排框架(第15-21天)

  • D15:装langgraph,将线性链转为StateGraph图结构。

  • D16:实现“人在回路”(Human-in-the-loop)节点。

  • D17:定义多Agent节点(研究员/作家)并连接。

  • D18:跑AutoGen官方两Agent对话示例。

  • D19:跑CrewAI研究者+写作者示例。

  • D20:看PydanticAI README示例,理解类型安全Agent。

  • D21:写一份框架选型指南(LangChain/LangGraph/AutoGen/CrewAI/PydanticAI对比)。

第四阶段:实战项目(第22-30天)

  • D22:选项目(推荐个人知识库问答),画系统架构图。

  • D23:实现RAG检索模块+Agent工具定义。

  • D24:同上,完成核心模块开发。

  • D25:集成到CLI或FastAPI服务。

  • D26:优化用户体验,修复bug。

  • D27:加滑动窗口/摘要管理长上下文。

  • D28:加难度路由(简单问题直答,复杂走RAG)。

  • D29:写README.md(安装/使用/设计)。

  • D30:上传GitHub,用STAR法则写一篇项目介绍文章。

一、环境搭建

1. 检查 Python 版本

bash

python --version
  • 要求:Python 3.8 及以上(建议 3.10+)。

  • 如果版本过低,请先去 python.org 下载安装。


2. 创建项目文件夹与虚拟环境

bash

mkdir agent_learning        # 新建项目目录
cd agent_learning           # 进入目录
python -m venv agent_env    # 创建名为 agent_env 的虚拟环境

🔍 命令拆解

  • python:调用 Python 解释器

  • -m:模块运行开关(-m = module)

  • venv:Python 内置的虚拟环境标准库模块

  • agent_env:指定虚拟环境存放的目录名(可自定义)

什么是虚拟环境?
它是一个独立的 Python 运行空间,每个项目都有自己独立的库依赖,互不干扰。例如项目 A 用 openai==1.0,项目 B 用 openai==2.0,虚拟环境可防止版本冲突。

创建后,agent_env 目录下会生成:

  • Scripts/(Windows)或 bin/(Mac/Linux)——存放独立的 Python 解释器和 pip

  • Lib/site-packages/(Windows)或 lib/(Mac/Linux)——存放项目专属的第三方库


3. 激活虚拟环境

  • Windows(PowerShell)

    powershell

    agent_env\Scripts\activate

    若遇到“禁止运行脚本”错误,先执行:

    powershell

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

    然后再激活。

  • Mac / Linux

    bash

    source agent_env/bin/activate

激活的本质
修改当前终端的 PATH 环境变量,将虚拟环境的 Scripts/(或 bin/)目录插到最前面。此后输入 pythonpip 都会优先使用虚拟环境中的版本,而不是系统全局的。

验证激活成功:命令行前缀出现 (agent_env),例如:

text

(agent_env) O:\agent_learning>

4. 安装 OpenAI 库

bash

pip install openai
  • openai 是 OpenAI 官方提供的 Python SDK,用于调用兼容 OpenAI 格式的 API(如硅基流动、DeepSeek 等)。

  • 如果下载慢,可使用国内镜像:

    bash

    pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

二、首次 API 调用(以 DeepSeek 为例)

脚本代码

python

from openai import OpenAI

# 1. 初始化客户端
client = OpenAI(
    api_key = "你的DeepSeek API Key",   # 从平台获取
    base_url = "https://api.deepseek.com"  # DeepSeek 的 API 端点
)

try:
    # 2. 发起对话请求
    response = client.chat.completions.create(
        model="deepseek-v4-flash",       # 使用的模型
        messages=[
            {"role": "system", "content": "你是一名擅长用比喻解释技术的厨师"},
            {"role": "user", "content": "请用厨师做菜的风格解释RAG(信息检索生成)"}
        ],
        temperature=0.7,    # 控制随机性
        max_tokens=500      # 最大输出 token 数
    )

    # 3. 输出结果
    print("回答")
    print(response.choices[0].message.content)
    print(f"\n消耗tokens:{response.usage.total_tokens}")

except Exception as e:
    print(f"调用出错:{e}")

关键参数详解

参数

作用

常见值

model

指定要使用的模型名称

DeepSeek 目前推荐 deepseek-v4-flash(免费高效)

messages

对话历史,是一个列表,每个元素包含 rolecontent

见下方角色说明

temperature

控制生成文本的随机性。
• 0~1 之间,值越大越有创造性(但可能跑题)
• 值越小越确定、保守(适合事实性回答)

常用 0.3~0.8。0.7 是平衡值

max_tokens

限制模型输出(回答)的最大 token 数。
注意:输入 token 也会计费,但总消耗会显示在 usage

视任务而定,一般 200~2000。设置为 0 会阻止任何输出


messagesrole 的含义

Role

身份

作用

system

系统/导演

设定全局规则、人设、风格。它的优先级最高,告诉 AI “你该以什么身份、什么语气说话”。
例如"你是一位擅长用比喻解释技术的厨师"

user

用户/提问者

代表当前用户的输入(问题或指令)。

assistant

助手/AI本身

多轮对话中,用来存放 AI 之前的历史回复。单轮对话无需使用。

顺序规则system 必须放在最前面,然后按对话顺序排列 userassistant

你的例子:先给 AI 设定厨师身份(system),再提出具体任务(user)。


响应对象 response 的结构

  • response.choices[0].message.content → 模型生成的回答文本。

  • response.usage.total_tokens → 本次请求消耗的总 token 数(输入 + 输出)。

  • response.choices[0].finish_reason → 结束原因,如 "stop"(正常结束)或 "length"(因 max_tokens 限制而截断)。


三、常见问题与排错

现象

可能原因

解决方法

激活虚拟环境报错 UnauthorizedAccess

PowerShell 执行策略限制

使用 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass 临时放行

pip install 超时

网络慢

换用国内镜像源

运行脚本报 401 Unauthorized

API Key 错误或无效

检查密钥是否复制完整,无多余空格

ModuleNotFoundError: No module named 'openai'

未在虚拟环境中安装

确保命令行前缀有 (agent_env),再次执行 pip install openai

回答被截断

max_tokens 太小

调大 max_tokens 值(如 1000)

模型名称错误

平台模型名已更新

查阅官方文档确认最新模型 ID