LangChain + LangSmith + DeepSeek 入门实战:构建代码生成助手
本文基于 Jupyter Notebook 实践代码,结合 LangChain、LangSmith 和 DeepSeek 大模型,手把手演示如何构建一个代码生成助手,并实现全流程追踪与优化。
一、环境准备与配置
1. 安装依赖
pip install langchain langchain_openai
2. 设置环境变量(Jupyter 中运行)
请注意,LangSmith 不是必需的,但它很有帮助。如果您确实想使用 LangSmith,请在LangSmith注册后,确保设置环境变量以开始记录跟踪。当我们使用 LLM 构建 AI 智能体应用程序时,LangSmith 可以帮助你理解和改进它们。它就像一个仪表板,显示应用程序内部发生的情况。
# 启用 LangSmith 跟踪
true=True
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT="https://api.smith.langchain.com"
LANGSMITH_API_KEY="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"
LANGSMITH_PROJECT="pr-untimely-house-95"# 配置 DeepSeek API
os.environ["DEEPSEEK_API_KEY"] = "sk-e3f022d1746f415c9b0f4bc9a52a4xxx" # todo 调整为自己的api_key
二、集成 DeepSeek 大模型
1. 初始化模型客户端
from langchain_openai import ChatOpenAIllm = ChatOpenAI(model="deepseek-chat",api_key=os.getenv("DEEPSEEK_API_KEY"),temperature=0.7,max_tokens=512,timeout=30,max_retries=3,base_url="https://api.deepseek.com"
)# 测试调用
llm.invoke("hello world")
输出示例:
三、构建提示模板系统
1. 定义结构化提示模板
from langchain_core.prompts import ChatPromptTemplatesystem_template = "将以下用户输入的信息转化为{language}代码"
prompt_template = ChatPromptTemplate.from_messages([("system", system_template), ("user", "{text}")]
)
2. 生成具体提示内容
输出示例:
Content: 将以下用户输入的信息转化为python代码
Content: 请帮我写一个冒泡算法
3. 转换为消息格式
prompt.to_messages()
输出示例:
四、执行链式调用与结果生成
1. 调用 DeepSeek 生成代码
response = llm.invoke(prompt)
print(response.content)
输出示例(模型生成结果):
五、LangSmith 全流程监控
1. 自动追踪功能
- 所有调用链(Prompt → LLM → Output)将自动上传至 LangSmith 仪表板
- 可查看:
- 调用树状结构
- 每个步骤耗时
- Token 消耗统计
- 中间输出结果
2. 项目管理
- 所有运行记录归类到
pr-untimely-house-95
项目 - 支持版本对比、性能分析和团队协作
完整代码与调试日志已通过 LangSmith 实现全流程追踪,您可以通过 LangSmith 仪表板 查看详细分析报告。