LucienShui / about

让机器人来回答关于我的问题

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

让机器人来回答于我的问题

功能

目前只支持单轮 QA,采用文本相似度进行召回,支持自定义问题和答案。
文本相似度模型采用 SimCSE ,预训练模型来自 Hugging Face

部署

由于 Hugging Face 的下载需要用 git lfs,第一次配置起来稍微有些成本,所以我自己缓存了一份模型文件 simcse-chinese-roberta-wwm-ext.tar.gz

需要先将模型放在 resource/model 目录下,然后执行 docker-compose up -d 即可。

ONNX 格式的模型

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

API

chat

curl -X POST \
     -H "Content-Type: application/json" \
     -d '{"text": "你好"}' \
     'http://localhost:3000/api/chat'

About

让机器人来回答关于我的问题

License:Apache License 2.0


Languages

Language:Python 90.9%Language:HTML 4.7%Language:Dockerfile 4.4%