本文是《LangChain实战课》系列的第二篇,将手把手带你完成环境配置,并创建你的第一个LangChain应用。
前言
在上一篇文章中,我们了解了LangChain的基本概念和核心价值。今天,我们将正式开始动手实践,从零开始搭建LangChain开发环境,并创建第一个能够与大型语言模型对话的简单应用。
环境准备
1. Python环境要求
LangChain要求Python 3.8或更高版本。如果你还没有安装Python,请按照以下步骤操作:
检查当前Python版本:
bash
python --version # 或 python3 --version
如果版本低于3.8,请从Python官网下载并安装最新版本。
2. 创建虚拟环境
强烈建议使用虚拟环境来管理Python项目依赖,这样可以避免包冲突问题。
使用venv创建虚拟环境:
bash
# 创建名为langchain-env的虚拟环境 python -m venv langchain-env # 激活虚拟环境 # Windows langchain-envScriptsactivate # macOS/Linux source langchain-env/bin/activate
激活后,命令行提示符前会出现标识。
(langchain-env)
3. 安装LangChain和相关依赖
现在我们来安装LangChain核心库以及常用的扩展包:
bash
# 安装LangChain核心库 pip install langchain # 安装OpenAI包(如果你使用OpenAI的模型) pip install openai # 安装常用的数据处理工具 pip install python-dotenv # 用于管理环境变量 pip install chromadb # 轻量级向量数据库 pip install tiktoken # OpenAI的令牌计数工具 # 可选:安装更多文档加载器 pip install pypdf2 # 处理PDF文档 pip install docx2txt # 处理Word文档 pip install youtube-transcript-api # 获取YouTube字幕
获取API密钥
要使用大多数商业LLM服务(如OpenAI),你需要获取相应的API密钥。
获取OpenAI API密钥
访问 OpenAI平台
注册或登录你的账号
点击右上角的个人资料,选择”View API Keys”
点击”Create new secret key”生成新的API密钥
复制并妥善保存这个密钥(它只会显示一次)
配置API密钥
为了安全起见,不建议将API密钥直接写在代码中。我们将使用环境变量来管理密钥。
创建.env文件:
bash
# 在项目根目录创建.env文件 touch .env
在.env文件中添加你的API密钥:
ini
OPENAI_API_KEY=你的实际API密钥
编写第一个LangChain程序
现在让我们来创建第一个简单的LangChain应用,实现基本的问答功能。
1. 基础版本:直接调用模型
创建文件:
hello_langchain.py
python
import os
from dotenv import load_dotenv
from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
# 加载环境变量
load_dotenv()
# 初始化OpenAI模型
llm = OpenAI(
model_name="gpt-3.5-turbo-instruct", # 你也可以使用 "text-davinci-003"
temperature=0.7, # 控制生成文本的随机性,0-1之间,越高越有创造性
max_tokens=500, # 限制生成文本的最大长度
)
# 使用LLM进行简单文本补全
prompt = "请用一句话解释人工智能是什么?"
response = llm(prompt)
print("=== 直接调用LLM ===")
print(f"问题: {prompt}")
print(f"回答: {response}")
print()
# 使用Chat模型(更适合对话场景)
chat_model = ChatOpenAI(
model_name="gpt-3.5-turbo",
temperature=0.7
)
# 创建聊天消息
messages = [HumanMessage(content="请用一句话解释机器学习是什么?")]
chat_response = chat_model(messages)
print("=== 使用Chat模型 ===")
print(f"问题: {messages[0].content}")
print(f"回答: {chat_response.content}")
运行这个程序:
bash
python hello_langchain.py
你应该能看到模型返回的答案,这是你与LangChain的第一次对话!
2. 进阶版本:使用提示模板
LangChain的强大之处在于它的组件化设计。让我们使用提示模板来改进程序:
创建文件:
hello_prompt_template.py
python
import os
from dotenv import load_dotenv
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
# 加载环境变量
load_dotenv()
# 初始化模型
llm = OpenAI(temperature=0.7)
# 创建提示模板
template = """
你是一个{role}。请用{style}的风格回答以下问题:
问题:{question}
回答:
"""
prompt_template = PromptTemplate(
input_variables=["role", "style", "question"],
template=template
)
# 填充模板并生成回答
filled_prompt = prompt_template.format(
role="AI专家",
,
question="Transformer模型在自然语言处理中为什么如此重要?"
)
response = llm(filled_prompt)
print("=== 使用提示模板 ===")
print("生成的提示:")
print(filled_prompt)
print("
模型的回答:")
print(response)
3. 完整示例:简单的问答机器人
让我们创建一个更完整的示例,模拟简单的对话交互:
创建文件:
simple_chatbot.py
python
import os
from dotenv import load_dotenv
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage
# 加载环境变量
load_dotenv()
class SimpleChatbot:
def __init__(self):
# 初始化聊天模型
self.chat_model = ChatOpenAI(
model_name="gpt-3.5-turbo",
temperature=0.7
)
# 系统消息,设定AI的角色和行为
self.system_message = SystemMessage(content="""
你是一个有帮助的AI助手。你的回答应该:
1. 简洁明了,切中要点
2. 友好且专业
3. 如果遇到不知道的问题,诚实地承认
""")
def chat(self, user_input):
# 构建消息列表
messages = [
self.system_message,
HumanMessage(content=user_input)
]
# 获取模型回复
response = self.chat_model(messages)
return response.content
def run(self):
print("欢迎使用SimpleChatbot!输入'退出'来结束对话。")
print("=" * 50)
while True:
user_input = input("
你: ")
if user_input.lower() in ['退出', 'exit', 'quit']:
print("AI: 再见!期待下次对话。")
break
try:
response = self.chat(user_input)
print(f"AI: {response}")
except Exception as e:
print(f"抱歉,出了点问题: {e}")
# 运行聊天机器人
if __name__ == "__main__":
load_dotenv()
bot = SimpleChatbot()
bot.run()
运行这个聊天机器人:
bash
python simple_chatbot.py
现在你可以与AI进行真正的对话了!
常见问题解答
Q1: 遇到API密钥错误怎么办?
A: 确保你已经:
正确设置了OPENAI_API_KEY环境变量
在OpenAI平台账户中有足够的余额
API密钥没有拼写错误
Q2: 安装包时遇到权限错误怎么办?
A: 使用虚拟环境或在命令前加上(仅限Linux/macOS),但更推荐使用虚拟环境。
sudo
Q3: 程序运行速度很慢怎么办?
A: 这通常是由于网络延迟或模型加载时间造成的。对于生产环境,可以考虑:
使用更轻量的模型
实现缓存机制
使用异步调用
Q4: 如何减少API调用成本?
A:
设置合理的参数
max_tokens
对相似请求使用缓存
在开发阶段使用模拟响应
总结
恭喜!你已经成功完成了:
✅ 搭建了LangChain开发环境
✅ 获取并配置了API密钥
✅ 创建了第一个直接调用LLM的程序
✅ 使用了提示模板来规范化输入
✅ 构建了简单的交互式聊天机器人
这只是一个开始,但已经涵盖了LangChain最基础也最重要的概念。在接下来的文章中,我们将深入探讨Model I/O模块的更多功能,包括更复杂的提示工程和输出解析技术。
下一步学习建议
尝试修改提示模板,观察不同参数对输出的影响
体验不同的模型(如切换gpt-3.5-turbo和gpt-4)
调整temperature参数,观察生成文本的多样性变化
欢迎在评论区分享你的体验! 你在环境搭建过程中遇到了什么问题?你的第一个LangChain程序运行成功了吗?如果有任何疑问,欢迎在评论区留言,我们会尽力解答。
下一篇预告:《LangChain实战:深入理解Model I/O – Prompts模板》 – 我们将深入探讨LangChain的提示模板功能,学习如何创建更复杂和高效的提示工程。



![手机使用技巧:8 个 Android 锁屏移除工具 [解锁 Android] - 宋马](https://pic.songma.com/blogimg/20250903/50f0d506d7e54e0fb067069cb0af0eda.jpg)















暂无评论内容