はじめに
DDG-Chatは、複数のプラットフォームにワンクリックでデプロイできるようにすることを目的としたオープンソースプロジェクトです。 チャットGPT APIバックエンド。このプロジェクトは、GPT-4o mini、Claude 3 Haiku、Llama 3.1 70B、Mixtral 8x7Bなど、DuckDuckGoが匿名で提供する複数のモデルをサポートしている。すべてのモデルはDuckDuckGoによって匿名で提供され、ユーザーはAPIバックエンドをVercel、Cloudflare Workers、Docker、その他のプラットフォームを通じて簡単にデプロイして使用することができます。
DDG APIは同時実行数を単一のIPに制限しているため、デプロイにはVercelを使用するか、Dockerなどのローカル・デプロイを使用する場合は、プロジェクトがプロキシ・プールで実行されていることを確認することを推奨します。
機能一覧
- 複数のChatGPTモデルをサポート
- Vercel、Cloudflare Workers、Dockerなどにワンクリックでデプロイ!
- サードパーティアプリケーションにAPIインターフェイスを提供する
- クラウドやローカル展開など、複数の展開方法をサポート
- 配備と使用に関する詳細な文書を提供する
ヘルプの使用
インストールと展開
ヴェルセル配備
- クラウドフォークのリポジトリ展開: (Vercelのワンクリック展開)
- このリポジトリをあなたのGitHubアカウントにフォークする。
- Vercel New Projectページに行き、Forkしたリポジトリをインポートする。
- 配置を完了するには、[Deploy]をクリックします。
- ローカルクローンリポジトリの展開:
- Node.jsの環境があることを確認してください。
- 以下のコマンドを実行する:
npm i -g vercel vercel ログイン git clone https://github.com/leafmoes/DDG-Chat.git ddg-chat cd ddg-chat npm run publish
クラウドフレア・ワーカーの展開
- Cloudflare Workers and Pagesコンソールに行き、ワーカーを作成します。
- Workersの設定で、ランタイムをnodejs_compatに設定する。
- リポジトリからコードを貼り付けるWorkersに移動し、Deployをクリックする。
Dockerのデプロイメント
- コマンドラインビルド:
docker run -it -d --name ddg-chat -p 8787:8787 ghcr.io/leafmoes/ddg-chat:latest
- docker-compose.ymlファイルを使ってビルドします:
- docker-compose.ymlファイルをダウンロードして保存します。
- ファイルのあるディレクトリで以下のコマンドを実行してサービスを開始する:
docker-compose up -d
環境変数
# APIコールのプレフィックスアドレス api_prefix = '/' #がAPIコールとして認証するためのAPIキー API_KEY = 'dummy_key' # DDGへのリクエスト失敗時のリトライ回数 max_retry_count = 3 DDG へのリクエストが失敗した場合の # リトライ遅延時間 (ms) retry_delay = 5000
APIの使用
コールインターフェイス
ChatNextWebのようなサードパーティのChatGPTアプリケーションを使ってインターフェースを呼び出してください:
curl --request POST 'https://你的域名/v1/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"messages": [
{
"role": "user"、
"content": "Hello!
}
],
"model": "gpt-4o-mini"、
「ストリーム": true
}'
モデルクエリー
インタビュー https://你的域名/v1/models
現在サポートされているモデルを表示できます。
一般的な問題
- ヴェルセル配備の制限無料版では、1回のAPIリクエストに60秒かかり、月間100,000回のAPIコールが必要です。
- エラー 429 ERR_SERVICE_UNAVAILABLEDDG APIは単一IPの同時実行を制限しているので、同時実行を減らし、リクエストにプロキシプールを使うことを推奨します。
代替碁バージョン展開:無料サーバーserv00展開常駐サービス
- serv00パネルに移動し、DNSゾーンをクリックし、新しいゾーンを追加をクリックして独自のカスタムドメイン名を追加します。
- Aレコードのパージングを追加するためにcfへ行く
- Additional servicesをクリックし、Run your own applicationsをクリックする。
有効
- ポートを開いてください。
- WWW Websitesをクリック Add website Domainをクリックして、自分のドメイン名を入力する。
- クリックしてファイルをダウンロード ファイルへの実行可能パーミッションの付与
chmod +x ddgchatgo-freebsd-amd64
- ある
公開_html
の下にスタートアップ・スクリプトを作成する。start_ddgchatgo.sh
#!/bin/bash # プロセス名と起動コマンドを定義する PROCESS_NAME="ddgchatgo" START_COMMAND="PORT=5005 /home/yourServ00username/domains/example.com/public_html/ddgchatgo-freebsd-amd64 > /home/yourServ00user/domains/example.com/public_html/ddgchatgo.log 2>&1 &" # プロセスが実行されているかチェックする もし pgrep -f "$PROCESS_NAME" > /dev/null その後 echo "プロセス$PROCESS_NAMEは実行中ではなく、開始中です..." # プロセスの開始 eval "$START_COMMAND" if [ $? -eq 0 ]; then echo "プロセス$PROCESS_NAMEが正常に開始しました。" then echo "プロセス $PROCESS_NAME が正常に開始しました。" else echo "プロセス $PROCESS_NAME の起動に失敗しました。" else echo "プロセス $PROCESS_NAME の起動に失敗しました。 echo "プロセス $PROCESS_NAME の起動に失敗しました。" fi echo "プロセス $PROCESS_NAME は既に実行中です。" fi
- スクリプト実行権限の付与
chmod +x start_api.sh
- cronを初めて実行するときは、次のコマンドを実行するだけでよい。
nohup /home/your Serv00 username/domains/example.com/public_html/start_ddgchatgo.sh > /home/your Serv00 username/domains/example.com/public_html/start_ddgchatgo.log 2>&1&1
Serv00のユーザー名を自分のものに変更する。
example.comを自分のドメイン名に
PORT 開いているポートが5005でない場合は、変更してください。
#!/bin/bash
# ステップ1:作業ディレクトリに入る
cd ~/ドメイン/example.com/public_html/作業ディレクトリに入る。
# ステップ2:実行可能プログラムをダウンロードする
wget https://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.2/ddgchatgo-freebsd-amd64
# Step 3: 解凍したfreechatgptファイルに実行権限を与える
chmod +x ddgchatgo-freebsd-amd64
# Step 4: start_ddgchatgo.shスクリプトを作成します。
cat < start_ddgchatgo.sh
#!/bin/bash
# プロセス名と開始コマンドを定義します。
PROCESS_NAME="ddgchatgo"
START_COMMAND="PORT=5005 /home/your Serv00 username/domains/example.com/public_html/ddgchatgo-freebsd-amd64 > /home/your Serv00 username/domains/example.com/public_html/ ddgchatgo-freebsd-amd64 > /home/your Serv00 username/domains/example.com/public_html/ ddgchatgo-freebsd-amd64example.com/public_html/ddgchatgo.log 2>&1 &"
# プロセスが実行されているかチェックする
if ! pgrep -f "$PROCESS_NAME" > /dev/null
その後
echo "Process $PROCESS_NAME is not running, starting..."
# プロセスの開始
eval "$START_COMMAND"
if [ ˶ˆ꒳ˆ˵ ]; then
echo "プロセス︓$PROCESS_NAME が正常に開始されました。"
then echo "プロセス⑬TPROCESS_NAME が正常に開始されました。" else
echo "プロセス $PROCESS_NAME の起動に失敗しました。"
else echo "プロセス ˶TP4TPROCESS_NAME の起動に失敗しました。
echo "プロセス ˶TP4TPROCESS_NAME の起動に失敗しました。" else
echo "プロセス $PROCESS_NAME は既に実行中です。"
fi
EOL
# Step 5: start_ddgchatgo.sh に実行許可を与えます。
chmod +x start_ddgchatgo.sh
# Step 6: start_ddgchatgo.shスクリプトを実行し、ログをstart_ddgchatgo.logに出力する。
nohup /home/your Serv00 username/domains/example.com/public_html/start_ddgchatgo.sh > /home/your Serv00 username/domains/example.com/public_html/start_ddgchatgo.log 2>&1&1
ワンクリックスクリプトhttps://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.2/ddgchatgo-freebsd-amd64
と置き換える。https://github.com/Shadownc/DDG-Chat-go/releases/download/v0.0.4/ddgchatgo-freebsd-amd64
API KEYを設定することができます。
Serv00のユーザー名を自分のものに変更する。
example.comを自分のドメイン名に
PORT 開いているポートが5005でない場合は、変更してください。
配備が完了した後、ドメインにアクセスすると、成功を示す以下のようなメッセージが返される:
{ "メッセージ": "APIへようこそ" }
ビルド後のnewapiへのアクセス
新 api/one api セレクトカスタムチャンネル
http://chat.xxl.serv00.net/v1/chat/completions