このプロジェクトは、大規模な言語モデル機能を活用してコーディングをサポートすることを目的としています。
システムにはクライアントとサーバーが含まれます。クライアント側には、スニペット管理、基本的なチャットボットインターフェイス、モデルの選択、クエリまたはフィードバックモードの選択など、さまざまな興味深い機能があります。サーバー側では、クエリ /フィードバックのロジックが実装されています。Futhermore、Fastapiは、ChatGPT APIとの対話に使用されます。

- ユーザーがコーディングの問題の説明を入力するように促すFastAPIまたはフラスコを使用して、ユーザーフレンドリーなWebインターフェイスを開発します。
- インターフェイスはLLMと対話して、ユーザーの入力に基づいて対応するコードスニペットを生成する必要があります。
フロントエンドは、ChatGpt UIから侵入されています。 WebSocketを使用してバックエンドと対話します。詳細については、フロントエンドはユーザークエリを取得し、WebSocketによってサーバーに送信します。サーバーは、FastAPIストリーミングモードでChatGPTから結果を得て、クライアントに転送します。
- ユーザーが生成されたコードスニペットに関するフィードバックを提供できるようにするfeatuareを組み込みます。
- このフィードバックを利用して、将来の世代を改良します。
ここでは、2つのオプションクエリモードとフィードバックモードがあります。クエリモードでは、コーディングプロンプトは、チェーンオブセーブプロンプトテクニックによって使用されます。フィードバックモードでは、フィードバックプロンプトを使用して、少数のショットプロンプト手法によってユーザーのネガティブフィードバックを改良します(File server/prompts.pyを参照)。
2つのモードを切り替えるには、以下のようなオプションを選択できます。
- ローカルまたはGPUサーバーでカスタムLLMを実行および利用するためのスクリプトを開発します。
custom_llmフォルダーには、 vllmによってカスタムLLMを実行するスクリプトがあります。 UIにURLを入力して[保存]をクリックできます。
さらに、入力テキストボックスの下のオプションから必要なモデルを選択できます。
- dockerfileを提供し、コンテナとしてアプリケーションを構築および実行するための手順を提供します
このプロジェクトは、Dockerfileによる建築サービスをサポートしています。クライアントWebページDockerコンテナを実行するには、実行してください。
cd client/
sudo docker build -t code-supporter-client:latest .
sudo docker run -d -p 8000:80 code-supporter-client:latest
一方、次のようにサーバードッカーコンテナを実行します。
cd server/
sudo docker build -t code-supporter-server:latest .
sudo docker run -p 7999:80 -e OPENAI_API_KEY=sk-... code-supporter-server:latest
簡素化するには、1つのコマンドだけでクライアントとサーバーを実行できます( docker-compose.ymlのOPENAI_API_KEY変更してください):
sudo docker compose up
結局のところ、url http://localhost:8000/ browserにアクセスしてチャットを開始してください!
- 同じインターフェイス内で機能を実装して、以前に生成されたコードスニペットのリストを表示します。
- ユーザーはこれらのスニペットを表示、レビュー、削除できる必要があります
クライアント側は、クライアントのlocalStorageが使用されているスニペット管理を実装します。詳細については、 localStorageキーがconversation_idである辞書で、値は複数回転する収束です。例:会話:

clientとserver 2つのメインフォルダーがあります。最初のものにはHTML/CSS/JavaScriptコードが含まれていますが、コードサポーターWebページをレンダリングするには、Pythonで記述されたサーバーコードが含まれています。
clientフォルダーでは、最も象徴的なコードがjs/chat.jsファイルで、 serverフォルダーのサーバー/クライアントの反復のロジックを処理します。ファイルの使用は次のとおりです。
apps.pyを提供しますrouters :Fastapi WebSocketリクエストとクライアント側でIteractを処理するprompts.py :プロンプトを宣言しますutils.py :いくつかの支持機能