本文面向有一定编程基础(Python 为主)的开发者,系统梳理 AI 应用开发的学习路径。每个阶段配有理论讲解和 GitHub 实战项目,强调"学一个知识点,做一个可运行的项目"。
目录
- [阶段一:基础认知------理解大模型与 API 调用](#阶段一:基础认知——理解大模型与 API 调用)
- [阶段二:Prompt 工程与对话系统](#阶段二:Prompt 工程与对话系统)
- [阶段三:RAG 检索增强生成](#阶段三:RAG 检索增强生成)
- [阶段四:AI Agent 智能体开发](#阶段四:AI Agent 智能体开发)
- [阶段五:多 Agent 协作与工作流编排](#阶段五:多 Agent 协作与工作流编排)
- 阶段六:本地部署与私有化
- 阶段七:生产级应用与平台化
- 学习注意事项与常见问题
- 推荐学习资源汇总
阶段一:基础认知------理解大模型与 API 调用
核心知识点
1. 大语言模型(LLM)基本原理
大语言模型是基于 Transformer 架构的神经网络,通过在海量文本数据上进行预训练,学会了语言的统计规律。核心概念包括:
- Token:模型处理文本的最小单位。一个中文字通常占 1-2 个 token,一个英文单词占 1-3 个 token。API 调用按 token 数计费。
- 上下文窗口(Context Window):模型一次能处理的最大 token 数量。例如 GPT-4o 支持 128K tokens,Claude 3.5 支持 200K tokens。
- Temperature:控制输出随机性的参数。值越低(如 0)输出越确定,值越高(如 1.0)输出越多样。
- System Prompt / User Prompt / Assistant:对话的三种角色。System 定义模型行为,User 是用户输入,Assistant 是模型回复。
2. API 调用基础
主流大模型提供商都提供了 RESTful API,调用流程基本一致:
发送请求(包含模型名、消息列表、参数) → 获取流式/非流式响应
关键要素:
- API Key 认证:通过 Header 传递密钥
- 消息格式 :JSON 数组,每条消息包含
role和content - 流式输出(Streaming):逐 token 返回,提升用户体验
- 错误处理:速率限制(429)、上下文超长(超出 token 限制)、服务不可用等
3. 主流模型对比
| 提供商 | 代表模型 | 特点 |
|---|---|---|
| OpenAI | GPT-4o, GPT-4o-mini | 综合能力强,生态最完善 |
| Anthropic | Claude 3.5 Sonnet, Claude 3 Opus | 长文本处理优秀,安全性高 |
| Gemini 1.5 Pro/Flash | 多模态能力强,免费额度大 | |
| 智谱 | GLM-4 | 中文能力强,国产替代首选 |
| 阿里 | Qwen-Max, Qwen-Plus | 性价比高,工具调用支持好 |
| DeepSeek | DeepSeek-V3, DeepSeek-R1 | 开源推理模型,性价比极高 |
阶段练习项目
项目 1:微软生成式 AI 入门课程
- GitHub :microsoft/generative-ai-for-beginners
- Stars:75k+
- 内容:12 节课,涵盖生成式 AI 基础、提示工程、构建文本/图像生成应用、向量数据库、搜索引擎集成等
- 技术栈:Python / Jupyter Notebook,支持 OpenAI / Azure OpenAI
- 适合人群:零基础入门者
- 学习建议:跟着每节课的 Notebook 走一遍,重点理解 API 调用方式和 Prompt 设计思路
项目 2:Streamlit + OpenAI 构建聊天机器人
- 参考模板 :Streamlit 官方 Chat 模板
- 内容:Streamlit 官方提供的 LLM 应用示例集合,包含聊天机器人、RAG、多模型切换等多个模板
- 技术栈:Python + Streamlit + OpenAI API
- 核心代码结构:
python
import streamlit as st
from openai import OpenAI
client = OpenAI()
st.title("我的第一个 AI 聊天机器人")
if "messages" not in st.session_state:
st.session_state.messages = []
for msg in st.session_state.messages:
with st.chat_message(msg["role"]):
st.markdown(msg["content"])
if prompt := st.chat_input("说点什么..."):
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
with st.chat_message("assistant"):
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": m["role"], "content": m["content"]}
for m in st.session_state.messages],
stream=True,
)
response = st.write_stream(stream)
st.session_state.messages.append({"role": "assistant", "content": response})
- 扩展练习 :
- 添加对话历史持久化(存入 SQLite)
- 实现多模型切换(GPT-4o / Claude / 本地模型)
- 添加 System Prompt 自定义面板
阶段二:Prompt 工程与对话系统
核心知识点
1. Prompt Engineering 系统方法
Prompt 不是"写一句话"那么简单,而是一套工程化的方法论:
- 角色设定(Role Prompting):给模型一个身份,如"你是一个资深 Python 工程师"
- 少样本学习(Few-shot Learning):在 Prompt 中给出几个示例,让模型学会输出格式
- 思维链(Chain of Thought, CoT):要求模型"一步步思考",显著提升推理能力
- 结构化输出:要求模型输出 JSON、表格等结构化格式,便于程序处理
- Prompt 模板化:将 Prompt 拆分为固定部分和变量部分,实现复用
2. 对话管理
构建多轮对话系统需要解决的核心问题:
- 上下文管理:对话历史太长会超出 token 限制,需要截断或摘要
- 记忆机制:短期记忆(当前对话)、长期记忆(用户偏好、历史摘要)
- 对话状态追踪:记录当前对话阶段、用户意图、已收集的槽位信息
3. Function Calling(函数调用)
让模型能够调用外部工具的关键技术:
json
{
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
},
"required": ["city"]
}
}
模型会根据用户意图自动决定是否调用函数、传入什么参数,然后将函数返回结果整合到回复中。
阶段练习项目
项目 3:LangChain 入门教程
- GitHub :langchain-ai/langchain
- Stars:100k+
- 内容:LangChain 是最流行的 LLM 应用开发框架,提供了 Prompt 模板、链式调用、记忆管理、工具集成等核心组件
- 学习路径 :
- 先跑通官方 Quickstart:python.langchain.com/docs/quickstart
- 学习 Prompt Template 和 Output Parser
- 实现带记忆的多轮对话
- 尝试 Function Calling 集成
- 实战练习:构建一个"智能客服"原型,支持多轮对话、意图识别、FAQ 匹配
项目 4:微软 Promptflow ------ Prompt 工程工具
- GitHub :microsoft/promptflow
- Stars:18k+
- 内容:微软开源的 LLM 应用开发工具,提供 Prompt 调试、评估、部署的完整工作流
- 特点 :
- 可视化 Prompt 编排
- 内置评估框架(自动检测 Prompt 质量)
- 支持批量测试和对比实验
- 实战练习:用 Promptflow 构建一个"代码审查助手",输入代码片段输出审查意见
阶段三:RAG 检索增强生成
核心知识点
1. 为什么需要 RAG
大模型的两大局限:
- 知识截止:模型训练数据有时间截止点,无法回答最新信息
- 幻觉问题:模型会"编造"看似合理但错误的答案
RAG(Retrieval-Augmented Generation)通过在生成前先检索相关文档,让模型基于真实数据回答,从根本上解决这两个问题。
2. RAG 系统架构
用户提问
↓
查询改写(Query Rewriting)------ 优化检索效果
↓
向量检索(Vector Search)------ 从知识库中找到相关片段
↓
重排序(Reranking)------ 对检索结果进行精排
↓
上下文组装 ------ 将检索结果拼入 Prompt
↓
LLM 生成 ------ 基于上下文生成回答
↓
答案输出(含引用来源)
3. 关键技术组件
- 文档加载器(Document Loader):支持 PDF、Word、网页、Markdown 等格式
- 文本分割器(Text Splitter) :将长文档切分为合适大小的片段(chunk)
- 按固定长度分割(最简单)
- 按语义分割(RecursiveCharacterTextSplitter)
- 按句子/段落分割
- 嵌入模型(Embedding Model) :将文本转换为向量表示
- OpenAI text-embedding-3-small/large
- BGE / M3E(中文优化)
- Cohere Embed
- 向量数据库(Vector Database) :存储和检索向量
- Chroma(轻量,适合本地开发)
- Milvus / Zilliz(生产级,支持分布式)
- Pinecone(全托管 SaaS)
- FAISS(Facebook 开源,高性能)
- 检索策略 :
- 稠密检索(Dense Retrieval):基于向量相似度
- 稀疏检索(Sparse Retrieval):基于 BM25 等传统算法
- 混合检索(Hybrid Search):两者结合,效果最佳
- HyDE:先让模型生成假设性答案,再用答案去检索
4. RAG 优化技巧
- 分块策略优化:chunk_size 和 chunk_overlap 的调参
- 查询改写:将用户口语化问题改写为更适合检索的形式
- 上下文压缩:只保留检索结果中与问题最相关的部分
- 多路召回:同时使用多种检索方式,取并集
- Reranking:用 Cross-Encoder 模型对检索结果重新排序
阶段练习项目
项目 5:RAG 从零实现教程
- GitHub :langchain-ai/rag-from-scratch
- Stars:8.5k+
- 内容:LangChain 官方出品的 RAG 从零实现教程,每个 Notebook 对应一个 RAG 技术点
- 学习路径 :
- 基础 RAG:文档加载 → 分块 → 嵌入 → 检索 → 生成
- 高级 RAG:查询改写、混合检索、Reranking
- 生产级 RAG:评估、监控、优化
- 实战练习:构建"个人知识库问答系统",支持上传 PDF/Markdown 文档,基于文档内容回答问题
项目 6:Langchain-Chatchat ------ 中文 RAG 应用
- GitHub :chatchat-space/Langchain-Chatchat
- Stars:32k+
- 内容:基于 Langchain 的中文 RAG 应用,支持多种文档格式、多种向量数据库、多种 LLM
- 特点 :
- 开箱即用的中文 RAG 方案
- 支持本地知识库管理
- Web UI 界面
- 支持 OpenAI / 本地模型
- 实战练习 :
- 部署并运行项目
- 上传自己的学习笔记,测试问答效果
- 尝试修改分块策略,对比效果差异
项目 7:awesome-llm-apps(RAG 应用合集)
- GitHub :Shubhamsaboo/awesome-llm-apps
- Stars:105k+
- 内容:100+ 个 LLM 应用模板,涵盖 RAG、Agent、多模态等各类场景
- 推荐练习的 RAG 示例 :
- Chat with PDF(与 PDF 对话)
- Chat with GitHub Repo(与代码仓库对话)
- Chat with Research Papers(与论文对话)
- RAG with Wikipedia(维基百科知识问答)
阶段四:AI Agent 智能体开发
核心知识点
1. 什么是 AI Agent
AI Agent 不只是"能调用工具的聊天机器人",而是一个具备自主规划、决策和执行能力的智能系统。与传统 Chatbot 的区别:
| 特性 | Chatbot | AI Agent |
|---|---|---|
| 交互模式 | 一问一答 | 自主规划执行 |
| 工具使用 | 无或有限 | 动态选择和调用工具 |
| 任务复杂度 | 单轮对话 | 多步骤复杂任务 |
| 记忆 | 短期 | 短期 + 长期记忆 |
| 反思能力 | 无 | 能自我检查和纠错 |
2. Agent 核心组件
┌──────────────────┐
│ LLM 大脑 │
│ (推理与决策) │
└────────┬─────────┘
│
┌────────────────┼────────────────┐
↓ ↓ ↓
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 记忆系统 │ │ 工具库 │ │ 规划引擎 │
│ │ │ │ │ │
│ 短期记忆 │ │ 搜索引擎 │ │ 任务分解 │
│ 长期记忆 │ │ 代码执行 │ │ 反思修正 │
│ 工作记忆 │ │ API调用 │ │ 方案评估 │
└──────────┘ │ 数据库 │ └──────────┘
└──────────┘
- 规划(Planning) :将复杂任务分解为可执行的子任务
- 任务分解(Decomposition)
- 自我反思(Reflection)
- 方案评估(Self-Critique)
- 记忆(Memory) :
- 短期记忆:当前对话上下文
- 长期记忆:向量数据库存储的历史信息
- 工作记忆:当前任务的中间状态
- 工具使用(Tool Use) :
- Function Calling:模型输出结构化的函数调用指令
- MCP(Model Context Protocol):标准化的工具接入协议
- 代码执行:让 Agent 编写并运行代码
3. ReAct 模式
最经典的 Agent 推理模式:Reasoning + Acting
Thought: 我需要搜索2024年诺贝尔物理学奖的获奖者
Action: search("2024年诺贝尔物理学奖获奖者")
Observation: 2024年诺贝尔物理学奖授予了 John Hopfield 和 Geoffrey Hinton...
Thought: 我已经找到了答案,可以回复用户了
Action: respond("2024年诺贝尔物理学奖授予了 John Hopfield 和 Geoffrey Hinton...")
4. MCP(Model Context Protocol)
Anthropic 推出的开放协议,标准化了 AI 模型与外部工具/数据源的交互方式:
- MCP Server:提供工具和数据源的服务端
- MCP Client:AI 应用端
- 核心能力:Resources(资源)、Tools(工具)、Prompts(提示模板)
阶段练习项目
项目 8:微软 AI Agent 入门课程
- GitHub :microsoft/ai-agents-for-beginners
- Stars:50k+
- 内容:15 节课,系统讲解 AI Agent 的设计模式、工具使用、多 Agent 协作等
- 语言支持:有中文翻译版本
- 学习建议:每节课配合代码示例动手实践,重点理解 Agent 的设计模式
项目 9:Agent Learning ------ 系统性 Agent 学习路线
- GitHub :Haozhe-Xing/agent_learning
- 内容:系统性的 AI Agent 学习路线,涵盖 LLM 基础、RAG、记忆、工具使用、Function Calling、MCP 等
- 特点 :
- 实践导向,每个模块都有可运行的代码
- 渐进式学习路径
- 覆盖从基础到高级的完整链路
项目 10:LLM-RAG-Agent 综合教程
- GitHub :mac999/LLM-RAG-Agent-Tutorial
- 内容:LLM、RAG、AI Agent 和 MCP 的完整开发教程
- 涵盖内容 :
- LLM 基础与 API 调用
- RAG 系统构建
- Agent 架构设计
- MCP 协议实现
- 实战练习:构建一个"研究助手 Agent",能够自动搜索论文、总结要点、生成报告
阶段五:多 Agent 协作与工作流编排
核心知识点
1. 多 Agent 架构模式
- 主从模式(Orchestrator-Worker):一个主 Agent 分配任务,多个子 Agent 执行
- 对等协作模式(Peer-to-Peer):多个 Agent 平等协作,通过消息传递协调
- 流水线模式(Pipeline):Agent 按顺序处理,前一个的输出是后一个的输入
- 辩论模式(Debate):多个 Agent 就同一问题提出不同观点,最终达成共识
2. 工作流编排
复杂 AI 应用通常需要将多个步骤串联成工作流:
- 条件分支:根据中间结果选择不同的处理路径
- 循环迭代:重复执行直到满足条件(如自我反思循环)
- 并行执行:多个 Agent 同时处理不同子任务
- 人机协作(Human-in-the-Loop):关键节点引入人工审核
3. 主流 Agent 框架对比
| 框架 | 定位 | 特点 |
|---|---|---|
| LangGraph | 图状态机 Agent | 灵活的图结构,适合复杂工作流 |
| CrewAI | 多 Agent 协作 | 角色定义直观,上手快 |
| AutoGen | 多 Agent 对话 | 微软出品,支持代码执行 |
| Dify | 低代码平台 | 可视化编排,适合快速原型 |
阶段练习项目
项目 11:CrewAI 多 Agent 框架
- GitHub :crewAIInc/crewAI
- Stars:28k+
- 内容:用于编排角色扮演式 AI Agent 的框架,独立于 LangChain 构建
- 核心概念 :
- Agent:定义角色、目标、背景故事
- Task:定义具体任务和预期输出
- Crew:将 Agent 和 Task 组织成团队
- 实战练习 :构建一个"内容创作团队"
- 研究员 Agent:负责搜索和整理资料
- 写手 Agent:负责撰写文章
- 编辑 Agent:负责审校和优化
项目 12:LangGraph 工作流引擎
- GitHub :langchain-ai/langgraph
- Stars:35k+
- 内容:基于图结构的 Agent 工作流框架,LangChain 官方出品
- 核心特点 :
- 状态机驱动,支持循环和条件分支
- 内置持久化和检查点
- 支持 Human-in-the-Loop
- 实战练习 :构建一个"客服工单处理系统"
- 意图识别节点 → 分类路由节点 → 处理节点 → 审核节点
- 支持人工介入和工单升级
项目 13:AutoGen 多 Agent 对话
- GitHub :microsoft/autogen
- Stars:42k+
- 内容:微软开源的多 Agent 对话框架
- 特点 :
- Agent 之间通过对话协作
- 支持代码生成和执行
- 灵活的对话模式(双人、群聊、嵌套)
- 实战练习 :构建一个"代码开发团队"
- 产品经理 Agent:分析需求
- 架构师 Agent:设计方案
- 开发者 Agent:编写代码
- 测试者 Agent:编写测试
阶段六:本地部署与私有化
核心知识点
1. 为什么需要本地部署
- 数据隐私:敏感数据不出本地网络
- 成本控制:大量调用时本地部署更经济
- 离线可用:不依赖外部网络
- 定制化:可以根据业务需求微调模型
2. 模型推理引擎
- Ollama:最简单的本地模型运行工具,一行命令启动
- vLLM:高性能推理引擎,支持 PagedAttention,吞吐量高
- llama.cpp:C++ 实现的推理引擎,支持 CPU 推理
- TensorRT-LLM:NVIDIA 官方优化引擎,GPU 推理最快
3. 模型量化
将高精度模型压缩为低精度,减少显存占用和计算量:
- GGUF 格式:llama.cpp 使用的量化格式
- GPTQ:训练后量化,精度损失小
- AWQ:激活感知量化,效果优于 GPTQ
- INT4/INT8:量化精度级别,INT4 体积最小但精度损失最大
4. 模型微调(Fine-tuning)
当通用模型不能满足特定业务需求时:
- 全量微调(Full Fine-tuning):更新所有参数,效果最好但成本高
- LoRA:只训练低秩适配器,参数量仅为原模型的 0.1%-1%
- QLoRA:量化 + LoRA,进一步降低显存需求
- RLHF / DPO:基于人类反馈的对齐训练
阶段练习项目
项目 14:Ollama 本地模型部署
- GitHub :ollama/ollama
- Stars:120k+
- 内容:一行命令在本地运行大模型
- 快速开始:
bash
# 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 运行模型
ollama run llama3.1 # Meta Llama 3.1
ollama run qwen2.5 # 通义千问 2.5
ollama run deepseek-r1 # DeepSeek R1 推理模型
ollama run mistral # Mistral 7B
# 列出已下载的模型
ollama list
# API 调用(兼容 OpenAI 格式)
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"llama3.1","messages":[{"role":"user","content":"你好"}]}'
- 实战练习 :
- 安装 Ollama,下载 3 个不同规模的模型对比效果
- 使用 Open WebUI 为本地模型添加 Web 界面
- 测试不同模型在中文问答、代码生成等任务上的表现
项目 15:Open WebUI 本地模型管理平台
- GitHub :open-webui/open-webui
- Stars:130k+
- 内容:功能丰富的自托管 AI 平台,支持 Ollama 和 OpenAI 兼容 API
- 特点 :
- 类 ChatGPT 的 Web 界面
- 支持多模型切换
- 内置 RAG 功能
- 支持用户管理和权限控制
- 部署方式:
bash
# Docker 一键部署
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
项目 16:vLLM 高性能推理引擎
- GitHub :vllm-project/vllm
- Stars:35k+
- 内容:高吞吐量、低延迟的 LLM 推理引擎
- 适用场景:需要同时服务大量用户的生产环境
- 核心特性 :
- PagedAttention:高效管理 KV Cache
- Continuous Batching:动态批处理
- Tensor Parallelism:多 GPU 并行
- 实战练习:在 GPU 服务器上部署 vLLM,对比 Ollama 和 vLLM 的吞吐量差异
阶段七:生产级应用与平台化
核心知识点
1. 应用评估与测试
AI 应用不同于传统软件,输出具有不确定性,需要专门的评估方法:
- 自动化评估:用 LLM 评估 LLM(LLM-as-Judge)
- 人工评估:关键场景需要人工标注和审核
- A/B 测试:对比不同 Prompt/模型的效果
- 评估指标 :
- 准确率(Accuracy)
- 相关性(Relevance)
- 忠实度(Faithfulness)------ RAG 场景下回答是否忠实于检索到的文档
- 延迟(Latency)
- 成本(Cost per query)
2. 可观测性(Observability)
- LangSmith:LangChain 官方的追踪和监控平台
- Phoenix(Arize):开源的 LLM 可观测性工具
- Langfuse:开源的 LLM 应用分析平台
- 关键监控指标:延迟、token 使用量、错误率、用户满意度
3. 部署架构
用户请求
↓
负载均衡(Nginx / Cloud LB)
↓
API 网关(认证、限流、路由)
↓
应用服务(FastAPI / Flask)
↓
┌───────────────┬───────────────┐
│ LLM 服务 │ RAG 服务 │ Agent 服务
│ (vLLM/Ollama) │ (向量数据库) │ (工具调用)
└───────────────┴───────────────┘
↓
监控与日志(LangSmith / Langfuse)
4. 安全与合规
- Prompt 注入防护:检测和过滤恶意 Prompt
- 内容安全:过滤有害、违规内容
- 数据脱敏:在发送给模型前脱敏敏感信息
- 访问控制:API Key 管理、用户权限
阶段练习项目
项目 17:Dify ------ 开源 LLM 应用开发平台
- GitHub :langgenius/dify
- Stars:65k+
- 内容:一站式 LLM 应用开发平台,支持可视化编排
- 核心功能 :
- 可视化 Workflow 编排
- 内置 RAG 管道
- Agent 能力
- 模型管理(支持 100+ 模型)
- 可观测性
- 实战练习 :
- 部署 Dify 平台
- 创建一个 RAG 知识库应用
- 编排一个多步骤的 Agent 工作流
- 发布为 API 并集成到自己的项目中
项目 18:FastGPT ------ 知识库问答平台
- GitHub :labring/FastGPT
- Stars:28k+
- 内容:基于 LLM 的知识库平台,开箱即用
- 特点 :
- 可视化工作流编排
- 强大的数据处理能力
- 支持多种向量数据库
- 支持 API 对外提供服务
- 实战练习:为自己的技术博客构建一个智能问答系统
项目 19:Flowise ------ 可视化 AI 工作流构建
- GitHub :FlowiseAI/Flowise
- Stars:52k+
- 内容:拖拽式构建 AI Agent 和 LLM 工作流
- 特点 :
- 完全可视化,无需写代码
- 100+ 预置组件节点
- 一键部署为 API
- 支持嵌入到现有系统
- 实战练习 :
- 用 Flowise 搭建一个客服聊天机器人
- 集成知识库检索功能
- 添加工具调用能力(如查天气、查订单)
项目 20:Langflow ------ AI 工作流 IDE
- GitHub :langflow-ai/langflow
- Stars:148k+
- 内容:强大的 AI 应用可视化开发平台
- 特点 :
- 基于 LangChain 构建
- 支持 MCP Server
- 内置组件市场
- 支持代码和可视化混合开发
- 实战练习:构建一个多模态 AI 应用,支持文本、图片、文件输入
学习注意事项与常见问题
一、环境与工具准备
1. Python 版本管理
- 推荐使用 Python 3.10 或 3.11,兼容性最好
- 强烈建议使用
pyenv或conda管理多个 Python 版本,避免污染系统环境 - 每个项目创建独立的虚拟环境:
python -m venv .venv或conda create -n myproject
2. API Key 安全
- 永远不要将 API Key 硬编码在代码中
- 使用环境变量管理:
export OPENAI_API_KEY="sk-xxx"或.env文件 .env文件必须加入.gitignore- 生产环境使用密钥管理服务(如 AWS Secrets Manager、HashiCorp Vault)
- 定期轮换 API Key,发现泄露立即更换
3. 网络与代理
- 访问 OpenAI、Anthropic 等国外 API 通常需要代理
- GitHub 克隆慢可以使用镜像站或设置 Git 代理
- Hugging Face 模型下载可使用国内镜像:
https://hf-mirror.com
二、学习方法建议
1. 不要跳阶段
每个阶段的知识是下一个阶段的基础:
- 不懂 API 调用 → 做不了 RAG
- 不懂 Prompt 工程 → Agent 效果很差
- 不懂 RAG → 多 Agent 无法有效利用知识
2. 先跑通再理解
- 先把官方示例跑起来,看到效果
- 再逐行理解代码,搞清楚每个参数的作用
- 最后尝试修改和扩展
3. 做笔记,建自己的知识库
- 遇到的问题和解决方案记录下来
- 好的 Prompt 模板收集起来
- 常用的代码片段整理成工具库
- 推荐用 Markdown + Git 管理笔记
4. 关注社区动态
- GitHub Trending 每周看一次
- 关注 LangChain、OpenAI、Anthropic 的官方博客
- 加入相关 Discord / 微信社群
- AI 领域变化极快,半年前的最佳实践可能已经过时
三、常见踩坑与解决方案
1. Token 超限
错误:This model's maximum context length is 128000 tokens
- 解决:截断对话历史、使用摘要压缩、选择更大上下文窗口的模型
- 预防:在代码中加入 token 计数逻辑,提前预警
2. API 调用速率限制
错误:429 Too Many Requests
- 解决:实现指数退避重试(Exponential Backoff)
- 代码示例:
python
import time
import random
def call_with_retry(func, max_retries=5):
for i in range(max_retries):
try:
return func()
except RateLimitError:
wait = (2 ** i) + random.uniform(0, 1)
print(f"速率限制,等待 {wait:.1f} 秒后重试...")
time.sleep(wait)
raise Exception("重试次数耗尽")
3. RAG 检索质量差
- 症状:检索到的内容与问题无关
- 排查步骤:
- 检查分块是否合理(chunk_size 太大会稀释相关内容,太小会丢失上下文)
- 检查嵌入模型是否适合你的语言和领域
- 尝试混合检索(向量 + BM25)
- 添加 Reranking 步骤
4. Agent 陷入死循环
- 症状:Agent 反复调用同一个工具,无法完成任务
- 解决:
- 设置最大迭代次数(如 max_iterations=10)
- 在 Prompt 中明确任务终止条件
- 添加超时机制
5. 模型输出不稳定
- 症状:同样的输入,每次输出不同
- 解决:
- 设置
temperature=0获取确定性输出 - 使用
seed参数(部分模型支持) - 在 Prompt 中明确输出格式要求
- 设置
四、成本控制
1. 开发阶段省钱技巧
- 使用 GPT-4o-mini 而非 GPT-4o 进行开发和测试(价格差 10-30 倍)
- 使用本地模型(Ollama)进行调试
- 缓存相同的 API 调用结果
- 使用免费额度:Google Gemini、DeepSeek 等提供大量免费 token
2. 生产阶段成本优化
- 根据任务复杂度动态选择模型(简单任务用小模型,复杂任务用大模型)
- 实现语义缓存:相似问题直接返回缓存结果
- 压缩 Prompt:去除冗余指令,精简上下文
- 监控 token 使用量,设置预算告警
五、技术选型建议
| 场景 | 推荐方案 | 备选方案 |
|---|---|---|
| 快速原型 | Dify / Flowise | Langflow |
| RAG 应用 | LangChain + Chroma | LlamaIndex + Milvus |
| Agent 开发 | LangGraph | CrewAI |
| 多 Agent 协作 | AutoGen / CrewAI | LangGraph |
| 本地部署 | Ollama + Open WebUI | vLLM |
| 生产级推理 | vLLM | TensorRT-LLM |
| 可观测性 | LangSmith | Langfuse / Phoenix |
推荐学习资源汇总
系统课程
| 课程 | GitHub | Stars | 内容 |
|---|---|---|---|
| 生成式 AI 入门 | microsoft/generative-ai-for-beginners | 75k | 12 节课,生成式 AI 基础 |
| AI Agent 入门 | microsoft/ai-agents-for-beginners | 50k | 15 节课,Agent 开发基础 |
| Hugging Face Agent 课程 | huggingface/agents-course | 30k | Agent 系统学习 |
实战项目合集
| 项目 | GitHub | Stars | 内容 |
|---|---|---|---|
| awesome-llm-apps | Shubhamsaboo/awesome-llm-apps | 105k | 100+ LLM 应用模板 |
| LLM-RAG-Agent 教程 | mac999/LLM-RAG-Agent-Tutorial | - | LLM/RAG/Agent 全栈教程 |
| Agent 学习路线 | Haozhe-Xing/agent_learning | - | 系统性 Agent 学习 |
| RAG 从零实现 | langchain-ai/rag-from-scratch | 8.5k | RAG 技术逐个拆解 |
框架与工具
| 工具 | GitHub | Stars | 用途 |
|---|---|---|---|
| LangChain | langchain-ai/langchain | 100k | LLM 应用开发框架 |
| LangGraph | langchain-ai/langgraph | 35k | Agent 工作流引擎 |
| CrewAI | crewAIInc/crewAI | 28k | 多 Agent 协作框架 |
| AutoGen | microsoft/autogen | 42k | 多 Agent 对话框架 |
| Dify | langgenius/dify | 65k | LLM 应用开发平台 |
| FastGPT | labring/FastGPT | 28k | 知识库问答平台 |
| Flowise | FlowiseAI/Flowise | 52k | 可视化 AI 工作流 |
| Langflow | langflow-ai/langflow | 148k | AI 工作流 IDE |
| Ollama | ollama/ollama | 120k | 本地模型运行 |
| Open WebUI | open-webui/open-webui | 130k | 本地模型管理平台 |
| vLLM | vllm-project/vllm | 35k | 高性能推理引擎 |
| Promptflow | microsoft/promptflow | 18k | Prompt 工程工具 |
| Langchain-Chatchat | chatchat-space/Langchain-Chatchat | 32k | 中文 RAG 应用 |
学习路线总结
阶段一:API 调用基础 → 理解 LLM 是什么、怎么调
↓
阶段二:Prompt 工程 → 学会与模型高效沟通
↓
阶段三:RAG → 让模型基于你的数据回答
↓
阶段四:AI Agent → 让模型自主完成复杂任务
↓
阶段五:多 Agent 协作 → 让多个 Agent 组队工作
↓
阶段六:本地部署 → 模型跑在自己的服务器上
↓
阶段七:生产级应用 → 从原型到可上线的产品
核心建议:
- 先跑通,再理解:每个阶段先用现成项目跑起来,再深入原理
- 边学边做:每学一个知识点就做一个小项目,不要只看不练
- 关注社区:GitHub 上的 Issues 和 Discussions 是最好的学习资源
- 保持更新:AI 领域发展极快,每周花 2-3 小时关注新技术动态
- 控制成本:开发阶段用便宜模型和本地模型,生产阶段再用最好的