LangChain进阶技巧:提高聊天机器人性能的策略[第三课]

news2024/10/1 5:21:08

LangChain应运而生,为开发者们提供了一种高效、便捷的工具,助力他们构建出功能强大的大型语言模型应用。本文将带您走进LangChain的世界,揭秘其背后的技术原理,探讨如何利用这一利器来拓展语言模型的无限可能。通过丰富的实例分析和实战教程,让您从入门到精通,轻松掌握LangChain的核心技能,为您的AI项目插上翅膀,迈向成功的彼岸。
在这里插入图片描述

安装智谱清言和langchain_community:

pip install langchain langchain_community
pip install --upgrade httpx httpx-sse PyJWT

提示用户输入智谱请言的KEY(去官网申请):

import os
import getpass
if "ZHIPUAI_API_KEY" not in os.environ or not os.environ["ZHIPUAI_API_KEY"]:
    # 使用getpass安全地提示用户输入
    api_key = getpass.getpass(prompt='Enter your API key: ')
    os.environ["ZHIPUAI_API_KEY"] = api_key

调用智谱清言的模型ChatZhipuAI

from langchain_community.chat_models import ChatZhipuAI
from langchain_openai import ChatOpenAI

model = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)
from langchain_core.messages import HumanMessage
respon = model.invoke([HumanMessage(content="Hi! 我是Bob")])
print(respon)

输出AIMessage对象:

AIMessage(content=‘你好,Bob!有什么我可以帮助你的吗?’, additional_kwargs={}, response_metadata={‘token_usage’: {‘completion_tokens’: 12, ‘prompt_tokens’: 9, ‘total_tokens’: 21}, ‘model_name’: ‘glm-4’, ‘finish_reason’: ‘stop’}, id=‘run-7867a109-53f4-4129-931e-e3d85b77a486-0’)

“model.invoke”的作用

“model.invoke”是一个函数调用,它通常用于触发模型的特定功能。在人工智能对话系统中,这个调用可以是向模型发送一个请求,然后模型会根据请求的内容返回相应的回答。这个过程就像是用户与智能助手之间的对话,用户提出问题,智能助手给出回答。

根据提供的AIMessage对象信息,下面是对各字段的解析说明:

  • content: 这是消息的主要内容,即AI模型生成的文本回复。在这个例子中,AI模型回复了一条问候消息:“你好,Bob!有什么我可以帮助你的吗?”
  • additional_kwargs: 这是一个字典,用于存储额外的参数,这些参数可能会在生成消息时被使用。在这个例子中,additional_kwargs是空的,这意味着没有额外的参数被传递或使用。
  • response_metadata: 这个字段包含了关于消息生成的元数据,它是一个字典,包含了以下几个键:
    • token_usage: 描述了生成消息时使用的令牌数量。它包含以下子键:
      • completion_tokens: 完成令牌的数量,即用于生成最终回复的令牌数量。在这个例子中,使用了12个完成令牌。
      • prompt_tokens: 提示令牌的数量,即输入到模型中的令牌数量。在这个例子中,使用了9个提示令牌。
      • total_tokens: 总令牌数量,即完成令牌和提示令牌的总和。在这个例子中,总共使用了21个令牌。
    • model_name: 表示生成消息所使用的AI模型的名称。在这个例子中,模型名称是"glm-4"。
    • finish_reason: 描述了生成过程结束的原因。在这个例子中,finish_reason是"stop",这意味着生成过程是因为达到了某种停止条件(例如生成了足够数量的令牌或遇到了特定的结束标记)而停止的。
  • id: 这是一个唯一的消息标识符,用于区分不同的消息实例。在这个例子中,消息的ID是"run-7867a109-53f4-4129-931e-e3d85b77a486-0"。
    综上所述,这个AIMessage对象代表了一条由"glm-4"模型生成的问候消息,该消息使用了21个令牌,其中包括12个完成令牌和9个提示令牌,并且生成过程是因为达到了停止条件而结束的。

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

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

相关文章

数据订阅与消费中间件Canal 服务搭建(docker)

MySQL Bin-log开启 进入mysql容器 docker exec -it mysql5.7 bash开启mysql的binlog cd /etc/mysql/mysql.conf.dvi mysqld.cnf #在文件末尾处添加如下配置(如果没有这个文件就创建一个) [mysqld] # 开启 binlog log-binmysql-bin #log-bin/var/lib/mys…

宿州儿童自闭症寄宿制学校:培养孩子独立能力的专业机构

在探索自闭症儿童教育的广阔领域里,宿州儿童自闭症寄宿制学校以其专业的教育模式和显著的成效,为众多家庭带来了希望。然而,当我们把目光投向中国南方的繁华都市——广州,会发现另一所同样在自闭症儿童教育领域深耕多年、成果显著…

P3397 地毯 Python题解

地毯 题目描述 在 n n n\times n nn 的格子上有 m m m 个地毯。 给出这些地毯的信息,问每个点被多少个地毯覆盖。 输入格式 第一行,两个正整数 n , m n,m n,m。意义如题所述。 接下来 m m m 行,每行两个坐标 ( x 1 , y 1 ) (x_1,…

在矩池云使用 Llama-3.2-11B-Vision 详细指南

Llama 3.2-Vision是Meta开发的一系列多模态大型语言模型(LLMs),包含11B和90B两种规模的预训练和指令调整模型。 这些模型专门优化用于视觉识别、图像推理、字幕生成和回答有关图像的一般问题。Llama 3.2-Vision模型在常见行业基准测试中的表…

docker下载mysql时出现Unable to pull mysql:latest (HTTP code 500) server error 问题

报错 Unable to pull mysql:latest (HTTP code 500) server error - Get “https://registry-1.docker.io/v2/”: EOF 解决方法 将VPN开到Global模式 解决啦

C# 解决Excel边框样式无法复制问题及实现格式刷功能

目录 问题现象 范例运行环境 解决方案 剪贴板加特殊粘贴 自定义样式 直接赋值 完美方案 小结 问题现象 在运行数据表数据导出到 EXCEL 数据输出时遇到了一个问题&#xff0c;开发者设计了单行细线下边框的输出模板&#xff0c;如下图设计&#xff1a; 其中 <%syst…

机器学习篇-day02-KNN算法实现鸢尾花模型和手写数字识别模型

一. KNN简介 KNN思想 K-近邻算法&#xff08;K Nearest Neighbor&#xff0c;简称KNN&#xff09;。比如&#xff1a;根据你的“邻居”来推断出你的类别 KNN算法思想&#xff1a;如果一个样本在特征空间中的k 个最相似的样本中的大多数属于某一个类别&#xff0c;则该样本也属…

sentinelhub3.7相比3.4的版本主要变化

sentinelhub3.7相比3.4的版本&#xff0c;主要变化包括: 1. 增加对sentinel 基线04.00数据产品的支持&#xff1b; 2. 将aws数据下载模块独立出来 3.4版本 3.7版本 3. 原来的DataSource改为DataCollection 3.7版本不再支持DataSource 3.4版本中的DataSource 3.7版本使用Data…

鸿蒙NEXT入门到实战(基于最新api12稳定版)

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

音频信号处理学习

来源B站&#xff0c;但是代码微改&#xff0c;更好理解。 B站网址&#xff1a;https://www.bilibili.com/video/BV1vT411m7yc/?spm_id_from333.788&vd_sourcec105ef445d9ba79ff025b5ba5869ce2b import mathimport librosa import numpy as np import matplotlib.pyplot a…

【floor报错注入】

一、sql语句基础 floor 向下取整 count 取数据的数量 group by 分组查询 Rand 随机数 limit 二、floor报错注入 主键重复报错 我们先了解group by产生的虚拟表的原理&#xff0c;了解到虚拟表的主键是不可以重复的 我们再可以通过Rand(0)函数规定固定种子后乘2&…

Jmeter常用函数、逻辑控制器

目录 一、Jmeter常用函数 counter函数 machineName函数 machineIP函数 Random函数 RandomString函数 RandomDate函数 time函数 二、逻辑控制器 IF控制器 循环控制器 foreach控制器 仅一次控制器 事务控制器 聚合报告 随机控制器 随机顺序控制器 一、Jmeter常用…

Webpack 打包后文件过大,如何优化?

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介Webpack 打包后文件过大&#xff0c;如何优化&#xff1f;1. 代码分割&#xff08;Code Splitting&#xff09;1.1 概念1.2 Webpack 的 SplitChunksPlugin示例配置&#xff1a; 1.3 按需加载&#xff08;Lazy Loading&#xff09;示…

位运算(1)_常见位运算总结

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 位运算(1)_常见位运算总结 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 基…

综合练习 学习案例

//验证码 前四位是字母 最后一位是数字 public class test1 {public static void main(String[] args){char [] charsnew char[52];for (int i 0; i <chars.length ; i) {if(i<25){chars[i](char)(i97);}else{chars[i](char)(i65-26);}}Random rnew Random();String cod…

虚商目前有哪些业务痛点?

虚拟运营商当前面临的业务痛点主要集中在市场竞争、运营成本、技术依赖、用户体验及政策监管等方面。 一、市场竞争激烈 1、竞争者数量增加: 随着市场准入门槛的降低&#xff0c;越来越多的企业进入虚拟运营商市场导致市场竟争日益激烈。为了争夺市场份额&#xff0c;企业不得不…

高校体育场小程序|高校体育场管理系统系统|体育场管理系统小程序设计与实现(源码+数据库+文档)

高校体育场管理系统小程序 目录 体育场管理系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道…

量化必备!股票常用数据批量下载、定时更新,代码打包好了!

上一节课我详细演示了从tushare获取股票列表和基本信息并且配置定时更新任务的详细流程&#xff0c;旨在教会想要学习通过Python获取股票数据并且定期更新的朋友。 不过有很多朋友完全没有Python基础&#xff0c;如果一开始把大量时间花费在搞数据上&#xff0c;本末倒置不说&…

学MybatisPlus

1.设置MySql的数据库 spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mp?useUnicodetrue&characterEncodingUTF-8&autoReconnecttrue&serverTimezoneAsia/Shanghaidriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: MySQL123 logging:l…

GIT安装及集成到IDEA中操作步骤

最近深感GIT使用技能太差&#xff0c;我只会些皮毛&#xff0c;还是得看官网&#xff0c;总结一下常用的操作方法吧。 GIT环境配置到IDEA中安装 一、GIt的基本的安装 这个不在这里赘述了&#xff0c;自己装一个git吧 二、给IDEA指定本地GIT的安装路径 1、下图这个是我本地的…