關鍵詞:
百度AI自然語言處理
AnyQ開源FAQ問答系統
Centos7編譯運行
PS:根據“百度開源 FAQ 問答系統(AnyQ)安裝—Linux(無docker)” https://blog.csdn.net/qq_28385535/article/details/83213822
在以下環境試驗成功,特此記錄:
CentOS Linux release 7.2.1511 (Core)
8GB # 如果cmake編譯卡住,請調大編譯環境內存
cmake version 3.3.2 # 必須是這個版本,否則出錯
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
bison (GNU Bison) 3.0.4
openjdk version "1.8.0_222"
python 2
簡介
github地址:https://github.com/baidu/AnyQ
start:1.7k
官方簡介:
AnyQ(ANswer Your Questions) 開源項目主要包含面向FAQ集合的問答系統框架、文本語義匹配工具SimNet。
問答系統框架採用了配置化、插件化的設計,各功能均通過插件形式加入,當前共開放了20+種插件。開發者可以使用AnyQ系統快速構建和定製適用於特定業務場景的FAQ問答系統,並加速迭代和升級。
SimNet是百度自然語言處理部於2013年自主研發的語義匹配框架,該框架在百度各產品上廣泛應用,主要包括BOW、CNN、RNN、MM-DNN等核心網絡結構形式,同時基於該框架也集成了學術界主流的語義匹配模型,如MatchPyramid、MV-LSTM、K-NRM等模型。SimNet使用PaddleFluid和Tensorflow實現,可方便實現模型擴展。使用SimNet構建出的模型可以便捷的加入AnyQ系統中,增強AnyQ系統的語義匹配能力
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-SlLkmCv8-1578630126462)(https://github.com/baidu/AnyQ/raw/master/docs/images/AnyQ-Framework.png)]
編譯環境
1.anyq源碼
git clone https://github.com/baidu/AnyQ.git
2.gcc/g++
yum install -y gcc gcc-c++ make automake
gcc --version # 查看版本號,筆者是4.8.5
g++ --version # 查看版本號,筆者是4.8.5
3.cmake3(必須是3.3.2)
wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz
tar -zxvf cmake-3.3.2.tar.gz
cd cmake-3.3.2/
./bootstrap
gmake
gmake install # 安裝
cmake --version # 查看版本號,應該是3.3.2
4.bison 3.0
yum list bison # 我這裏是3.0.4
yum install bison.x86_64 # 安裝
bison -V # 大V
編譯
cd ./AnyQ
mkdir build && cd build
cmake .. # 生成makefile,..代表源碼目錄
make # 編譯
PS1:在編譯過程中,會遇到多次git clone下載停止的情況,此時只需Ctrl+C暫停程序執行,重新執行make即可。這個過程需要反覆進行,直到成功爲止。
PS2:大概佔用8GB磁盤。
PS3:推薦8G內存以上(包含8G),否則在編譯(make)時候內存不夠用,會跑不動
PS4:如果出現錯誤,請確保cmake是3.3.2版本。作者就是cmake版本不對導致編譯失敗的。
運行
構建索引、配置及Web服務的安裝
1.系統編譯成功以後,在AnyQ/build目錄下,執行下面的命令
# 獲取AnyQ定製solr、AnyQ示例配置
cp ../tools/anyq_deps.sh .
chmod 777 anyq_deps.sh # 權限
./anyq_deps.sh
2.jdk安裝
參考:https://www.cnblogs.com/ocean-sky/p/8392444.html
## 卸載自帶JDK(關鍵)
rpm -qa | grep java # 列出包(java-1.8打頭或者java-1.7打頭)
## rpm -e --nodeps 後面跟系統自帶的jdk名,如
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.222.b10-0.el7_6.x86_64
## 下載jdk
百度網盤:https://pan.baidu.com/s/1ykSB3dsaYR1ow1iaU3FScg&shfl=sharepset
官網(需要oracle賬號,討厭!):https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# 上傳(mac)
scp Downloads/jdk-8u144-linux-x64.tar.gz [email protected]:/home/
cd /home/
tar -zxvf jdk-8u144-linux-x64.tar.gz
mkdir java && mv jdk-8u144-linux-x64 java/
# 配置環境變量
vim /etc/profile
export JAVA_HOME=/home/java/jdk1.8.0_144
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# 生效
source /etc/profile
java -version # 查看java版本
jar # jar命令測試
2.啓動solr, 依賴python-json, jdk>=1.8(JDK的安裝請參考:https://www.linuxidc.com/Linux/2016-09/134941.htm)
# 安裝python
yum install python # python 2
# 安裝python-json
wget https://github.com/dmeranda/demjson/archive/release-2.2.4.tar.gz
tar -zxvf demjson-release-2.2.4
python setup.py install
# 啓動solr
cp ../tools/solr -rp solr_script
#等一會,看結果,log在nohub.out中
#如果啓動失敗,查看nohub.out具體錯誤原因
#PS:請確保8900斷開沒有被佔用,命令:netstat -anp |grep 8900
sh solr_script/anyq_solr.sh solr_script/sample_docs
# 還有一些錯誤,可參考:https://blog.csdn.net/yunhulylove/article/details/95936960
系統運行及監控
1.運行run_server
cd AnyQ/build
chmod 777 run_server.sh
./run_server
2.訪問
系統運行成功後,即可通過 http://IP:8999 訪問系統運行界面
3.問答api測試
# 請求示例:
http:${host}:${port}/anyq?question=XXX
瀏覽器:http://10.0.59.231:8999/anyq?question=需要使用什麼賬號登錄
centos:curl -i "http://10.0.59.231:8999/anyq?question=需要使用什麼賬號登錄"
關於anyq的使用可以參考:
https://blog.csdn.net/weixin_42891039/article/details/81448696
2020.01.11 更新
推薦一下自己的開源項目:
1.CoffeeChat。參考了TeamTalk、瓜子IM等知名項目,包含服務端(go)和客戶端(flutter),單聊和機器人(小微、圖靈、思知)聊天功能已完成,目前正在研發羣聊功能,歡迎對golang和跨平臺開發flutter技術感興趣的小夥伴Star加關注。
Github:https://github.com/xmcy0011/CoffeeChat
opensource im with server(go) and client(flutter+swift)