このプロジェクトは AutoGen の小さなラッパーです。 LiteLLM プロキシ サーバーを統合することで、快適な端末から離れることなく、あらゆる LLM (プロプライエタリまたはオープン ソース) に簡単にアクセスできるようになります。
これは、Rich ライブラリと Prompt_toolkit ライブラリを使用して入力/出力を色付けし、プレーンなターミナルでの大きな応答の読み取りをもう少し理解しやすくします。
入力: 出力
このセクションでは、このプロジェクトで作業するための開発環境をセットアップする方法について説明します。
始める前に、Python のバージョンと環境を管理するためにpyenv
またはconda
システムにインストールされていることを確認してください。
このプロジェクトは Python 3.11.8
でテストされています。互換性の問題を避けるために、この特定のバージョンを使用することをお勧めします。
pyenv
使用している場合は、次のコマンドを使用して Python 3.11.8
をインストールし、プロジェクトのローカル バージョンとして設定できます。
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
conda
使用する場合は、次のコマンドを使用して Python 3.11.8
で新しい環境を作成します。
conda create --name myenv python=3.11.8
conda activate myenv
myenv
環境用に選択した名前に置き換えます。
正しいバージョンの Python をセットアップしたら、以下を実行してプロジェクトの依存関係をインストールします。
pip install -e .
また、適切なコスト監視と使用状況統計を提供する litellm プロキシ ダッシュボード UI をセットアップして使用する予定がある場合は、次の方法で追加の依存関係をインストールします。
pip install -e ' .[proxy] '
.env.secrets.example
ファイルをコピーして独自の.env.secrets
ファイルを作成し、OpenAI、MistralAI、Anthropic モデルなど、使用する予定のサービスの特定の API キーを入力します。
cp .env.secrets.example .env.secrets
好みのテキスト エディターで.env.secrets
ファイルを編集し、必要に応じて API キーを更新します。
まず、litellm からの使用状況情報を保存するために postgres DB をセットアップする必要があります。これを行う最も簡単な方法は、AWS でホストされる無料の Superbase postgres インスタンスを作成することです。
DB を使用する準備ができたら、接続できることを確認します
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
接続が成功したら、 .env.secrets
ファイルにDATABASE_URL
環境変数を設定するだけで準備完了です。次回、litellm サーバーを起動すると、自動的に DB に接続されます。
これらの手順を完了すると、プロジェクトで作業し、アプリケーションを実行する準備が整います。
次のコマンドを実行します
python setup.py fix
python setup.py review --file path/to/file
LiteLLM の強みの 1 つは、優れた機能の中でもさまざまな LLM を呼び出すための統合インターフェイスを提供していることです。このコンテキストでは、他の AI モデルを使用できるように AutoGen の機能を拡張します (これは現在、そのままではサポートされておらず、WIP です)。
python setup.py litellm
Autogen は優れた UI も提供します。
次のコマンドは、AGS アプリを起動し、http://localhost:8083 で UI を利用できるようにします。 AGS sqlite DB は、他の関連アーティファクトとともにsrc/ui
に保存されます。
python setup.py ui
デフォルトでは、OpenAI モデルのリクエストは litellm を介してルーティングされません。これは、この LLM プロバイダーのみを使用している場合、https://platform.openai.com/usage でコストを簡単に監視できるため、追加のレイヤーを追加することに意味がないからです。ただし、複数の LLM プロバイダーを使用する場合は、すべてのデータを 1 つのダッシュボード -> LiteLLM UI
内に集約することが合理的です。
LiteLLM プロキシ サーバーが稼働している場合、すべての openai リクエストは自動的にプロキシ経由でルーティングされます。
手順:
環境と構成をセットアップしたら、 src/applications/
ディレクトリ内のアプリケーションを実行できます。
アプリケーションを実行すると、そのアプリで定義されたフローに基づいて新しい会話セッションが作成されます。
一般的な会話アプリは 2 つあります。
start_conversation.py
事前定義された専門エージェントのリストから選択されたエージェントとの簡単な会話を開始します。start_curated_conversation.py
メインエージェントの主張をレビューする批評家 AI を会話に追加します新しいカスタム エージェントは、エージェント定義ファイルagents/custom_agents.py
に追加できます。
各アプリケーション内でmessage
微調整することも、スクリプトを実行してコマンド ラインにプロンプトを入力することもできます (推奨)。プロンプトは複数行をサポートしているため、 Enter
新しい行を挿入するだけです。プロンプトを送信するには、 (Meta|Esc)+Enter
押します。
python chef.py
chef.py
アプリケーションは、エージェントを使用して料理に関する会話を促進する方法を示しています。複数のエージェントとのグループ チャットのセットアップと、ユーザーのクエリによるチャットの開始を示しています。
ollama run codellama
litellm_config.yml
ファイルを更新して、新しいローカル モデル参照または Mistral AI などの他の API サービスへの参照を含めます。その他の人気モデル: https://huggingface.co/WizardLM