Langchain-chatchat学习(自用)

github传送门(0.3.x版本):chatchat-space/Langchain-Chatchat: Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain

gitee传送门 (0.2.x版本):主python

Langchain-Chatchat: 基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答,fork from github:https://github.com/chatchat-space/Langchain-Chatchat

BGE-large-zh-v1.5模型:

文本嵌入向量模型,解决多语言环境下的文本检索问题。核心原理是基于嵌入(Embedding)技术,将文本转换为高维向量表示。处理长达 8192 个 token 的输入

向量生成:

使用预训练的嵌入模型(例如,OpenAI 的 Ada 模型、BERT、BART 等)将文本转换为向量。在 NLP 中,常常使用向量来表示文本数据。将文本转换为向量后,可以使用数学距离(如欧几里得距离、余弦相似度等)来比较文本的相似性。具有相似含义的文本在向量空间中的距离较近。

FAISS向量库:

向量数据库 Faiss:搭建与使用_如何检验faiss数据库是否正常-优快云博客

文本预处理(分词-去除无关词)- 向量化文本(预训练语言模型)- 创建和索引向量(生成向量后使用FAISS创建索引)- 查询(使用索引相似向量)

LLM模型对话:

支持多种模型

ChatGLM3-6B模型:

基于大规模预训练Transformer架构的中文对话生成模型。它的设计主要用于提升与用户的自然语言交流能力,涉及了对话理解、生成和上下文维护等方面。

借助Langchain的模块化设计,ChatGLM3-6B可以与其他功能(如信息检索、知识库访问)结合使用,增强其在特定应用场景下的能力。

历史对话存储:

SQLAlchemy数据库模型ConversationModel存储历史对话,数据库操作函数将消息存储到数据库中。具体字段包括:(id:每个对话框的唯一标识符 - name:对话框的名称,用于识别或描述与此对话相关的内容 - chat_type:指示聊天的类型(例如是用户之间的聊天还是与聊天机器人代理之间的聊天)- create_time:记录创建此对话框的时间)

SQLAchemy模型:

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

历史对话管理:

Pydantic数据模型验证新消息:

在将新消息添加到历史记录之前,使用Pydantic数据模型进行验证,确保数据的一致性和有效性。

知识库:

知识库问答

FastAPI接口:

构建与用户的对话应用程序,管理对话历史,整合各种工具和数据源,以及调整模型参数以优化对话体验。。。。

访问Chatchat WEBUI Server查看接口信息,对应代码都可以在server文件夹下对应的python文件中找到

拓展:

基于Longchain-chatchat的AI智能课堂:

用户输入关键词,系统根据关键词检索文档,生成题目、选项以及正确答案

对kb_doc_api.py中的接口进行改写,接口接收关键字,返回生成的考题和答案,并将数据存储到数据库中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值