chatglm+langchain

news2024/11/23 22:08:55

目录

chatglm+langchain

1.1. 主要功能:

1.2. Langchain中提供的模块

1.3. Langchain应用场景

2.1. chatglm应用:

1.1. 基于单一文档问答的实现原理


chatglm+langchain

GitHub - imClumsyPanda/langchain-ChatGLM: langchain-ChatGLM, local knowledge based ChatGLM with langchain | 基于本地知识库的 ChatGLM 问答

  1. langchain介绍

Langchain是一个用于开发由语言模型驱动的应用程序的框架

1.1. 主要功能:

  • 调用语言模型
  • 将不同数据源接入到语言模型的交互中
  • 允许语言模型与运行环境交互

1.2. Langchain中提供的模块

  • Modules: 支持的模型类型和集成
  • Prompt:提示词管理、优化和序列化
  • Memory:内存是只在链/代理调用之间持续存在的状态。
  • Indexes:当语言模型与特定于应用程序的数据相结合时,会变得更加强大-此模型包含用于加载、查询、更新外部数据的接口和集成。
  • Chain:链是结构化的调用序列【对LLM或其他使用程序】
  • Agents:代理是一个链,其中LLM在给定高级指令和一组工具的情况下,反复决定操作,执行操作并观察结果,直到高级指令完成。
  • Callbacks:回调允许您记录和流式传输任何链的中间步骤,从而轻松观察、调试、评估应用程序的内部

1.3. Langchain应用场景

  • 文档问答:常见的Langchain用例。在特定文档上回答问题,仅利用这些文档中的信息来构建答案。
  • 个人助理:主要用例之一。个人助理采取行动,记住互动,并了解您的数据
  • 查询表格数据:使用语言模型查询表类型结构化数据【csv,SQL,DataFrame】
  • 与API交互:使用语言模型与API交互非常强大。它允许他们访问最新信息,并允许他们采取行动
  • 信息提取:从文本中提取结构化数据
  • 文档总结:压缩较长文档,一种数据增强生成。
  1. chatglm-6B简介

ChatGLM-6B 是⼀个开源的、⽀持中英双语的对话语⾔模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。

2.1. chatglm应用:

大语言模型通常基于通识知识训练,因此面向以下场景,常常需要借助模型微调提示词工程提升语言模型应用效果:

  • 垂直领域知识
  • 基于私有数据的问答

是什么

能干什么

微调

针对 预先训练的语言模型,在特定任务少量数据集上对其进一步训练

当任务或域定义明确,并且有足够的标记数据可供训练时,通常使用微调过程

提示词工程

涉及设计自然语言提示指令,可以指导语言模型执行特定任务

最适合需要高精度明确输出的任务。提示工程可用于制作引发所需输出的查询

  1. 如何实现基于本地知识的问答

知识库中有:QA对{'Langchain能够接入哪些数据类型啊?':'Langchain能够加载文本、PPT、图片、HTML、pdf等非结构化文件并转换为文本信息。'}
案例:
user_question:Langchain能够接入哪些数据类型啊?
agent_answer:Langchain能够加载文本、PPT、图片、HTML、pdf等非结构化文件并转换为文本信息。

1.1. 基于单一文档问答的实现原理

step1:加载本地文档【读取本地文档,加载为文本】
step2:文本拆分【按照字符如('。','!')、长度或语义拆分】,大语言模型有长度限制
step3:根据提问匹配文体【根据用户提问对文本进行字符匹配或语义检索】
step4:构建Prompt【将匹配文本、用户提问加入Prompt模板】
step5:LLM生成回答【将Prompt发送给LLM获取基于文档内容的回答】

 

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

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

相关文章

基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 在线考试管理系统的设计与实现

一.项目介绍 学生在线考试系统分为三类角色 超管、老师、学生 超级管理员:维护考试管理、提供管理、成绩查询、学生管理以及教师管理 老师:维护考试管理、提供管理、成绩查询以及学生管理 学生:我的试卷…

Linux入门介绍-CentOS和VMware虚拟机下载安装

Linux 学自尚硅谷武晟然老师,结合老师课堂内容和自己笔记所写博文。 文章目录 Linux入门篇Linux概述Linux vs WindowsLinux安装CentOS的版本选择和下载VMware下载VMware安装创建虚拟机安装CentOS 入门篇 Linux概述 Linux是一个操作系统,一切皆文件&…

SpringMVC 程序开发:为什么要学SpringMVC?如何学SpringMVC?

文章目录 🎇前言1.MVC1.1 MVC 的定义1.2 MVC 与 Spring MVC的关系 2.为嘛要学Spring MVC?3.如何学习 Spring MVC?3.1 Spring MVC 创建和连接3.1.1 RequestMapping 注解介绍3.1.2 使用RequestMapping的参数修改请求方法3.1.3 GetMapping 和 Po…

C中的open函数,write函数,read函数

1.创建新文件并保存数据。 #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> void error_handling(char * message);int main(void) {int fd;char buf[]"Lets go!\n";fdopen("data.txt",O_CREAT…

Java实现邮箱验证码

目录&#xff1a; 前言 一、POM依赖 二、获取验证码 三、配置文件 四、业务代码 1.service接口 2.service实现类 3.相关工具类Util 4.查询Redis数据库 5.接收邮件 前言 邮箱验证码是一个常见的功能&#xff0c;常用于邮箱绑定、修改密码等操作上&#xff0c;本篇博客只要…

vue-i18n 实现国际化,支持切换不同语言

需求&#xff1a;后台管理系统&#xff0c;可以实现语言切换 实现过程&#xff1a;用的i18n来实现的语言切换&#xff0c;网上能看到好多模板&#xff0c;根据自己的需求&#xff0c;修改一下即可使用&#xff0c;大概都是差不多的&#xff0c;因为涉及到后端&#xff0c;所以…

如何在 javascript 中交换数组元素

文章目录 在 JavaScript 中使用临时变量交换数组元素使用 ES6 析构函数赋值在 JavaScript 中交换数组元素使用按位异或和数组迭代在 JavaScript 中交换数组元素 交换两个元素的传统方法是使用临时变量。 在 JavaScript 中&#xff0c;我们可以轻松地将数组对象重新分配给默认设…

实验一(7 3)

实验分析&#xff1a; 1.使用合理IP地址规划网络&#xff0c;各自创建环回接口&#xff0c;R1-R2-R3-R4-R5 RIP 100运行版本2&#xff0c;R6-R7 RIP 200 运行版本1 方法&#xff1a;要使得两个不同rip版本互通&#xff0c;需要在r4连通r6&#xff08;或r6连通r4&#xff09;的…

android 如何分析应用的内存(十)——malloc统计和libmemunreachable

android 如何分析应用的内存&#xff08;十&#xff09; 接下来介绍native heap内存的第四个板块————malloc统计和libmemunreachable malloc统计 malloc统计是标准c库提供的接口。他有两个调用接口如下&#xff1a; #include <malloc.h>struct mallinfo mallinfo…

敏捷开发Scrum

目录 1 Scrum概览1.2 理论基础1.2.1 透明性&#xff08;Transparency&#xff09;1.2.2 检验&#xff08;Inspection&#xff09;1.2.3 适应&#xff08;Adaptation&#xff09; 2 三个角色2.1 产品负责人&#xff08;Product Owner&#xff09;2.1.1 职责2.1.2 人选 2.2 流程管…

JDK多版本管理工具jenv

JENV mac jdk版本管理工具 Mac 安装jenv可以使用brew brew install jenv配置jenv zsh配置方式&#xff1a; echo export PATH"$HOME/.jenv/bin:$PATH" >> ~/.zshrc echo eval "$(jenv init -)" >> ~/.zshrcbash配置方式&#xff1a; ech…

海上明月共潮生【InsCode Stable Diffusion 美图活动一期】

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 购买 右下角点击 Stable Diffusion WebUI 进入工作界面 二、模型相关版本和参数配置&#xff1a; 模型&#xff1a;chilloutmix_NiPrunerdFp32Fix.safetensors…

解决Python的SyntaxError: Non-UTF-8 code starting with ‘\xbb‘问题

文章目录 一、报错二、分析三、解决3.1 方法一3.2 方法二3.3 方法三 一、报错 在程序中&#xff0c;line 8为含有中文的注释&#xff0c;编译后出现了SyntaxError: Non-UTF-8 code starting with \xbb的报错&#xff0c;具体如下图。 二、分析 这个错误是由于Python解释器无…

教你如何快速批量添加滚动文字水印

在视频中添加滚动的文字水印可以增加视频的专业感和吸引力&#xff0c;但手动给大量视频添加滚动文字水印是一项费时费力的任务。下面是一个快速批量给大量视频添加滚动文字水印的方法&#xff0c;有需要的小伙伴们可以进来学习一下&#xff01; 今天分享的方法会使用到一个剪辑…

IDEA 中 gradle面板显示重复工程

使用 IDEA 构建多模块工程时&#xff0c;每新建一个模块&#xff0c;gradle 构建后&#xff0c;面板上就会出现一个重复的根工程&#xff0c;如下图红框部分&#xff0c;怎么处理下

ASIC数字设计:前端设计、验证、后端实现

前端设计 数字系统设计中有三个重要的设计级别概念&#xff1a;行为级&#xff08;Behavior Level&#xff09;、寄存器传输级&#xff08;Register Transfer Level&#xff09;和门级&#xff08;Gate level&#xff09;。其中&#xff0c; 行为级通过行为级算法描述数字系统&…

zabbix 报警测试报错

一、报错描述 在测试报警媒介时&#xff0c;报错如下: main.py脚本是在windows上的pycharm上编写的&#xff0c;在windows上运行没有问题&#xff0c;放在linux服务器上使用python3 main.py 运行也没有问题&#xff0c;但是使用./main.py执行就报错 [rootp0-tkhijbs-broadco-…

十、Docker虚悬镜像

学习参考&#xff1a;尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、介绍二、如何产生的&#xff1f;三、尝试弄一个三、查看、删除虚悬镜像3.1 查看虚悬镜像3.2 删除虚悬镜像 总结 前言 什么是虚悬镜像&#xff1f; 一、介绍 虚悬…

【LEAP模型】能源供应转换、需求及碳排放预测、平衡表核算、模型框架构建、操作、情景设计、结果分析、优化、预测结果不确定性分析等

模型简介&#xff1a; 中文名&#xff1a;LEAP模型 外文名&#xff1a;Long Range Energy Alternatives Planning System/ Low emission analysis platform LEAP模型[1]允许研究者根据研究目的、数据可获取度、研究对象特点等灵活构建模型结构&#xff0c;十分适用于能源数据…

如何修改Jupyter Notebook的默认目录和默认浏览器

一、修改默认目录 Jupyter Notebook的文件默认保存目录是C:\Users\Administrator&#xff0c;默认目录可在黑窗口中查看&#xff0c;如下图所示&#xff1a; 为了方便文档的管理&#xff0c;可将默认目录修改成自己想保存的地方。修改方法如下&#xff1a; 1、找到config文件 …