
无需算法背景、不啃数学公式,只要你懂一点 Python,就能在 1 小时内让大模型为你干活。本文带你从零开始,一步步解锁大模型应用开发的核心技能。
你是不是也听过这些词:Prompt Engineering、RAG、Agent、Function Calling……感觉高深莫测?
别被这些术语吓到。本质上,大模型就是一个超级聪明的“实习生”——它懂很多知识,但不了解你的具体业务,也不会主动使用工具。而我们作为“老板”,要做的就是:
本文将从最基础的开场白开始,用最简单的代码带你完成以下四个实战项目:
全程只需 Python 基础,代码不超过 50 行每个项目。我们开始吧!
国内推荐使用 Qwen(通义千问) 或 DeepSeek,对中文友好,且有免费额度。
pip install openai # 兼容 OpenAI 接口以 DeepSeek 为例(Qwen 类似,改 base_url 即可):
from openai import OpenAI
client = OpenAI(
api_key="你的_API_Key",
base_url="https://api.deepseek.com/v1"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "请用一句话解释什么是大模型?"}
]
)
print(response.choices[0].message.content)运行结果(示例):
“大模型是一种通过海量数据训练而成的深度学习模型,能够理解和生成自然语言、图像等多种内容,像人类一样进行对话和创作。”
🎉 恭喜!你已经完成了第一个 AI 应用。接下来,我们要让模型“按你的要求”回答。
模型默认的回答往往太啰嗦或不符合你的业务需求。通过设计系统提示词(System Prompt),你可以给它设定“人设”和“输出规范”。
我们希望模型生成标题 + 正文 + 话题标签,且语气活泼,带 emoji。
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": """
你是一位小红书爆款文案专家。请按以下格式输出:
标题:xxx(带emoji)
正文:xxx(分段落,每段不超过3行,语言活泼)
标签:#xx #xx
"""},
{"role": "user", "content": "产品:一款智能保温杯,可显示水温,续航7天。"}
]
)
print(response.choices[0].message.content)输出示例:
标题:🔥 喝水也能玩出科技感!这款保温杯我吹爆~
正文:
每天早上打开杯盖,水温一目了然,再也不用嘴试温度了!
续航超强,充一次电用一周,出差带着贼省心。
颜值也在线,办公桌上一放,同事都来问链接。
标签:#黑科技好物 #保温杯 #智能生活掌握了这个,你已经能做出很多实用小工具了。但模型的知识截止到训练日期,它不知道你的最新文档。怎么办?往下看。
RAG(检索增强生成) 就是让模型在回答前,先从一个“知识库”里搜索相关内容,再结合用户问题一起回答。这样即使是最新的内部资料,模型也能准确引用。
我们用一个轻量级的方案:langchain + chromadb。
pip install langchain langchain-community chromadb sentence-transformers假设我们有一份公司产品手册(product.txt):
智能保温杯 Pro:
- 内置温度传感器,实时显示水温(精度±1℃)
- 续航时间:7天(每天开盖20次)
- 容量:400ml,重量280g
- 支持无线充电
- 颜色:星空灰、珊瑚粉from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain_openai import ChatOpenAI # 兼容接口
# 1. 加载文档
loader = TextLoader("product.txt")
documents = loader.load()
# 2. 分块(因为文档小,不分也可以)
text_splitter = CharacterTextSplitter(chunk_size=200, chunk_overlap=20)
texts = text_splitter.split_documents(documents)
# 3. 生成向量并存入 Chroma(本地向量库)
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
vectorstore = Chroma.from_documents(texts, embeddings)
# 4. 创建检索器
retriever = vectorstore.as_retriever()
# 5. 创建问答链
llm = ChatOpenAI(
model="deepseek-chat",
openai_api_key="你的Key",
openai_api_base="https://api.deepseek.com/v1"
)
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
# 6. 提问
question = "这个保温杯能续航多久?"
answer = qa_chain.invoke(question)
print(answer["result"])输出:
“智能保温杯 Pro 的续航时间为 7 天(每天开盖 20 次)。”
看!模型没有乱编,而是从你的文档中精确提取了答案。如果你有几十份 PDF,只需换成 PyPDFLoader 即可。
模型再聪明,也无法直接查天气、算复杂数学、发邮件。Agent(智能体) 通过“工具调用(Function Calling)”让模型可以决定何时调用外部函数。
我们以 查询实时天气 为例,用 MCP(Model Context Protocol)思想简化实现(注:2025 年 MCP 已成主流,但本方案直接调用函数更易懂)。
import requests
def get_weather(city: str) -> str:
"""模拟调用天气 API(实际可替换为和风天气等)"""
# 这里用假数据,真实场景替换为 API 请求
weather_db = {
"北京": "晴 25℃",
"上海": "多云 28℃",
"广州": "雷阵雨 32℃"
}
return weather_db.get(city, "未查到该城市天气")我们需要将工具描述(名称、参数、说明)以 JSON 格式传给模型,模型在需要时会返回要调用的函数名和参数。
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市的实时天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称,如'北京'"}
},
"required": ["city"]
}
}
}
]response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "上海今天天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
message = response.choices[0].message
# 检查模型是否要求调用工具
if message.tool_calls:
tool_call = message.tool_calls[0]
args = json.loads(tool_call.function.arguments)
city = args["city"]
weather_result = get_weather(city)
# 将工具结果返回给模型,让其生成最终回答
second_response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "上海今天天气怎么样?"},
message, # 助手的 tool_calls 消息
{
"role": "tool",
"tool_call_id": tool_call.id,
"content": weather_result
}
]
)
print(second_response.choices[0].message.content)
else:
print(message.content)输出:
“上海今天多云,气温 28℃,适合出门。”
这样一个简单的 Agent 就诞生了。你可以继续给它加上发邮件、计算器、查询数据库等工具,让它真正成为你的“数字员工”。
问题 | 原因 | 解决方法 |
|---|---|---|
输出太长或太短 | 未设置 max_tokens | 添加参数 max_tokens=500 |
模型拒绝回答 | 触及安全策略 | 调整提示词,换正面表述 |
中文效果差 | 模型或嵌入模型未选对 | 使用 Qwen、DeepSeek,嵌入用 bge-m3 |
RAG 检索不到相关内容 | 分块太大或太小 | 尝试 chunk_size=300,重叠 50 |
Agent 调用工具失败 | 工具描述不清晰 | 写清楚“用途+参数+返回” |
当你完成了以上四个项目,你已经具备了独立开发 AI 应用的能力。接下来,你可以挑战:
今天,我们用不到 100 行代码,完成了大模型 API 调用、提示词工程、RAG 和 Agent 四大核心技能的学习。你会发现,AI 应用开发并不需要高深的数学或复杂的框架,关键在于清晰的需求描述和对工具的熟练运用。
记住:AI 不会取代你,但会用 AI 的人会。 现在,打开你的编辑器,把每个示例都敲一遍,再换成你自己的业务场景——比如做一个“法律问答助手”、“编程导师”或“旅行规划师”。
有任何问题,欢迎在评论区留言,我会一一解答。期待看到你的第一个 AI 作品!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。