AnyQ_智能问答的一个非官方帮助手册

本手册由一个俗人(wechat:dotzcv)整理,数据来源为百度Google搜索,官方issues,以及本人的实验所得进行记录扩充

前提的准备条件

硬件环境:4核8G 上面测试成功 (我的一台2核4G测试服务器,目前未通过。)软件环境:

  • Docker 推荐
  • cmake 3.2.2版本 ,g++ >=4.8.2,bison >=3.0
  • java环境 安装操作见下面QA章节

网络环境:正确的上网方式。由于编译时候会在github上进行代码clone,所以建议有条件的使用正确的方式,加速下载代码(当然此处非必须,没有则速度慢一点而已)

核心代码安装步骤

1.非Docker:忽略了,没有高一点而且环境比较纯碎的服务器了,没有编译成功。2.Docker:安装成功了。步骤如下:

#拉取镜像
docker pull hub.baidubce.com/paddlepaddle/paddle:latest-dev

#运行容器
docker run --name paddle -it -v $PWD:/paddle hub.baidubce.com/paddlepaddle/paddle:latest-dev  /bin/bash

#进入容器进行代码clone
git clone https://github.com/baidu/AnyQ.git

#进去AnyQ目录执行

mkdir build && cd build && cmake .. && make
#漫长的等待过程(中间会出现各种事情 见下面QA章节)

核心代码编译完成

实例Demo安装步骤

在当前build目录下,执行以下操作

构建索引、配置

# 获取anyq定制solr,anyq示例配置
cp ../tools/anyq_deps.sh .
sh anyq_deps.sh

# 启动solr, 依赖python-json, jdk>=1.8
cp ../tools/solr -rp solr_script
sh solr_script/anyq_solr.sh solr_script/sample_docs

启动服务

./run_server

# 请求示例:
http://127.0.0.1:8999/anyq?question=NLP是什么

测试请求返回:
curl 0.0.0.0:8999/anyq?question=NLP是什么

[{"answer":"\u60a8\u9700\u8981\u62e5\u6709\u4e00\u4e2a\u767e\u5ea6\u8d26\u53f7\uff0c\u7528\u6765\u767b\u5f55\u767e\u5ea6\u4e91\uff0c\u53ef\u4ee5\u70b9\u51fb\u6b64\u5904\u6ce8\u518c\u767e\u5ea6\u8d26\u6237\u3002\u5982\u60a8\u4ee5\u524d\u62e5\u6709\u767e\u5ea6\u63a8\u5e7f\u8d26\u6237\uff0c\u540c\u6837\u53ef\u4ee5\u767b\u5f55\u767e\u5ea6\u4e91\u3002","confidence":0.51880854368209839,"json_info":"{}\n","qa_id":"1","question":"\u9700\u8981\u4f7f\u7528\u4ec0\u4e48\u8d26\u53f7\u767b\u5f55?"}]

07-14 01:22