跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 使用 LangChain 集成通义千问构建聊天机器人

介绍如何使用 Python 和 LangChain 框架集成阿里云通义千问大模型。通过安装 langchain-community 和 dashscope 库,配置环境变量获取 API Key,实例化 Tongyi 类并设置 PromptTemplate 模板,即可快速构建具备特定角色设定的 AI 聊天机器人。文中涵盖了环境搭建、代码编写、模型参数调节及安全最佳实践,帮助开发者低成本接入大语言模型能力。

奶糖兔发布于 2025/2/6更新于 2026/7/2545 浏览
Python 使用 LangChain 集成通义千问构建聊天机器人

Python 使用 LangChain 集成通义千问构建聊天机器人

什么是 LangChain

LangChain 是一个用于开发由语言模型驱动的应用程序的框架,致力于简化 AI 模型应用的开发。它通过提供一系列组件和工具,帮助开发者轻松完成大语言模型(LLM)应用的集成与编排。目前 LangChain 支持 Python 和 JavaScript 两个主要版本,并集成了多种大语言模型及第三方 API。

本文将介绍如何在 Python 环境下使用 LangChain 集成阿里云通义千问(Qwen)大模型,实现一个具备特定角色设定的基础 AI 聊天机器人。

1. 环境安装

首先,确保你的 Python 环境已配置好。在终端或命令行中执行以下命令安装必要的依赖包:

pip install langchain
pip install langchain-community
pip install python-dotenv
pip install dashscope
  • langchain:核心框架库。
  • langchain-community:包含各种第三方集成,如大语言模型接口。
  • python-dotenv:用于加载环境变量文件,避免硬编码敏感信息。
  • dashscope:阿里云灵积模型服务的官方 SDK。

2. 准备工作:获取 API Key

在使用通义千问模型之前,需要获取阿里云的 API Key。

  1. 注册/登录账号:访问阿里云官网,注册或登录您的账号。
  2. 开通服务:搜索"灵积模型服务",点击立即开通,选择免费试用或相应套餐。
  3. 创建 API Key:进入产品控制台,找到 API-KEY 管理页面,创建新的密钥。请妥善保管该密钥,一旦遗失可在查看记录中找回。

建议将 API Key 保存在环境变量中,而不是直接写在代码里,以确保安全性。

3. 代码实现

3.1 导入相关模块

在 VSCode 或 PyCharm 等编辑器中创建 Python 文件,编写以下代码:

import os
from dotenv import find_dotenv, load_dotenv

# 加载环境变量
load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]

from langchain_community.llms import Tongyi
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
  • os 和 dotenv:用于安全地读取环境变量中的 DASHSCOPE_API_KEY。
  • Tongyi:LangChain 封装的通义千问大语言模型类。
  • PromptTemplate:提示词模板,用于定义模型回答的结构和约束。
  • LLMChain:将 LLM 与 Prompt 连接起来的链式调用对象。

3.2 实例化模型与定义角色

接下来,实例化一个 LLM 对象,并定义其角色行为。通过设置 temperature 参数可以调节文本生成的多样性。

# temperature=1 表示较高的多样性,回答更丰富;0 则更准确、保守
llm = Tongyi(temperature=1)

template = '''
    你的名字是小黑子,当人问问题的时候,你都会在开头加上'唱,跳,rap,篮球!',然后再回答{question}
'''

prompt = PromptTemplate(
    template=template,
    input_variables=["question"]  # question 是用户输入的内容
)

chain = LLMChain(
    llm=llm,
    prompt=prompt
)

question = '你是谁'
res = chain.invoke(question)  # 运行链
print(res['text'])  # 打印结果
  • temperature:控制随机性。大于 0 时回答更具创造性,但可能产生幻觉;为 0 时输出更确定。
  • res['text']:返回结果字典中包含模型生成的文本内容。

3.3 配置文件

创建一个 .env 文件存放密钥:

DASHSCOPE_API_KEY="你的实际 apikey"

确保 .env 文件位于项目根目录且未被提交到版本控制系统中。

4. 模型选择与配置说明

在早期的 LangChain 版本或特定集成中,默认模型可能是 qwen-plus。如果需要指定更高性能的 qwen-max 或其他模型,通常建议在初始化参数中明确指定模型名称。

如果当前版本未直接暴露模型选择参数,请参考官方文档确认是否支持通过环境变量或构造函数参数指定模型。修改底层源代码(如 llms.py)来强制切换模型并非推荐做法,因为这会导致升级困难且不稳定。正确的做法是查阅最新文档,使用支持的配置方式。

5. 最佳实践与安全建议

5.1 密钥安全管理

永远不要将 API Key 硬编码在代码中。使用 .env 文件或操作系统的环境变量管理敏感信息。在 Git 仓库中添加 .env 到 .gitignore 文件中。

5.2 错误处理

在实际生产环境中,网络请求可能会失败,API 也可能返回错误。建议添加异常捕获机制:

try:
    res = chain.invoke(question)
    print(res['text'])
except Exception as e:
    print(f"发生错误:{e}")

5.3 提示词工程优化

Prompt 的质量直接影响模型效果。可以通过以下方式优化:

  • 明确指令:清晰定义角色的身份、语气和行为边界。
  • 上下文管理:对于多轮对话,需引入 Memory 组件保存历史对话。
  • Few-Shot Learning:在 Prompt 中提供示例,引导模型生成符合预期的格式。

6. 总结

本文演示了如何使用 Python 和 LangChain 快速接入通义千问大模型。通过简单的配置和代码编写,即可构建具备自定义行为的聊天机器人。随着 LangChain 生态的完善,开发者可以更便捷地利用大模型能力构建复杂应用,如智能客服、知识库问答系统等。后续可进一步探索 Agent 功能、RAG(检索增强生成)以及多模态能力扩展。

目录

  1. Python 使用 LangChain 集成通义千问构建聊天机器人
  2. 什么是 LangChain
  3. 1. 环境安装
  4. 2. 准备工作:获取 API Key
  5. 3. 代码实现
  6. 3.1 导入相关模块
  7. 加载环境变量
  8. 3.2 实例化模型与定义角色
  9. temperature=1 表示较高的多样性,回答更丰富;0 则更准确、保守
  10. 3.3 配置文件
  11. 4. 模型选择与配置说明
  12. 5. 最佳实践与安全建议
  13. 5.1 密钥安全管理
  14. 5.2 错误处理
  15. 5.3 提示词工程优化
  16. 6. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 豆包 Seedream 4.0 多图融合实测:主体一致性与生成速度解析
  • Spatial Joy 2025 全球 AR&AI 赛事:开发者资源、玩法与避坑攻略
  • 在 Cursor 和 Trae 等 AI 编程工具中使用 Skills 的方法
  • 数据结构:快速排序非递归实现、优化及内省排序详解
  • 网络安全入门指南:行业分支与系统学习路线
  • llama.cpp CUDA 编译与性能优化实战指南
  • 2026 年实测好用 AI 写作平台推荐:中文、学术、职场及国际场景
  • llama.cpp 大模型本地部署与推理指南
  • 基于 SpringBoot 与多版本 YOLO 的行人车辆检测系统
  • FastGPT 结合 MCP 协议构建工具增强型智能体实战指南
  • 华南理工大学开源中文主动健康大模型扁鹊(BianQue)
  • Python 通过 ctypes 调用 C++ DLL 的原理与实战
  • Kiro 安装与使用指南:AWS 新一代 AI IDE 两种部署方式
  • VMware 虚拟机安装 macOS 指南:镜像转换与工具优化
  • Stable Diffusion WebUI 云服务器部署实战
  • Python 获取卫星 TLE 数据及轨道六根数预测教程
  • 视觉 - 骨架双模态框架用于帕金森病步态的泛化评估
  • GitHub Copilot 网络配置与代理部署指南
  • PyCharm 中 Copilot 插件 Claude 模型不可用解决方案
  • 动态规划时间复杂度和空间复杂度计算方法

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online