# Description 推理問答展示系統,專案位於<font color="red">147</font>上,路徑為:`~/reasoning-qa` 本專案包含下面三個系統 * reasoning (系統後端):詳見reasoning中的[readme](https://hackmd.io/kvuOm-lZRkGaZ39SQKY6BQ) * <font color="red">port: 888</font> * web (系統前端):詳見web中的[readme](https://hackmd.io/NoO97FPnRfyIoasKMetJlw) * <font color="red">port: 3333</font> * neo4j (系統知識圖譜) * <font color="red">port: 17474(neo4j web)</font> * <font color="red">port: 17687(neo4j db)</font> # Environment * 147 (Ubuntu LTS 22.04) * docker-compose version 1.29.2 * Docker version * Client: Docker Engine - Community (version: 20.10.21) * Server: Docker Engine - Community (version: 20.10.21) # Build setup 本專案透過docker-compose管理 1. 移動到專案根目錄 ``` cd reasoning-qa tree -L 1 . ├── docker-compose.yaml ├── neo4j ├── reasoning └── web ``` 2. 如果還沒建過image `docker-compose build` 3. 一次開啟和專案相關的container `docker-compose up -d` 4. 關掉 `docker-compose down` # 前後端互動 ## 單篇問答 1. 前端輸入完文章的相關資訊後,按下建立知識圖譜會呼叫後端 /knowledge-graph (`post`) ![](https://hackmd.io/_uploads/BkFNbYunn.png) 2. 後端完成知識圖譜建構之後,會回傳剛剛建立的知識圖譜的Cypher,news_id還有kg ![](https://hackmd.io/_uploads/Bk5CqEPh2.png) 3. 可以在對話框輸入問題。使用者送出問題後,會將使用者的問句和剛剛拿到的news_id, kg一起送到後端 /single-article-answer (`post`) 後端透過news_id以及kg搜尋答案 ![](https://hackmd.io/_uploads/r1JacEvnh.png) 4. 後端處理完請求後回傳答案,答案包含文字、新聞連結以及用來解答的知識圖譜 ![](https://hackmd.io/_uploads/S1H7jNw3h.png) ## 多篇問答 1. 前端選擇用於回答問題的知識圖譜 ![](https://hackmd.io/_uploads/B1ecxY_n2.png) 2. 可以在對話框輸入問題。使用者送出問題後,會將使用者的問句和剛剛拿到的kg一起送到後端 /multiple-article-answer (`post`) ![](https://hackmd.io/_uploads/SJkBaHvhh.png) 3. 後端處理完請求後回傳答案,答案包含文字、新聞連結以及用來解答的知識圖譜 ![](https://hackmd.io/_uploads/SJFeTrP3n.png)