为学校做贡献的实践过程
-
一天头脑一热想为学校做点贡献,直接找到指导老师获得经费支持,拿下火山deepseekv3以及MAX KB知识库问答系统企业版试用。
-
接下来打算处理数据,想把官网的数据源扒下来,但很遗憾这一步没有做到,不知是不是不支持,按道理rss订阅源应该是可以支持的。
-
找到所有提供给我们的数据以及官网数据后,开始将文本向量化,使用的是MAXKB自带的模型。
-
建一个高级编排的应用后,去建立多个知识库,不过很遗憾都是文本文件,目前正在想办法通过函数自动更新,感觉还是很麻烦。
工作流介绍
用户问题-知识库向量检索-通过对话ID进行判断达到负载均衡-提交API(system prompt和检索到的数据以及用户的问题)-回复。经过使用,默认的向量模型还是非常棒的。
函数代码
import hashlib
def get_model_number(chat_id, model_nums):
“”"
根据给定的对话ID和模型数量计算模型序号。
参数:
chat_id (str): 对话ID,形如4c0bc460-f6a0-11ef-aa33-0242ac120003。
model_nums (int): 模型数量,必须大于等于2。
返回:
int: 对应于该对话ID的模型序号。
"""
if not isinstance(chat_id, str) or not all(c in "0123456789abcdef-" for c in chat_id):
raise ValueError("Invalid chat_id format")
if not isinstance(model_nums, int) or model_nums < 2:
raise ValueError("model_nums must be an integer greater than or equal to 2")
# 使用SHA-256算法对chat_id进行哈希运算
hash_object = hashlib.sha256(chat_id.encode())
hex_dig = hash_object.hexdigest()
# 将十六进制字符串转换为整数
hash_int = int(hex_dig, 16)
# 将哈希值映射到[0, model_nums - 1]范围内
model_number = hash_int % model_nums
return model_number
后续想法
里面的变量可以自己拿去别的工作流实现,目前想直接让大模型进行联网了,不然懒得搞了。