likes
comments
collection
share

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

作者站长头像
站长
· 阅读数 64

前言

LangChain 是一个用于开发由大型语言模型(Large Language Models,简称LLMs)驱动的应用程序的框架。

它提供了一个灵活的框架,使得开发者可以构建具有上下文感知能力和推理能力的应用程序,这些应用程序可以利用公司的数据和APIs。

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

这个框架由几个部分组成。

  • LangChain 库:Python 和 JavaScript 库。包含了各种组件的接口和集成,一个基本的运行时,用于将这些组件组合成链和代理,以及现成的链和代理的实现。
  • LangChain 模板:一系列易于部署的参考架构,用于各种任务。
  • LangServe:一个用于将 LangChain 链部署为 REST API 的库。
  • LangSmith:一个开发者平台,让你可以调试、测试、评估和监控基于任何 LLM 框架构建的链,并且与 LangChain 无缝集成。

LangChain本身并不开发LLMs,它的核心理念是为各种LLMs提供通用的接口,降低开发者的学习成本,方便开发者快速地开发复杂的LLMs应用。

这篇文章将在 Python 环境下使用 LangChain 框架,免费接入通用的大型语言模型,构建一个基础的 AI 聊天机器人。

废话不多说,直接进入正题。

LangChain 库

LangChain 框架的核心理念是将语言模型(如大型语言模型)与应用程序的其他部分无缝集成,以创建具有数据感知和自主性的智能应用程序。以下是 LangChain 的一些关键特点和组件:

  1. 数据感知:LangChain 允许开发者将语言模型连接到各种数据源,使其能够理解和处理来自这些源的信息。

  2. 自主性:通过 LangChain,语言模型可以与其环境交互,执行任务,如回答问题、执行命令或与用户进行交互。

  3. 组件化:LangChain 提供了一个抽象层,使得开发者可以轻松地使用语言模型,无论他们是否使用 LangChain 框架的其他部分。这些组件是模块化的,易于使用和集成。

  4. 现成的链:LangChain 提供了一系列结构化的组件集合,这些集合被称为“现成的链”,用于完成特定的高级任务。这使得开发者可以快速开始开发,而无需从头构建所有内容。

  5. 易于定制和扩展:由于组件化的特性,LangChain 使得定制现有链或构建新链变得容易,以适应更复杂的应用程序和特定的用例。

  6. 多种组件:LangChain 提供了多种组件,以支持不同的用例,包括但不限于:

    • 个人助理:创建能够执行任务和提供信息的虚拟助手。
    • 文档问答:开发能够理解和回答有关文档内容的问题的系统。
    • 聊天机器人:构建能够与用户进行自然对话的聊天机器人。
    • 查询表格数据:使应用程序能够查询和理解表格数据。
    • 与 API 交互:允许应用程序与外部 API 进行交互,以获取或发送数据。
    • 提取、评估和汇总:提供工具来提取信息、评估数据和汇总结果。

要使用 LangChain,开发人员需要导入必要的组件和工具,如语言模型(LLMs)、聊天模型(chat models)、代理(agents)、链(chains)和内存功能。这些组件可以组合起来创建一个能够理解、处理和响应用户输入的智能应用程序。

通过这种方式,LangChain 为开发人员提供了一个强大的平台,以构建和部署具有高级语言处理能力的应用程序。

安装langchain

pip install langchain==0.2.1  # 安装langchain
pip install langchain-community==0.2.1  # 安装第三方集成
pip install python-dotenv==1.0.1  # 使用 .env 文件来管理应用程序的配置和环境变量
pip install dashscope==1.19.2  # 安装灵积模型库

白嫖阿里云灵积模型服务

上周很多公司的大模型调用费用纷纷下调,而且一些活动给予的免费额度也是非常不错,以阿里为例:

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

这高低不得白嫖一番,不过海鸽之前已经开通,享受不到这波免费额度。

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

哭晕在厕所...

开通流程:搜索灵积模型服务,开通服务,生成阿里云灵积模型服务的apikey

  1. 访问DashScope管理控制台:前往控制台。

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

  1. 在控制台“总览”页下,点击“去开通”。

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

  1. 阅读服务协议,确认无误后点击“立即开通”。

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

  1. 进入产品控制台,创建api-key

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

创建聊天机器人

导入相关包

import os
from dotenv import find_dotenv, load_dotenv
from langchain_community.llms import Tongyi
from langchain_core.runnables import RunnableSequence
from langchain.prompts import PromptTemplate

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]

创建一个 .env 文件

文件内容为阿里控制台生成的 apikey

DASHSCOPE_API_KEY="sk-x9xxxxxxddxxxxxxxxxxx254e1xxxxx"

实例化 llm, 并赋予它一个角色

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

默认使用的模型(model_name)是qwen-plus,这里我改成qwen-turbo,当然你可以选择适合你自己的。

class QwenTurboTongyi(Tongyi):
    model_name = "qwen-turbo"


class QwenMaxTongyi(Tongyi):
    model_name = "qwen-max"


def xiao_hei_zi():
    llm = QwenTurboTongyi(temperature=1)
    template = '''
        你的名字是小黑子,当有人问问题的时候,你都会在回答的开头加上'唱,跳,rap,篮球!\n\n',然后再回答{question}, 内容尽量详细
    '''
    prompt = PromptTemplate(
        template=template,
        input_variables=["question"]
    )
    chain = RunnableSequence(prompt | llm)
    question = '蔡徐坤是谁?'
    res = chain.invoke({"question": question})
    print(res)

运行

LangChain入门:使用Python和通义千问打造免费的Qwen大模型聊天机器人

小结

这样,最简单的使用 LangChain 接入阿里通义千问大模型实现的聊天机器人算是初步完成,赶紧去白嫖吧。

最后

如果文章对你有帮助,在看关注走一波呗~

转载自:https://juejin.cn/post/7373162529818771475
评论
请登录