ChatGPT-Plus は、公式 ChatGPT API を使用するアプリケーションです。
デモのデモンストレーション/問題のフィードバック/Gitpod の開発/Vercel のデプロイ
簡体字中国語 |
このプロジェクトが気に入りましたか?スターをお願いします ️
または、友達と共有して改善に協力してください。
ChatGPT-Plus クライアントは、公式 ChatGPT API のアプリケーションです。このアプリはOpenAIのChatGPTの公式APIのラッパーアプリです。
このモジュールにアクセスするには 2 つの方法があります。Node.js でこのモジュールを使用するには、次の 2 つの方法から選択する必要があります。
方法 | 無料? | 屈強? | 品質? |
---|---|---|---|
ChatGPTAPI | いいえ | ✅ はい | ✅️リアルChatGPTモデル |
ChatGPTUnofficialProxyAPI | ✅ はい | ☑️おそらく | ✅ リアルチャットGPT |
ChatGPTAPI
- 公式 OpenAI チャット完了 API (公式の強力なメソッドですが、無料ではありません) でgpt-3.5-turbo-0301
モデルを使用します。モデル、完了パラメータ、システム メッセージをオーバーライドして、アシスタントを完全にカスタマイズできます。
ChatGPTUnofficialProxyAPI
- 非公式のプロキシ サーバーを使用して、Cloudflare をバイパスする方法で ChatGPT のバックエンド API にアクセスします (軽量ですが、サードパーティのサーバーに依存し、レート制限がある本物の ChatGPT を使用します)。
これら 2 つのメソッドは非常によく似た API を備えているため、これらのメソッド間の切り替えは簡単です。
注: ChatGPTAPI
は OpenAI の公式にサポートされている API を使用するため、使用することを強くお勧めします。将来のリリースでは、 ChatGPTUnofficialProxyAPI
のサポートを中止する可能性があります。
リクエスト原理は、chatgpt-api が提供する関数モジュールを使用します。
オンライン開発には Gitpod を使用できます。
または、ローカル開発環境にクローンを作成し、次の手順に従います。
# clone the project
git clone https://github.com/zhpd/chatgpt-plus.git
git 環境がない場合は、zip パッケージを直接ダウンロードして解凍し、プロジェクト ディレクトリに移動します。
このプロジェクトは Node.js に基づいて開発されており、Node.js 14.0 以降の環境が必要です。
fetch
が利用できるようにnode >= 18
を使用していることを確認してください (フェッチ ポリフィルをインストールしている場合はnode >= 14
)。
本プロジェクトはOpenAIが公式に提供するAPIを使用しており、API KeyとAccessTokenの申請が必要となります。
- OpenAI正式登録申請アドレス:https://platform.openai.com/、学術インターネットへのアクセスが必要です
- 他の方法で
ApiKey
またはAccessToken
を取得します。 クリックして表示します。
アプリケーションが成功したら、APIKey と AccessToken をchatgpt-plus/service/.env
ファイルに入力します。
開発には VSCode エディターを使用し、プラグイン
ESLint
およびPrettier
インストールし、設定でFormat On Save
オンにすることをお勧めします。
ルート ディレクトリ .env でポートとインターフェイス要求アドレスを構成します。 ルート ディレクトリにある .env.example ファイルを直接コピーして変更し、ファイル名を .env に変更できます)。
環境変数名 | デフォルト値 | 説明する |
---|---|---|
PORT | 3000 | ポート |
NEXT_PUBLIC_API_URL | http://localhost:3002 | インターフェースアドレス |
ルート ディレクトリにある .env.example ファイルを直接コピーして変更し、ファイル名を .env に変更できます。
# port
PORT = 3000
# api url
NEXT_PUBLIC_API_URL = http://localhost:3002
# enter the project directory
cd chatgpt-plus
# install dependency
npm install
# develop
npm run dev
操作が正常に開始されたら、ブラウザで http://localhost:3000 を開いて効果を確認できます。
サービス ディレクトリの .env でポート、ApiKey、AccessToken を構成します。
環境変数名 | デフォルト値 | 説明する |
---|---|---|
PORT | 3002 | ポート |
OPENAI_API_KEY | - | API_KEY |
OPENAI_ACCESS_TOKEN | - | ACCESS_TOKEN |
API_REVERSE_PROXY | https://api.pawan.krd/backend-api/conversation | 演技 |
TIMEOUT_MS | 60000 | ミリ秒単位のタイムアウト |
サービス ディレクトリ内の .env.example ファイルを変更のために直接コピーし、ファイル名を .env に変更できます。
# service/.env
# OpenAI API Key - https://platform.openai.com/overview
OPENAI_API_KEY =
# change this to an `accessToken` extracted from the ChatGPT site's `https://chat.openai.com/api/auth/session` response
OPENAI_ACCESS_TOKEN =
# Reverse Proxy default 'https://bypass.churchless.tech/api/conversation'
API_REVERSE_PROXY =
# timeout
TIMEOUT_MS = 100000
# enter the project directory
cd chatgpt-plus
# enter the service directory
cd service
# install dependency
npm install
# develop
npm run dev
操作が正常に開始されると、バックエンド サービスは正常に実行できるようになります。
Docker を使用してデプロイするには、Docker 環境をインストールする必要があります
docker-compose フォルダー内の構成ファイルを使用してプルして実行します
Vercel を使用した展開、ワンクリック展開
.env
ファイル内のAPI_URL
、実際のバックエンド インターフェイスのパブリック ネットワーク アドレスに変更します。npm install
実行して依存関係をインストールしますnpm run build
実行してコードをパッケージ化するdist
フォルダー内のファイルを Web サイトの前端服务
のディレクトリにコピーします。dist
フォルダに入るnpm run start
実行してサービスを開始しますservice
フォルダーに入るnpm install
実行して依存関係をインストールしますnpm run build
実行してコードをパッケージ化するservice/dist
フォルダー内のファイルを Web サイトの后端服务
のディレクトリにコピーします。service/dist
フォルダーを入力します。npm run start
実行してサービスを開始します注: パッケージ化したくない場合は、
service
フォルダーをサーバーに直接コピーし、npm install
およびnpm run start
を実行してサービスを開始できます。
これにアクセスするには、 OPENAI_API_KEY
キーをバックエンド service.env に設定します。
# R OpenAI API Key
OPENAI_API_KEY =
このプロジェクトはOpenAIが公式に提供しているAPIを使用しています。まずOpenAIアカウントを申請する必要があります。
OPENAI_ACCESS_TOKEN
アクセス トークンをバックエンド service.env に設定することでアクセスできます。
# change this to an `accessToken` extracted from the ChatGPT
OPENAI_ACCESS_TOKEN =
ChatGPT Web アプリケーションから OpenAI アクセス トークンを取得する必要があります。次のいずれかの方法を使用できます。この方法ではemail
とpassword
必要になり、アクセス トークンが返されます。
これらのライブラリは、電子メールとパスワードで認証されるアカウントで動作します (たとえば、Microsoft/Google で認証されたアカウントはサポートされません)。
あるいは、ChatGPT Web アプリケーションにログインしてhttps://chat.openai.com/api/auth/session
を開くことで、 accessToken
手動で取得することもできます。これにより、 accessToken
文字列を含む JSON オブジェクトが返されます。
アクセス トークンの有効期間は数日間です。
注: リバース プロキシを使用すると、アクセス トークンが第三者に公開されます。これによる悪影響はありませんが、この方法を使用する前にリスクを考慮してください。
バックエンド service.env でAPI_REVERSE_PROXY
プロキシ アドレスを構成することで、リバース プロキシをオーバーライドできます。
# Reverse Proxy
API_REVERSE_PROXY =
コミュニティ メンバーによって実行されている既知のリバース プロキシには次のものがあります。
リバースプロキシURL | 著者 | レート制限 | 最終チェック日 |
---|---|---|---|
https://bypass.churchless.tech/api/conversation | @acheong08 | IPによる5リクエスト/10秒 | 2023 年 3 月 24 日 |
https://api.pawan.krd/backend-api/conversation | @pawanosman | 50 リクエスト / 15 秒 (~3 r/s) | 2023 年 3 月 23 日 |
注: OpenAI によるアクセスの無効化を防ぐため、リバース プロキシの動作に関する情報は現在公開されていません。
Q: フロントエンド ページのみを使用する場合、リクエスト インターフェイスはどこで変更すればよいですか?
A: ルート ディレクトリの.env
ファイルのAPI_URL
フィールド。
Q: フロントエンドにはタイプライター効果はありませんか?
A: 考えられる理由の 1 つは、Nginx リバース プロキシとバッファがオンになった後、Nginx がブラウザに送信する前にバックエンドからの一定サイズのデータをバッファしようとすることです。アンチパラメータの後にproxy_buffering off;
を追加してから、Nginx をリロードしてみてください。他の Web サーバーの構成も同様です。
貢献してくれた皆さんに感謝します!
このプロジェクトが役立つと思われる場合は、スターを付けたり、友達と共有したりしてください。あなたのサポートが私の最大のモチベーションです。
MIT © zhpd