英語 | 中文
ChatGPT 伺服器使用基於樹的資料結構來儲存和處理數據,為使用者提供類似於心智圖的 ChatGPT 問答體驗。樹形結構極大地優化了上下文(令牌)的傳輸,在公司內部使用時提供了更好的體驗。
圖為演示客戶端;使用者介面僅供參考。
在工作場景中,需要深入詢問相同問題的情況比較少,所以大多數情況下,token數量可以控制在2000以內。 )。
兩次截圖之間的時間間隔不超過5分鐘。由於使用者較多,需要查看詳細的日誌來區分上述五個問題的代幣消耗情況,但整體來看代幣消耗情況是可控的。
43.206.107.75:4000
演示環境部署在雲端伺服器上。並且不設定 OpenAI 令牌,因此它將啟動模擬模式。
將根據需要進行更新。如果項目被廣泛使用,將提供更多更新;如果項目用戶較少,將根據興趣進行更新。
請隨意基於此專案開發 Web UI! Demo中的UI是我這個UI設計初學者寫的。歡迎 PR!
將使用者輸入組織成多分支樹,僅將目前分支的內容作為上下文資訊傳遞給 GPT。我們每次傳輸的內容量等於目前節點的深度。透過多分支樹優化上下文的選擇和傳輸。
具有 n 個節點的二元樹的深度為 logn。這裡的深度是指我們需要傳遞給GPT API的上下文資訊。如果我們不處理上下文,它可以被視為一維樹,它退化為線段,自然是最複雜的情況。透過將會話組織成樹狀結構,我們可以創建心智圖。
建議選擇OpenAI支援的國家或地區的伺服器位置。資料中心和雲端主機都可以,已經測試過以下雲端:
如果你堅持在不支持的國家或地區進行測試,本計畫完全支援代理,但代理本身可能會影響體驗並帶來風險。有關代理程式配置詳細信息,請參閱設定檔 Spec.GPT.TransportUrl。
不建議使用代理。使用風險自負。
git clone https://github.com/finishy1995/effibot.git
cd effibot
預設配置是 Mock 模式,這意味著它不會實際呼叫 GPT API,而是傳回使用者的輸入作為回應。預設的 REST API 連接埠是4001
,所有設定都可以在http/etc/http-api.yaml
檔案中修改。
vi http/etc/http-api.yaml
Name : http-api
Host : 0.0.0.0
Port : 4001 # Port of http server, default 4001
Timeout : 30000 # Timeout of http request, default 30000(ms)
Log :
Level : debug
Mode : file # Log mode, default console 日志模式,可选 console(命令行输出) 或 file
Path : ../logs # Log file path, default ../logs
Spec :
GPT :
# Token: "sk-" # Token of OpenAI, will start mock mode if not set. OpenAI 密钥,如果不设置则启用 mock 模式
# TransportUrl: "http://localhost:4002" # Transport url of OpenAI, default "http://localhost:4002 代理地址,如果不设置则不启用代理
Timeout : 20s # Timeout of OpenAI request, default 20s
MaxToken : 1000 # Max token of OpenAI response, default 1000
修改檔案後,如果需要One-click deployment
或container deployment
,請執行下列命令
mkdir -p ./effibot_config
cp http/etc/http-api.yaml ./effibot_config
請確保docker
和docker-compose
已正確安裝並啟用。
docker-compose up -d
演示客戶端將在連接埠4000
上運行,REST API 將在連接埠4000
和4001
上運行。
如果您沒有docker-compose
,可以使用以下命令:
docker network create effibot
docker run -p 4001:4001 -v ./effibot_config:/app/etc --network effibot --name effibot -d finishy/effibot:latest
docker run -p 4000:4000 --network effibot --name effibot-demo -d finishy/effibot-demo:latest
確保已安裝並配置 golang 1.18+。
cd http
go run http.go # go build http.go && ./http
退出目錄
cd ..
docker build -t effibot:latest -f http/Dockerfile .
docker network create effibot
# Modify the configuration file as needed, such as adding the OpenAI token and change the log mode to console
docker run -p 4001:4001 -v ./effibot_config:/app/etc --network effibot --name effibot -d effibot:latest
docker build -t effibot-demo:latest -f demo/Dockerfile .
docker run -p 4000:4000 --network effibot --name effibot-demo -d effibot-demo:latest
Demo客戶端採用Vue.js + Vite + TypeScript開發,需要Node.js 14+環境。
cd demo
yarn && yarn dev
演示用戶端將自動在 http://localhost:5173 開啟。