使用火山方舟+MAX KB实现智能体集成

为学校做贡献的实践过程

  1. 一天头脑一热想为学校做点贡献,直接找到指导老师获得经费支持,拿下火山deepseekv3以及MAX KB知识库问答系统企业版试用。

  2. 接下来打算处理数据,想把官网的数据源扒下来,但很遗憾这一步没有做到,不知是不是不支持,按道理rss订阅源应该是可以支持的。

  3. 找到所有提供给我们的数据以及官网数据后,开始将文本向量化,使用的是MAXKB自带的模型。

  4. 建一个高级编排的应用后,去建立多个知识库,不过很遗憾都是文本文件,目前正在想办法通过函数自动更新,感觉还是很麻烦。

工作流介绍

用户问题-知识库向量检索-通过对话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

后续想法

里面的变量可以自己拿去别的工作流实现,目前想直接让大模型进行联网了,不然懒得搞了。

4 Likes

平均回复时间也很快哦要注意的是在知识库检索的工作流中要把提取文字和段落提高一点,上传的数据也会自动分段,蛮不错的

感谢大佬!

我部署了一套,搞了点测试数据进去,maxkb经常搜不到,搜不到就答不出来.试了效果最好是火山方舟那个优化搜索的向量模型

这个问题去那个地方选个模型生成问题在知识库里面,然后进去把段落选了,实在不行就去那边高级编排把相似度降低,把获取的字段提高点

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。