kuwaai / genai-os

Kuwa GenAI OS: An open, free, secure, and privacy-focused Generative-AI Orchestrating System.
https://kuwaai.tw/os/intro
MIT License
178 stars 24 forks source link

一些修改的建議和sql錯誤問題 #11

Closed ian08005454 closed 4 months ago

ian08005454 commented 5 months ago

問題一:production_update.sh 建議加入php-sqlite3 -y不然會出錯

cd ../..
sudo apt update
sudo apt install php-pgsql php-xml php php-curl php-ldap php-redis composer redis php-sqlite3 -y
composer update
php artisan key:generate --force
php artisan db:seed --class=InitSeeder --force
php artisan migrate --force
rm public/storage
php artisan storage:link
npm install
composer dump-autoload --optimize
php artisan route:cache
php artisan view:cache
php artisan optimize
npm run build
php artisan config:cache
php artisan config:clear

問題二:安裝依賴套件的說明中的../kernel好像沒這個資料夾:

cp .env.dev .env cd executables/sh ./production_update.sh cd ../kernel pip install -r requirement.txt sudo chown -R $(whoami):www-data /var/www/html

問題三:

SQLSTATE[HY000]: General error: 1 no such table: groups (Connection: sqlite, SQL: select * from "groups" where ("name" = Admins) limit 1) 這個要如何處理

問題四:這邊要怎麼處理,直接修改檔案嗎?

設定您的 Web 伺服器(Nginx 或 Apache),將 src/multi-chat/public 設置為網站根目錄。 範例設置文件: nginx_config_example, php.ini 推薦設置: 為了RAG應用,PHP 最大上傳文件大小設置為至少 10MB。 避免一些較慢的RAG或攏長的模型輸出,將Timeout設置為至少 120 秒或更長時間。

taifu9920 commented 5 months ago

謝謝提醒!發覺文件有些沒有注意到的地方xD

問題一、二將會在下個版本修正

問題三 還需要進一步確認一下,就目前光看訊息判斷, 應該是migrate過程有fail的部分,請問是在連線到網站後顯示在畫面上的嗎? 還是在執行production_update.sh過程當中出現的?

問題四 需要修改你系統當中使用的網站伺服器設定檔 這邊以Nginx舉例,設定檔在/etc/nginx/sites-available下,預設有個default的檔案 可以直接改這個檔案,或另外複製一份 並在/etc/nginx/sites-enabled下使用sudo ln -s ../sites-available/default . 來將檔案連結過去啟用,修改部分主要是網站根目錄root這個參數 可以參考這個檔案nginx_config_example當中的第五行,將專案目錄下的src/multi-chat/public設定進去 如:root /var/www/html/multi-chat/public; 完成之後需要將nginx服務重啟 sudo systemctl restart nginx.service

ian08005454 commented 5 months ago

問題三是在執行production_update.sh發生的 問題四的部分我覺得應該要在文件中補充,我執行完文件的執行步驟後沒有出現錯誤還是沒有出現畫面 然後如果要修改embedding的模型是不是要去src/toolchain/construct_vector_db.py修改? 如果要增加新的對話模式,我需要修改docqa的網頁和一些對話功能我應該研究那些檔案

taifu9920 commented 5 months ago

問題三: 可以在src/multi-chat底下執行 php artisan migrate 這個指令並提供該執行結果的log嗎?

問題四: 由於nginx/apache的設定很多樣, 也還沒有一份能概括大多使用者的完整步驟教學,後續測試多次步驟後會再補上xD 不過現在依舊無法連線到網站上嗎? 按照剛才上面提供的nginx設定範例,該專案目錄src/multi-chat資料夾 應放在/var/www/html/multi-chat這個位置 且須設定好權限給www-data,可以ls -l檢查一下檔案擁有者和權限是否允許www-data存取 也可以使用sudo systemctl status nginx.service檢查一下nginx服務是否有啟動(綠色的active (running))

修改embedding的部分,除了src/toolchain/construct_vector_db.py之外,在doc_qa之類的executor這邊也可以帶入參數--embedding_model

網頁部分的檔案 都在src/multi-chat下,是Laravel架構的網站,可以在裡面修改程式碼並新增功能,簡要提及一下裡面你可能會需要用到的相關資料夾

網站部分開發過程可以執行executables裡面的compile.(bat/sh)檔案來監聽並編譯css(如果你有使用新的css class的話)

docqa的部分 應該都在這個目錄內,src\executor\docqa

ifTNT commented 5 months ago

關於修改embedding model補充幾點

  1. 修改預建VectorDB的embedding model可以在呼叫src/toolchain/construct_vector_db.py時透過參數--embedding-model 指定
  2. DocQA, WebQA及SearchQA的embedding model可以在啟動executor時透過參數--embedding_model修改
  3. 因為不同embedding model算出來的vector不通用,所以DB QA的embedding model會跟VectorDB中config.json裡面的設定值一樣,不能修改
ian08005454 commented 5 months ago

我確認一下,DocQA與WebQA的docker 跟模型的Docker是獨立的八,所以他在kuwa聊天室中是屬於獨立的對話模型嗎?那他們之間是怎麼對接模型對話的?

目前在docker 環境下是可以跑的但安裝nginx還沒成功

ifTNT commented 5 months ago

QA 的 container 和 LLM 是獨立的沒錯,對 Kuwa 來說也是不同的 Executor 目前 QA 會透過 Multi-chat 的 API 去呼叫 LLM Executor

ian08005454 commented 5 months ago

我看在UI的部分需要同時把QA跟一個模型放在同一個聊天室來做到QA回答那dbqa的docker compose 中的"--model", "gemini-pro"是主要的回答模型還是放入聊天室的模型為回答模型,最後他們之間會衝突嗎?

然後我想詢問要將LLM Executor建立在其他電腦我應該只需要執行huggingface.yaml對八?然後我是要給主要電腦一個ip:port?? 可如果使用docker 環境我是不是還需要設定--net host或是使用對外IP位置?

ian08005454 commented 5 months ago

然後我想詢問一下 docker 的 .env裡面有哪寫可以加入的參數阿 LDAP或是locale之類的也是在那邊修改嗎?

ian08005454 commented 4 months ago

@ifTNT @taifu9920 請問一下 DatabaseQA(DBQA)的 pre-built vector database 要怎麼建立阿? 還有新創立的Executor要怎麼讓KUWA 知道要手動加入嗎?

ifTNT commented 4 months ago

我把Discord上的一些討論紀錄貼過來:

Q1: QA模型與原生LLM會衝突嗎? A1: 兩個不會衝突,但如果共用同一個LLM的話,請求會排隊

Q2: Docker環境下如何將Executor開在其他台電腦 A2: Docker版的executor compose files在這個位置 https://github.com/kuwaai/genai-os/tree/main/docker/compose 可以依需求修改並在其他台主機啟動 記得在executor啟動的參數位置指定kernel所在的主機IP與端口位置,像這樣:--kernel_url http://123.123.123.123:9000/ 也建議手動指定一下從Kernel主機要連回來的目標IP與端口位置 像這樣:--host 123.123.123.124

Q3: Docker版的multi-chat環境變數如何修改 (如LDAP或是locale) A3: Linux版的.env檔案https://github.com/kuwaai/genai-os/blob/main/src/multi-chat/.env.dev 對應至docker版此處的檔案 https://github.com/kuwaai/genai-os/blob/main/docker/multi-chat/app.env LDAP與SMTP都是在.env檔案內設定 在.env檔案內有一整排由LDAP_開頭的變數可以設定相關連線資訊 SMTP則是MAIL_開頭的部分

Q4: Docker版如何建立DBQA的pre-built vector database? A4: 預先建立資料庫可以參考以下文章 https://kuwaai.org/zh-Hant/blog/dbqa-setup#docker-版教學

Q5: Docker版建立Executor之後如何讓Kernel知道? A5: Docker版的話要新增Executor不用調整Kernel設定,Executor啟動後會自動向Kernel註冊