gitee传送门 (0.2.x版本):主python
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中的接口进行改写,接口接收关键字,返回生成的考题和答案,并将数据存储到数据库中