LangChain多模型调用实践:整合OpenRouter、Deepseek等API接口
引言
在人工智能快速发展的今天,各种大语言模型层出不穷。使用LangChain框架,我们可以方便地调用不同的模型API,本文将介绍如何通过LangChain调用OpenRouter、Deepseek等模型服务。
基础环境准备
在开始之前,我们需要安装必要的依赖:
pip install langchain-openai
pip install langchain[deepseek] # 如果需要使用Deepseek
pip install langchain-community # 如果需要使用社区版本的模型
OpenRouter API调用
OpenRouter提供了兼容OpenAI接口规范的服务,我们可以直接使用langchain_openai
的ChatOpenAI
来调用:
from langchain_openai import ChatOpenAI
# 配置OpenRouter API
model = ChatOpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="your_api_key_here",
model="qwen/qwq-32b:free"
)
Deepseek模型调用
对于Deepseek模型,LangChain提供了专门的包支持:
from langchain_deepseek import ChatDeepSeek
# 配置Deepseek模型
model = ChatDeepSeek(
model="deepseek-chat",
api_key="sk-deepseek-v1-your_key_here"
)
使用社区版本调用其他模型
对于一些未在官方集成列表中的模型(如通义千问),我们可以使用LangChain社区版本:
from langchain_community.chat_models import ChatTongyi
# 配置通义千问模型
消息处理示例
下面是一个使用系统消息和用户消息的示例:
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_core.output_parsers import StrOutputParser
# 创建消息列表
messages = [
SystemMessage(content="请将用户的提问转换为中文,不用要回答问题"),
HumanMessage(content="who are you")
]
# 调用模型获取结果
result = model.invoke(messages)
print(result)
关键点解析
-
模型调用方式
- 使用
ChatOpenAI
类可以调用符合OpenAI接口规范的服务 - 每个模型服务都需要相应的API密钥
- 可以通过
base_url
参数指定不同的API端点
- 使用
-
消息类型
SystemMessage
: 用于设置系统级指令HumanMessage
: 用于传递用户输入- 这些消息类型来自
langchain_core.messages
模块
-
输出处理
- 可以使用
StrOutputParser
进行输出解析 model.invoke()
方法直接返回模型响应
- 可以使用
注意事项
- 使用前请确保已经获取了相应的API密钥
- 不同模型的接口可能有细微差别,需要查看相应的文档
- 建议在正式环境中做好错误处理
- API调用可能会产生费用,请注意控制使用量
结论
LangChain提供了一个统一的接口来调用各种大语言模型,大大简化了开发流程。通过本文介绍的方法,我们可以根据需求灵活选择和切换不同的模型服务。
参考资料
- LangChain官方文档:https://python.langchain.com/docs/integrations/providers/