英語 | 中国語
ChatGPT サーバーは、ツリーベースのデータ構造を使用してデータを保存および処理し、ユーザーに ChatGPT によるマインド マップのような Q&A エクスペリエンスを提供します。ツリー構造はコンテキスト (トークン) の送信を大幅に最適化し、企業内で使用する場合に優れたエクスペリエンスを提供します。
画像はデモ クライアントを示しています。 UI は参考用です。
仕事のシナリオでは、同じ質問を深く尋ねる必要は比較的まれであるため、ほとんどの場合、トークン数は 2000 以内に制御できます。したがって、GPT 3.5 のトークン制限 (4096) で十分です (GPT4 を考慮する必要はありません)。正確さ)。
2 つのスクリーンショット間の時間は 5 分を超えません。複数のユーザーが存在するため、前述の 5 つの質問のトークン消費を区別するには詳細なログを表示する必要がありますが、全体的なトークン消費は制御可能であると考えられます。
43.206.107.75:4000
デモ環境はクラウドサーバー上に展開されます。また、OpenAI トークンを設定しないため、モック モードが開始されます。
必要に応じて更新が行われます。プロジェクトが広く使用されている場合は、より多くの更新が提供され、プロジェクトのユーザーが少ない場合は、関心に基づいて更新が行われます。
このプロジェクトに基づいて Web UI を自由に開発してください。デモの UI は、UI デザインの初心者である私によって書かれています。 PRの方も大歓迎です!
ユーザー入力をマルチブランチ ツリーに編成し、現在のブランチの内容のみをコンテキスト情報として GPT に渡します。毎回送信するコンテンツの量は、現在のノードの深さに等しいです。マルチブランチ ツリーを介したコンテキストの選択と送信を最適化します。
n 個のノードを持つバイナリ ツリーの深さは logn です。ここでの深さは、GPT API に渡す必要があるコンテキスト情報を指します。コンテキストを処理しない場合、それは 1 次元のツリーとみなされ、線分に縮退しますが、これは当然最も複雑なケースです。セッションをツリー構造に整理することで、マインド マップを作成できます。
OpenAI がサポートする国または地域のサーバーの場所を選択することをお勧めします。データセンターとクラウドホストの両方が許容され、次のクラウドがテストされています。
サポートされていない国または地域でテストすることを主張する場合、このプロジェクトはプロキシを完全にサポートしますが、プロキシ自体がエクスペリエンスに影響を与え、リスクを引き起こす可能性があります。プロキシ構成の詳細については、構成ファイル Spec.GPT.TransportUrl を参照してください。
プロキシの使用はお勧めしません。ご自身の責任でご使用ください。
git clone https://github.com/finishy1995/effibot.git
cd effibot
デフォルト設定はモック モードです。これは、実際には 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
デモ クライアントは Vue.js + Vite + TypeScript で開発されており、Node.js 14 以降の環境が必要です。
cd demo
yarn && yarn dev
デモ クライアントは http://localhost:5173 で自動的に開きます。