探索Langchain与国内智谱清言:构建先进的智能对话系统[第二课]

news2024/9/29 12:36:51

在当今的人工智能领域,构建一个能够流畅对话的智能系统是许多企业和开发者的目标。Langchain和国内智谱清言(BigModel)提供了强大的工具和API,使得这一目标变得更加容易实现。
在这里插入图片描述

语言模型的力量

语言模型是智能对话系统的核心,它负责理解用户的输入并生成合适的响应。Langchain提供了一个易于使用的接口来访问这些模型,而国内智谱清言则提供了强大的语言处理能力,如glm-4-air模型,这些都是构建智能对话系统的关键组件。

语言模型(Language Model)的实例化

在构建智能对话系统时,实例化语言模型是一个关键步骤。以下是如何实例化一个基于OpenAI技术的聊天模型的示例。由于国外的模型被墙,下面讲解使用的国内智谱清言的glm-4-air模型做为示例 。

安装国内智谱清言Langchain SDK

首先需要安装 Langchain 和 对应的依赖包,请确保 langchain_community 的版本在 0.0.32 以上。

pip install langchain langchainhub httpx_sse
1. 配置和实例化 ChatOpenAI

首先,我们需要从配置文件中获取API密钥,然后使用这些密钥来实例化语言模型。这里使用的是ChatOpenAI类,它可能是一个封装了OpenAI API的类,用于与语言模型进行交互。

from langchain_openai import ChatOpenAI

class MyChatSystem:
    def __init__(self, config):
        self.config = config
        self.llm = self.initialize_language_model()

    def initialize_language_model(self):
        # 从配置文件中获取API密钥
        api_key = config.get('chatgpt', 'zhipu_apikey') #config是假想的一个函数,用于取ini文件一个节点值.

        # 实例化ChatOpenAI
        llm = ChatOpenAI(
            temperature=0.9,
            model="glm-4-air",
            openai_api_key=api_key,
            openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
        )
        return llm
参数解释
  • temperature: 控制生成文本的创新程度。值越高,生成的文本越多样化和不可预测。
  • model: 使用的语言模型的名称或标识符。
  • openai_api_key: 用于访问智谱清言申请到OpenAI API的密钥。
  • openai_api_base: OpenAI API的基础URL。

2. 输出解析器(Output Parser)

输出解析器是对话系统中的另一个重要组件,它负责解析语言模型生成的输出,并将其转换成可用的格式。在许多情况下,语言模型生成的输出是原始文本,但有时候我们需要将这些文本转换成特定的数据结构或者执行特定的逻辑。

StrOutputParser 是一个简单的输出解析器,它将模型的输出解析为字符串。这种解析器适用于需要将对话系统的响应以文本形式返回给用户的场景。

整合语言模型和输出解析器

在实际应用中,我们需要将语言模型和输出解析器整合到对话系统中。以下是一个简单的示例,展示如何使用这两个组件:

# 导入必要的库
from langchain_openai import ChatOpenAI2
from langchain_core.output_parsers import StrOutputParser

# 创建语言模型实例
 # 从配置文件中获取API密钥
api_key = config.get('chatgpt', 'zhipu_apikey') #config是假想的一个函数,用于取ini文件一个节点值.

# 实例化ChatOpenAI
chat_model  = ChatOpenAI(
    temperature=0.9,
    model="glm-4-air",
    openai_api_key=api_key,
    openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)
        
# 创建输出解析器实例
parser = StrOutputParser()

# 用户输入
user_input = "你好,今天天气怎么样?"

# 使用语言模型生成响应
model_output = chat_model.generate_response(user_input)

# 使用输出解析器解析模型输出
parsed_output = parser.parse(model_output)

# 打印解析后的输出
print(parsed_output)

在这个示例中,我们首先创建了语言模型和输出解析器的实例。然后,我们模拟了一个用户输入,并使用语言模型生成响应。最后,我们使用输出解析器将模型的输出解析为字符串,并打印出来。

为什么这两个组件很重要?

  • 用户体验:语言模型负责理解和生成自然语言,这对于提供流畅的用户体验至关重要。
  • 灵活性:输出解析器提供了将模型输出转换成不同格式的能力,使得对话系统可以更容易地集成到各种应用中。

结论

语言模型和输出解析器是构建智能对话系统的关键。通过合理选择和整合这两个组件,我们可以创建出能够理解和响应用户输入的智能系统。随着AI技术的发展,这些工具将变得越来越强大,为用户带来更好的交互体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2176711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git分支-创建、合并、删除

Git会将每次提交串成一条时间线,这条时间线就是一个分支。在最初,只有一个master分支 在目录下创建项目 对目录进行输入 项目被修改 创建dev分支 合并分支 删除dev分支

maven项目自动reload依赖库设置

修改后,自动reload 不需要点加载按钮了。

牛客SQL练习详解 04:多表查询

牛客SQL练习详解 04:多表查询 1、子查询sql21 浙江大学用户题目回答情况 2、链接查询sql22 统计每个学校的答过题的用户的平均答题数sql23 统计每个学校各难度的用户平均刷题数sql24 统计每个用户的平均刷题数 3、组合查询sql25 查找山东大学或者性别为男生的信息 叮…

大数据新视界 --大数据大厂之Cassandra 分布式数据库在大数据中的应用与调优

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

常用激活函数总结

文章目录 什么是激活函数激活函数的作用常用激活函数1.Sigmoid函数2.Softmax函数3.Tanh函数4.Relu函数5.LeakyRelu函数6.PRelu函数7.ELU函数8.SELU函数 什么是激活函数 激活函数,通俗讲,就是一个函数,针对某个神经元,就是将输入经…

AI读教链《关于美国、中国和BTC的三个超级变量​》

这篇文章探讨了美国、中国及比特币(BTC)当前经济形势中的三个超级变量,强调了对经济状况的重新审视。 美国经济与衰退:尽管有观点认为美国经济正在衰退,文章指出这取决于如何定义衰退。美股市场的市盈率处于高位&#…

KQM6600空气质量传感器

KQM6600空气质量传感器 目录 KQM6600空气质量传感器 查找资料 编程 1、初始化(时钟、IO、外设、中断、其他) 2、中断服务函数 3、数据解析函数 kqm6600.h 硬件连接 安装ST-LINK驱动 实验结果 查找资料 找相应的资料,看资料 1、…

百度智能体创建:情感领域的创新力量

《百度智能体:情感领域的创新力量》 一、百度智能体:开启智能新征程 百度智能体,准确叫法为百度文心智能体。它是由百度推出的基于文心大模型的智能体平台。2023 年 9 月 1 日,平台的前身 “灵境矩阵” 上线并开始内测&#xff0c…

变幅液压系统比例阀放大器

变幅液压系统是用于控制起重机或类似设备臂架角度变化的关键系统,它通过调节液压缸的伸缩来实现臂架的升降和变幅。以下是一些关于变幅液压系统的基本原理、组成和应用领域的信息: 基本原理:变幅液压系统通常由液压泵、液压缸、液压马达、控制…

【BMS】BJB MC33772 电流测量

一、硬件准备 1、主控板子:S32K312 板子 2、BJB 板子:MC33772 BJB 板子 3、硬件连接: 两个板子独立 12V 供电,外部电流接线流经分流器 Shunt ,分流器方向从下往上流向得到正值数据。 4、BJB 测量电流电路注意事项 ① 板子上预…

【python】如何切换ipynb的kernel至指定conda环境

需求介绍 打开(若无新建环境) 环境 conda env list conda activate cvml conda install ipykernel python -m ipykernel install --name cvml 以上完成后,打开jupyter 创建一个python文件 在kernel——>change kernel——>python[conda env:cvml] 参考资料…

第167天:应急响应-日志自动提取分析项目_ELK_Logkit_LogonTracer_Anolog等

目录 案例一: 日志自动提取-七牛Logkit&观星应急工具 Logkit 观星 案例二:日志自动分析-Web-360 星图&Goaccess&ALB&Anolog 360 星图 GoAccess ALB Anolog f8x 案例一: 日志自动提取-七牛Logkit&观星应急工具 …

前端框架:选择的艺术

一、简介 在现代 web 开发中,前端框架扮演着至关重要的角色。 首先,它们极大地提升了开发效率。以 React、Vue 和 Angular 为例,这些框架采用组件化的开发模式,允许开发者将页面拆分成独立的、可复用的组件。例如,在一…

ESXi 5.5 系统克隆到SD卡或USB磁盘上

对于如何将安装在本地磁盘上的ESXi系统克隆到SD卡或USB磁盘上,以便快速实现ESXi主机的VSAN-Ready状态。正好猫猫也有点兴趣,所以,就研究了下这个方式,大致的工作思路就是“先通过dd命令将ESXi系统克隆到VMFS Datastore成为一个文件…

一起发现CMake太美-02-CMake是什么CMake的运行原理

本系列课程的主要内容包括: 点击本课程的 链接 可以进入视频课程的学习。 下面介绍本系列课程的第二课的主要内容,本节课从CMake是什么,能做什么,以及CMake的远亲近邻入手,让大家对CMake有一个大致的了解。 1. CMak…

汽车线束之故障诊断方案-TDR测试

当前,在汽车布局中的线束的性能要求越来越高。无法通过简单的通断测试就能满足性能传输要求。早起对智能化要求不高,比如没有激动雷达、高清摄像、中央CPU等。 近几年的智能驾驶对网络传输要求越来越高,不但是高速率,还需要高稳定…

ACM第三次考核题解

ACM第三次考核题解 题目序号难度题目编号题目考察知识点1签到题A这是一道很难的题!!!输出2迷之难度F神说要有光,于是有了手电筒贪心3简单BThis is a real English problem!思维 英语4简单C玩具简单排序5简单I“近义词…

物联网系统中基于IIC通信的数字温度传感器测温方案

01 物联网系统中为什么要使用数字式温度传感器芯片 物联网系统中使用数字式温度传感器芯片的原因主要有以下几点: 高精度与稳定性 高精度测量:数字式温度传感器芯片,如DS18B20,采用芯片集成技术,能够有效抑制外界不…

MISC - 第八天(gnuplot绘图工具,核心价值观编码,outguess隐写工具,ntfs流)

前言 各位师傅大家好,我是qmx_07,今天给大家继续讲解MISC的相关知识 梅花香之苦寒来 附件信息: 附件是一张图片,放到hxd检索相关信息 发现有一段十六进制文本 https://gchq.github.io/CyberChef/ 这个网站拥有丰富的编码和解码内容…

matlab中在一个图上持续画多条曲线的方法

在数据分析的过程中,会遇到一种情况,就是想对多组数据进行分析,这时就想把他们放在同一张图里,来看他们表现出来的特征。如下图所示: 例如,我这里有几组数据,想对他们的整体趋势进行分析。 1、…