知识库功能后端的设计
_ = load_dotenv(find_dotenv())
用于加载环境变量,使用 dotenv
库加载环境变量文件 (.env
) 中的配置,并将其设置为当前环境变量。
LLM_MODEL_DICT
是一个字典,键为不同的模型平台,值为该平台支持的语言模型列表。LLM_MODEL_LIST
是所有语言模型的列表,通过将LLM_MODEL_DICT
的值展平而得到。INIT_LLM
和INIT_EMBEDDING_MODEL
是初始的语言模型和嵌入模型名称。EMBEDDING_MODEL_LIST
包含了可用的嵌入模型列表。DEFAULT_DB_PATH
和DEFAULT_PERSIST_PATH
是默认的数据库和持久化数据路径。
get_model_by_platform
函数:这个函数根据给定的平台名称返回对应的语言模型列表,如果平台不存在,则返回空字符串。
Model_center
类的设计:
Model_center
类是一个模型中心,用于管理多个问答链(Chat_QA_chain_self
和QA_chain_self
)的实例。__init__
方法初始化了两个空字典chat_qa_chain_self
和qa_chain_self
,用于存储不同模型和嵌入模型组合的问答链实例。
chat_qa_chain_self_answer
方法:
- 接收参数
question
、chat_history
、model
、embedding
、temperature
、top_k
、history_len
、file_path
和persist_path
。 - 根据
(model, embedding)
组合查找或创建对应的Chat_QA_chain_self
实例,并调用其answer
方法回答问题。 - 将问题和回答添加到
chat_history
中,并返回空字符串和更新后的chat_history
。
qa_chain_self_answer
方法:
- 接收参数
question
、chat_history
、model
、embedding
、temperature
、top_k
、file_path
和persist_path
。 - 根据
(model, embedding)
组合查找或创建对应的QA_chain_self
实例,并调用其answer
方法回答问题。 - 将问题和回答以元组形式添加到
chat_history
中,并返回空字符串和更新后的chat_history
。