知识库后端功能的设计
1.
clear_history
方法定义在一个类中,用于清除所有chat_qa_chain_self
中问答链的历史记录。- 如果
self.chat_qa_chain_self
字典非空,它会迭代字典中的每个问答链实例 (chain
),并调用其clear_history()
方法来清空历史记录。
2.
format_chat_prompt
函数接收用户的消息message
和当前的聊天历史记录chat_history
。- 它将历史记录中的每一轮对话(用户消息和助手消息)格式化成一段提示文本
prompt
。 - 最后,将用户最新的消息添加到
prompt
的末尾,并返回完整的提示文本prompt
。
3.
respond
函数用于生成助手的回复,并更新聊天历史记录。- 接收参数包括
message
(用户的消息)、chat_history
(当前的聊天历史记录)、llm
(语言模型实例)、history_len
(历史记录的长度限制,默认为3)、temperature
(生成文本时的温度参数,默认为0.1)、max_tokens
(生成文本的最大标记数,默认为2048)。 - 如果
message
为空或长度小于1,则返回空字符串和原始的chat_history
。 - 将根据
history_len
来截取聊天历史记录的最后几轮。 - 使用
format_chat_prompt
函数将message
和截取后的chat_history
格式化成一个提示文本formatted_prompt
。 - 调用
get_completion
函数(未提供具体实现,但用于生成助手的回复)获取助手的回复bot_message
。 - 将用户的消息和助手的回复作为元组
(message, bot_message)
添加到chat_history
中。 - 调用
text_to_speech_pyttsx3
函数将bot_message
转换成音频文件audio_file
。 - 最后返回空字符串(表示没有错误)、更新后的
chat_history
和生成的audio_file
。
4. 总结:
clear_history
用于清空问答链的历史记录。format_chat_prompt
用于将用户消息和历史对话格式化成一个提示文本。respond
用于生成助手的回复,并更新聊天历史记录,同时支持将助手回复转换成音频文件。