当前位置: 首页 > news >正文

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

img

LangChain 是一个开发由语言模型驱动的应用程序的框架,除了和应用程序通过 API 调用, 还会:

  • 数据感知 : 将语言模型连接到其他数据源

  • 具有代理性质 : 允许语言模型与其环境交互

LLM大模型相关文章:

GPT实战系列-简单聊聊LangChain

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-大话LLM大模型训练

GPT实战系列-探究GPT等大模型的文本生成

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF

LangChain是什么?

 

构建本地的行业、专家知识库,就需要LangChain 支持常见角色和用途。

  • 个人助理(personal assistants) : 主要的 LangChain 使用用例。个人助理需要采取行动、记住交互并具有您的有关数据的知识。

  • 问答(question answering) : 第二个重大的 LangChain 使用用例。仅利用一些文档中的信息来构建答案,回答特定文档中的问题。

除LangChain外,还需要什么?

首先需要把文本转换为文本向量,即自然语言处理常常要用的Embedding技术,Text2Vector。

常见的Embedding接口有 OpenAI,Sentence Transformers,BGE, Huggingface,ModelScope,TensorFlowHub

例如,OpenAI提供接口,需要翻墙:

from langchain.embeddings import OpenAIEmbeddings
​
embeddings = OpenAIEmbeddings()

SentenceTransformer的接口:

from langchain.embeddings import HuggingFaceEmbeddings, SentenceTransformerEmbeddings
​
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
# Equivalent to SentenceTransformerEmbeddings(model_name="all-MiniLM-L6-v2")

Huggingface接口,直接下载需要翻墙。

没有梯子怎么办?如有需要可以单独写篇。

from langchain.embeddings import HuggingFaceEmbeddings
​
embeddings = HuggingFaceEmbeddings()

ModelScope,非常适合国内,不用翻墙。

from langchain.embeddings import ModelScopeEmbeddings
​
model_id = "damo/nlp_corom_sentence-embedding_english-base"
​
embeddings = ModelScopeEmbeddings(model_id=model_id)

Tensorflow hub,需要安装tensorflow组件。现在用pytorch,就很少使用tensorflow。

from langchain.embeddings import TensorflowHubEmbeddings
​
embeddings = TensorflowHubEmbeddings()
​

One more thing

文本向量直接比较就不足以推广,还需要加上向量数据库。

向量数据库也有很多,选几个熟悉的,比如FAISS,Chroma,Milvus,Redis,Deep Lake等等。

例如 FAISS

from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import FAISS
from langchain.document_loaders import TextLoader
​
from langchain.document_loaders import TextLoader
​
loader = TextLoader("../../../state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
​
embeddings = OpenAIEmbeddings()
​
db = FAISS.from_documents(docs, embeddings)
​

后面基于LangChain做一些好玩的本地专家库测试吧。

觉得有用 收藏 收藏 收藏

点个赞 点个赞 点个赞

End

 


GPT专栏文章:

GPT实战系列-简单聊聊LangChain

GPT实战系列-ChatGLM3本地部署CUDA11+1080Ti+显卡24G实战方案

GPT实战系列-LangChain + ChatGLM3构建天气查询助手

大模型查询工具助手之股票免费查询接口

GPT实战系列-简单聊聊LangChain

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(二)

GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)

GPT实战系列-ChatGLM2模型的微调训练参数解读

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-Baichuan2本地化部署实战方案

GPT实战系列-Baichuan2等大模型的计算精度与量化

GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF 

GPT实战系列-探究GPT等大模型的文本生成-CSDN博客

http://www.lryc.cn/news/280593.html

相关文章:

  • [NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
  • opencv多张图片实现全景拼接
  • 深入理解UML中的继承关系
  • CMU15-445-Spring-2023-Project #2 - B+Tree
  • matplotlib:热图、箱形图、小提琴图、堆叠面积图、雷达图、子图
  • Django数据库选移的preserve_default=False是什么意思?
  • 逸学Docker【java工程师基础】2.Docker镜像容器基本操作+安装MySQL镜像运行
  • 基于Java SSM框架实现医院管理系统项目【项目源码】计算机毕业设计
  • 【java八股文】之Spring系列篇
  • 关于MySQL源码的学习 这里是一些建议
  • Mysql是怎样运行的--下
  • yum来安装php727
  • 基于jackson封装的json字符串与javaBean对象转换工具
  • js中的数据类型
  • vue3+vant+cropper.js实现移动端图片裁剪功能
  • springCould中的Bus-从小白开始【11】
  • xshell和xftp
  • python for...else用法,一个实例就能让你明白
  • windows 设置ip命令bat脚本
  • Openharmony 对应Android内存查看
  • R语言【paleobioDB】——pbdb_interval():通过ID选择,返回一个地层年代段的基本信息
  • spring boot mybatis plus mapper如何自动注册到spring bean容器
  • What is `@PathVariable` does?
  • 如何利用小程序介绍公司品牌形象?
  • [C#]使用sdcb.paddleocr部署v4版本ocr识别模型
  • Echarts图表如何利用formatter自定义tooltip的内容和样式
  • Ceph源码分析-s->req_id = store->svc()->zone_utils->unique_id(req->id)
  • Unity中的异步编程【7】——在一个异步方法里播放了animation动画,取消任务时,如何停止动画播放
  • vue3中ref和reactive联系与区别以及如何选择
  • 面试宝典之spring框架常见面试题