让机器人来回答于我的问题
目前只支持单轮 QA,采用文本相似度进行召回,支持自定义问题和答案。
文本相似度模型采用 SimCSE
,预训练模型来自 Hugging Face。
由于 Hugging Face 的下载需要用 git lfs,第一次配置起来稍微有些成本,所以我自己缓存了一份模型文件 simcse-chinese-roberta-wwm-ext.tar.gz。
需要先将模型放在 resource/model
目录下,然后执行 docker-compose up -d
即可。
simcse-chinese-roberta-wwm-ext-onnx.tar.gz
当命中某个标问时,会判定为命中为本条知识,并返回答案,当答案有多个时,会随机返回一个。
目录 resource/knowledge
下的任何 .json
后缀都会被尝试加载进知识库,格式如下。
{
"知识_1": {
"question_list": ["标问_1", "标问_2"],
"answer_list": ["答案_1"]
},
"知识_2": {
"question_list": ["标问_3", "标问_4"],
"answer_list": ["答案_2", "答案_3"]
}
}
当答案内容为 func:foo_bar
格式时,会从 about/func_set.py 中寻找并执行名为 foo_bar
的函数,目前不支持参数传入。
python3 main.py
curl -X POST \
-H "Content-Type: application/json" \
-d '{"text": "你好"}' \
'http://localhost:3000/api/chat'