适用人群:有编程基础,想开发AI应用
难度:中等
预计学习时间:20-30小时
为什么学大模型应用开发?
| 优势 | 说明 |
|---|
| 最热方向 | 2024-2025最火的开发领域 |
| 门槛降低 | 不需要训练模型,调用API即可 |
| 应用广泛 | 客服、写作、编程、分析等各领域 |
| 创业机会 | AI原生应用赛道刚起步 |
学习路线
第1阶段:API基础(1周)
├── OpenAI API调用
├── Chat Completions接口
├── 流式输出(SSE)
├── 多模态(图像/音频)
└── 其他模型API(Claude/Gemini/DeepSeek)
第2阶段:Prompt工程(1周)
├── 提示词设计原则
├── Few-shot / Zero-shot
├── Chain of Thought
├── 系统提示词设计
└── 输出格式控制(JSON Mode)
第3阶段:RAG系统(2周)
├── 文档解析与分块
├── 向量嵌入(Embedding)
├── 向量数据库(Milvus/Pinecone/Chroma)
├── 检索策略
├── 上下文注入
└── LangChain/LlamaIndex
第4阶段:Agent开发(2周)
├── Function Calling
├── Tool Use
├── 多Agent协作
├── 工作流编排
└── OpenAI Agents SDK
第5阶段:实战应用(2周)
├── 知识库问答系统
├── AI客服机器人
├── 文档分析助手
└── 代码助手
核心代码示例
# OpenAI API基础调用
from openai import OpenAI
client = OpenAI(api_key="sk-xxx")
# 基本对话
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "解释什么是RAG"}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
# 流式输出
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "写一篇关于AI的文章"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
# Function Calling
import json
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
},
"required": ["city"]
}
}
}]
def get_weather(city):
return {"city": city, "temp": 25, "weather": "晴"}
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
tools=tools
)
# 处理工具调用
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
result = get_weather(args["city"])
# 将结果返回给模型
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "user", "content": "北京今天天气怎么样?"},
response.choices[0].message,
{"role": "tool", "content": json.dumps(result), "tool_call_id": tool_call.id}
]
)
# RAG示例
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_openai import ChatOpenAI
from langchain.chains import RetrievalQA
# 文档分块
splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=50
)
docs = splitter.split_text(document_text)
# 创建向量数据库
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_texts(docs, embeddings)
# 问答链
qa = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o"),
retriever=vectorstore.as_retriever(search_kwargs={"k": 3})
)
result = qa.invoke({"query": "这个产品的退款政策是什么?"})
print(result["result"])
// JavaScript/TypeScript 调用OpenAI
import OpenAI from 'openai';
const client = new OpenAI({ apiKey: 'sk-xxx' });
const response = await client.chat.completions.create({
model: 'gpt-4o',
messages: [
{ role: 'system', content: '你是一个前端开发助手' },
{ role: 'user', content: '写一个React组件' }
]
});
console.log(response.choices[0].message.content);
向量数据库对比
| 数据库 | 类型 | 特点 | 适用场景 |
|---|
| Chroma | 嵌入式 | 轻量、易用 | 原型开发 |
| Pinecone | 云服务 | 全托管、高性能 | 生产环境 |
| Milvus | 开源 | 功能丰富、可扩展 | 大规模应用 |
| Weaviate | 开源 | 混合搜索 | 语义搜索 |
| pgvector | 扩展 | PostgreSQL扩展 | 已有PG的项目 |
推荐资源
| 资源 | 说明 |
|---|
| OpenAI Cookbook | 官方示例代码 |
| LangChain文档 | RAG/Agent开发框架 |
| LlamaIndex文档 | 数据框架 |
| DeepLearning.AI | AI应用开发课程 |
| Hugging Face | 开源模型和数据集 |