此处进行封装方便后端方法调用
Chat_QA_chain_self
带历史记录的问答链类 Chat_QA_chain_self
,用于在对话中进行问答。类中的各个方法和属性支持模型调用、检索相似文档、保存对话历史、清除历史记录等功能
类的初始化方法
- 参数:
model
: 调用的模型名称。temperature
: 温度系数,控制生成的随机性,默认值为0.0。top_k
: 返回检索的前 k 个相似文档,默认值为4。chat_history
: 历史记录,输入一个列表,默认是一个空列表。file_path
: 建库文件所在路径。persist_path
: 向量数据库持久化路径。api_key
: 使用 API 时需要传递的参数。embedding
: 使用的 embedding 模型,默认值为“zhipuai”。embedding_key
: 使用的 embedding 模型的秘钥。
- 属性:
- 初始化各个参数并创建一个向量数据库 (
self.vectordb
) 用于文档检索。
- 初始化各个参数并创建一个向量数据库 (
清空历史记录
保存指定长度的历史纪录
核心方法,调用问答链
- 参数:
question
: 用户提问。temperature
: 控制生成的随机性,如果不传入则使用默认温度。top_k
: 返回检索的前 k 个相似文档,默认值为4。
- 处理逻辑:
- 如果问题为空,返回空字符串和当前历史记录。
- 创建语言模型 (
llm
)。 - 使用向量数据库 (
vectordb
) 创建检索器 (retriever
)。 - 创建问答链 (
ConversationalRetrievalChain
)。 - 调用问答链获取答案并更新历史记录。
- 返回更新后的历史记录。