基于ChatGLM3-6b的智能对话系统,集成了RAG、知识图谱、Agent、多模态等技术来增强大模型的回复质量。
Python
69
16 commits
updated Aug 12, 2024
这是一个基于 chatglm3-6b 模型的汽车知识问答系统,集成了 RAG模块、多模态处理、Agent、知识图谱等技术,以提高大模型的回答质量和系统的智能性。系统支持文本和图片输入,能够提供详细的汽车相关信息。
配置文件:请确保在 config.json 中配置了正确的模型路径及参数。配置文件的详细说明见下节“各模块细节信息”。
安装环境依赖:在 Linux 命令行中运行以下命令来安装所需的 Python 包:
pip install -r requirements.txt
python app.py
文件:vectorize_and_index.py
模块功能:该模块负责读取 PDF 文件内容,使用指定的嵌入模型将文本进行分割和编码,并将编码结果存储为 FAISS 索引。RAG 模块将利用这些索引与用户输入进行匹配,从而获取相关的补充信息。可以通过调整 config['chunk_size'] 参数来改变文本块的大小,以保证上下文的完整性。
embedding模型:sentence-transformers/all-MiniLM-L6-v2
config 参数:
config['embedding_model_path']:本地向量库编码模型文件路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['vector_vectors_path']:FAISS 向量数据文件路径。config['text_mapping_path']:文本块与索引映射关系文件路径。config['rag_data_path']:本地知识库文档路径。config['chunk_size']:本地文档切分块的大小。文件:agent_module.py
模块功能:初始化系统中的各个模块,并处理用户查询。
LLM:THUDM/chatglm3-6b
config参数:
config['elasticsearch_host']:Elasticsearch 服务器地址。config['llm_path']:chatglm3-6b 模型和分词器的路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['vector_vectors_path']:FAISS 向量数据文件路径。config['summary_model_path']:mt5 摘要模型和分词器的路径。config['intent_model_path']:用户意图识别模型文件路径。config['ner_model_path']:实体命名识别模型文件路径。文件:rag_module.py.py
模块功能:加载 BLIP 模型,将图像文件转换为文本描述,支持系统对图像内容的理解和处理。
BLIP模型:Salesforce/blip-image-captioning-large
config参数:
config['blip_model_path']:BLIP模型的本地路径。文件:multimodal_module.py
模块功能:首先加载 FAISS 索引和嵌入模型(应与构建本地知识库时使用的模型一致),对输入的查询文本进行向量编码,并从本地向量库中进行初步匹配,得到初步召回的文档。之后使用通过 bi encoder 模型在初步召回的文本中进一步筛选,高级召回的文档。然后,使用 corss encoder 模型对高级找回的文档块进行重排序,得到最相关的文档内容作为 RAG 的补充结果。
embedding模型:sentence-transformers/all-MiniLM-L6-v2
bi encoder 模型:FacebookAI/roberta-base
corss encoder 模型:cross-encoder/ms-marco-TinyBERT-L-2-v2
config参数:
config['embedding_model_path']:编码模型的本地路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['text_mapping_path']:文本块与索引的映射关系文件路径。config['roberta-base_path']:bi encoder 模型文件路径。config['cross-encoder_path']:corss encoder 模型文件路径。文件:knowledge_graph.py
模块功能:通过提取上下文中的关键词并在维基百科上进行搜索来增强上下文信息。流程如下:
bert模型:huawei-noah/TinyBERT_General_4L_312D
config参数:
config['tiny_bert_model_path']:BERT 模型和分词器的本地路径。config['knowledge_graph_search_number']:在维基百科上进行搜索时返回的结果数量。16 commits
Python
86.9%
JavaScript
8.7%
CSS
2.7%
HTML
1.7%
基于ChatGLM3-6b的智能对话系统,集成了RAG、知识图谱、Agent、多模态等技术来增强大模型的回复质量。
Python
69
16 commits
updated Aug 12, 2024
这是一个基于 chatglm3-6b 模型的汽车知识问答系统,集成了 RAG模块、多模态处理、Agent、知识图谱等技术,以提高大模型的回答质量和系统的智能性。系统支持文本和图片输入,能够提供详细的汽车相关信息。
配置文件:请确保在 config.json 中配置了正确的模型路径及参数。配置文件的详细说明见下节“各模块细节信息”。
安装环境依赖:在 Linux 命令行中运行以下命令来安装所需的 Python 包:
pip install -r requirements.txt
python app.py
文件:vectorize_and_index.py
模块功能:该模块负责读取 PDF 文件内容,使用指定的嵌入模型将文本进行分割和编码,并将编码结果存储为 FAISS 索引。RAG 模块将利用这些索引与用户输入进行匹配,从而获取相关的补充信息。可以通过调整 config['chunk_size'] 参数来改变文本块的大小,以保证上下文的完整性。
embedding模型:sentence-transformers/all-MiniLM-L6-v2
config 参数:
config['embedding_model_path']:本地向量库编码模型文件路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['vector_vectors_path']:FAISS 向量数据文件路径。config['text_mapping_path']:文本块与索引映射关系文件路径。config['rag_data_path']:本地知识库文档路径。config['chunk_size']:本地文档切分块的大小。文件:agent_module.py
模块功能:初始化系统中的各个模块,并处理用户查询。
LLM:THUDM/chatglm3-6b
config参数:
config['elasticsearch_host']:Elasticsearch 服务器地址。config['llm_path']:chatglm3-6b 模型和分词器的路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['vector_vectors_path']:FAISS 向量数据文件路径。config['summary_model_path']:mt5 摘要模型和分词器的路径。config['intent_model_path']:用户意图识别模型文件路径。config['ner_model_path']:实体命名识别模型文件路径。文件:rag_module.py.py
模块功能:加载 BLIP 模型,将图像文件转换为文本描述,支持系统对图像内容的理解和处理。
BLIP模型:Salesforce/blip-image-captioning-large
config参数:
config['blip_model_path']:BLIP模型的本地路径。文件:multimodal_module.py
模块功能:首先加载 FAISS 索引和嵌入模型(应与构建本地知识库时使用的模型一致),对输入的查询文本进行向量编码,并从本地向量库中进行初步匹配,得到初步召回的文档。之后使用通过 bi encoder 模型在初步召回的文本中进一步筛选,高级召回的文档。然后,使用 corss encoder 模型对高级找回的文档块进行重排序,得到最相关的文档内容作为 RAG 的补充结果。
embedding模型:sentence-transformers/all-MiniLM-L6-v2
bi encoder 模型:FacebookAI/roberta-base
corss encoder 模型:cross-encoder/ms-marco-TinyBERT-L-2-v2
config参数:
config['embedding_model_path']:编码模型的本地路径。config['vector_dbindex_path']:FAISS 索引文件路径。config['text_mapping_path']:文本块与索引的映射关系文件路径。config['roberta-base_path']:bi encoder 模型文件路径。config['cross-encoder_path']:corss encoder 模型文件路径。文件:knowledge_graph.py
模块功能:通过提取上下文中的关键词并在维基百科上进行搜索来增强上下文信息。流程如下:
bert模型:huawei-noah/TinyBERT_General_4L_312D
config参数:
config['tiny_bert_model_path']:BERT 模型和分词器的本地路径。config['knowledge_graph_search_number']:在维基百科上进行搜索时返回的结果数量。16 commits
Python
86.9%
JavaScript
8.7%
CSS
2.7%
HTML
1.7%