Dieses Projekt ist ein kleiner Wrapper für AutoGen. Es integriert den LiteLLM-Proxyserver, um Ihnen einfachen Zugriff auf jedes LLM (proprietär oder Open Source) zu ermöglichen, ohne den Komfort Ihres Terminals verlassen zu müssen.
Es verwendet die Rich- und prompt_toolkit-Bibliotheken, um Ein-/Ausgaben einzufärben, was das Lesen großer Antworten in einem einfachen Terminal etwas leichter verständlich macht:
Eingabe: Ausgabe
In diesem Abschnitt finden Sie Anweisungen zum Einrichten Ihrer Entwicklungsumgebung für die Arbeit an diesem Projekt.
Bevor Sie beginnen, stellen Sie sicher, dass auf Ihrem System entweder pyenv
oder conda
installiert ist, um Python-Versionen und -Umgebungen zu verwalten.
Dieses Projekt wurde mit Python 3.11.8
getestet. Es wird empfohlen, diese spezielle Version zu verwenden, um Kompatibilitätsprobleme zu vermeiden.
Wenn Sie pyenv
verwenden, können Sie Python 3.11.8
installieren und es mit den folgenden Befehlen als lokale Version für das Projekt festlegen:
pyenv install 3.11.8
pyenv local 3.11.8
pyenv virtualenv myenv
Wenn Sie conda
bevorzugen, erstellen Sie mit dem folgenden Befehl eine neue Umgebung mit Python 3.11.8
:
conda create --name myenv python=3.11.8
conda activate myenv
Ersetzen Sie myenv
durch einen Namen Ihrer Wahl für die Umgebung.
Sobald Sie die richtige Version von Python eingerichtet haben, installieren Sie die Projektabhängigkeiten, indem Sie Folgendes ausführen:
pip install -e .
Wenn Sie auch die Benutzeroberfläche des Litellm-Proxy-Dashboards einrichten und verwenden möchten, die eine übersichtliche Kostenüberwachung und Nutzungsstatistiken bietet, installieren Sie die zusätzlichen Abhängigkeiten über:
pip install -e ' .[proxy] '
Kopieren Sie die Datei .env.secrets.example
, um Ihre eigene Datei .env.secrets
zu erstellen, und geben Sie Ihre spezifischen API-Schlüssel für Dienste ein, die Sie verwenden möchten, z. B. OpenAI, MistralAI, Anthropic-Modelle oder andere.
cp .env.secrets.example .env.secrets
Bearbeiten Sie die Datei .env.secrets
mit Ihrem bevorzugten Texteditor und aktualisieren Sie die API-Schlüssel nach Bedarf.
Zuerst müssen Sie eine Postgres-Datenbank einrichten, um Nutzungsinformationen von litellm zu speichern. Der einfachste Weg, dies zu tun, besteht darin, eine kostenlose Superbase-Postgres-Instanz zu erstellen, die bei AWS gehostet wird.
Sobald die Datenbank einsatzbereit ist, stellen Sie sicher, dass Sie eine Verbindung herstellen können
psql postgresql:// < user > : < password > @ < host > : < port > / < dbname >
Wenn die Verbindung erfolgreich ist, legen Sie einfach die Umgebungsvariable DATABASE_URL
in Ihrer .env.secrets
Datei fest und schon kann es losgehen. Wenn Sie den Litellm-Server das nächste Mal starten, stellt er automatisch eine Verbindung zur Datenbank her.
Mit diesen Schritten sollten Sie bereit sein, an dem Projekt zu arbeiten und die Anwendungen auszuführen.
Führen Sie den folgenden Befehl aus
python setup.py fix
python setup.py review --file path/to/file
Eine der Stärken von LiteLLM ist, dass es neben anderen coolen Funktionen eine einheitliche Schnittstelle zum Aufrufen verschiedener LLMs bietet. In diesem Zusammenhang erweitern wir die Fähigkeiten von AutoGen, um andere KI-Modelle zu verwenden (was derzeit nicht standardmäßig unterstützt wird, aber noch in Arbeit ist).
python setup.py litellm
Autogen bietet auch eine übersichtliche Benutzeroberfläche.
Der folgende Befehl startet die AGS-App und stellt die Benutzeroberfläche unter http://localhost:8083 zur Verfügung. Die AGS-SQLite-Datenbank wird zusammen mit anderen zugehörigen Artefakten in src/ui
gespeichert.
python setup.py ui
Standardmäßig werden OpenAI-Modellanfragen nicht über litellm weitergeleitet. Denn wenn Sie nur diesen LLM-Anbieter nutzen, macht es keinen Sinn, eine zusätzliche Ebene hinzuzufügen, da Sie die Kosten einfach unter https://platform.openai.com/usage überwachen können. Wenn Sie jedoch mehrere LLM-Anbieter nutzen, ist es sinnvoll, alle Daten in einem einzigen Dashboard zu aggregieren -> LiteLLM UI
.
Wenn der LiteLLM-Proxyserver aktiv ist, werden alle OpenAI-Anfragen automatisch über den Proxy weitergeleitet.
Schritte:
Nachdem Sie die Umgebung und Konfiguration eingerichtet haben, können Sie die Anwendungen im Verzeichnis src/applications/
ausführen.
Durch die Ausführung einer Anwendung wird eine neue Konversationssitzung basierend auf dem in dieser App definierten Ablauf erstellt.
Es gibt zwei generische Konversations-Apps:
start_conversation.py
startet eine einfache Konversation mit einem ausgewählten Agenten aus einer Liste vordefinierter spezialisierter Agenten.start_curated_conversation.py
fügt der Konversation eine Kritiker-KI hinzu, die die Behauptungen des Hauptagenten überprüft Neue benutzerdefinierte Agenten können in der Agentendefinitionsdatei agents/custom_agents.py
hinzugefügt werden.
Sie können entweder die message
in jeder Anwendung anpassen oder das Skript ausführen und Ihre Eingabeaufforderung in die Befehlszeile eingeben (empfohlen). Eingabeaufforderungen unterstützen mehrzeilige Eingaben, sodass Enter
einfach eine neue Zeile einfügt. Um die Eingabeaufforderung zu senden, drücken Sie (Meta|Esc)+Enter
.
python chef.py
Die Anwendung chef.py
demonstriert, wie man mithilfe von Agenten ein Gespräch über das Kochen erleichtert. Es zeigt den Aufbau eines Gruppenchats mit mehreren Agenten und die Initiierung eines Chats mit einer Benutzeranfrage.
ollama run codellama
litellm_config.yml
, um die neuen lokalen Modellverweise oder Verweise auf andere API-Dienste wie Mistral AI zu enthalten.Weitere beliebte Modelle: https://huggingface.co/WizardLM