Inspiriert von Yoheina Kajimas Babyagi
Das Babyagi-Chroma-Repository bietet eine kostenlose Vektorspeicherlösung, Chroma, die lokal ausgeführt wird. Dies ist besonders vorteilhaft für Benutzer, die potenzielle Kosten vermeiden möchten, die mit anderen Vektorspeicheroptionen wie Tinecone verbunden sind.
Dieses Python-Skript zeigt ein Beispiel für ein KI-angetriebenes Task-Management-System, das Langchain, OpenAI und Chromas Vektordatenbank nutzt, um Aufgaben zu erstellen, zu priorisieren und auszuführen. Das System erstellt Aufgaben basierend auf den Ergebnissen früherer Aufgaben und eines vordefinierten Ziels. Das Skript verwendet dann Langchains OpenAI Natural Language Processing (NLP) Toolkit- und Suchfunktionen, um neue Aufgaben basierend auf dem Ziel zu erstellen, während Chroma die Aufgabenergebnisse für den Kontext speichert und abruft. Dies ist eine vereinfachte Version des ursprünglichen aufgabenorientierten autonomen Agenten (28. März 2023).
Diese Readme deckt die folgenden Themen ab:
Das Skript führt die folgenden Schritte in einer unendlichen Schleife aus:
Die Ausführungskette verarbeitet eine bestimmte Aufgabe, indem sie das Ziel und den Kontext berücksichtigen. Es verwendet Langchains LLMChain, um die Aufgabe auszuführen. Die Funktion execute_task nimmt eine Chroma -Vektorstore, eine Ausführungskette, ein Ziel und Aufgabeninformationen als Eingabe an. Es ruft eine Liste der Top -K -Aufgaben aus dem Vectorstore basierend auf dem Ziel ab und führt dann die Aufgabe mithilfe der Ausführungskette aus, wodurch das Ergebnis im VectorStore gespeichert wird. Die Funktion gibt das Ergebnis zurück.
Die Ausführungskette ist in diesem Codeblock nicht explizit definiert. Es wird jedoch als Parameter zur execute_task übergeben und kann separat im Code definiert werden. Es ist eine Instanz der LLMChain -Klasse von Langchain, die eine Eingabeaufforderung akzeptiert und eine Antwort basierend auf bereitgestellten Eingabevariablen generiert.
Die TaskCreationChain -Klasse verwendet LLMChain, um neue Aufgaben zu erstellen. Die Funktion from_llm nimmt Parameter mithilfe von fordertemplate von Langchain auf, wobei eine Liste neuer Aufgaben als Zeichenfolgen zurückgegeben wird. Anschließend werden eine Instanz der TaskCreationChain zusammen mit benutzerdefinierten Eingabevariablen und angegebenem Verhalten erstellt.
Die TaskPrioritizationChain -Klasse verwendet LLMChain, um Aufgaben zu priorisieren. Die Funktion from_llm akzeptiert die Parameter über ein promptTemplate von Langchain, wobei eine Liste neuer Aufgaben als Zeichenfolgen zurückgegeben wird. Anschließend erzeugt es eine Instanz von TaskPrioritizationChain zusammen mit benutzerdefinierten Eingangsvariablen und angegebenem Verhalten.
Das Skript nutzt Chroma, um die Ergebnisse der Ähnlichkeitssuche zu speichern und die Aufgabenergebnisse für den Kontext abzurufen. Es erstellt einen Chroma -Index basierend auf dem in der variablen TABLE_NAME angegebenen Tabellennamen. Chroma speichert anschließend die Aufgabenergebnisse zusammen mit dem Aufgabenamen und zusätzlichen Metadaten im Index.
Führen Sie die folgenden Schritte aus: Führen Sie die folgenden Schritte aus:
git clone https://github.com/alexdphan/babyagi-chroma.git und cd in das geklonte Verzeichnis.pip install -r requirements.txt.env.example in .env : cp .env.example .env . Legen Sie die folgenden Variablen in dieser Datei ein.OPENAI_API_KEY und SERPAPI_API_KEY an.TABLE_NAME gespeichert werden.OBJECTIVE Variablen fest.INITIAL_TASK fest.python babyagi-chroma.py aus.Alle optionalen Werte oben können auch in der Befehlszeile angegeben werden.
Dieses Skript funktioniert mit allen OpenAI -Modellen. Das Standardmodell ist GPT-3.5 (Text-Davinci-003) . Um ein anderes Modell zu verwenden, können Sie den Code entsprechend ändern.
Dieses Skript wurde so konzipiert, dass sie als Teil eines Aufgabenverwaltungssystems kontinuierlich ausgeführt werden. Das kontinuierliche Ausführen des Skripts kann zu einer hohen API -Verwendung führen. Verwenden Sie es daher verantwortungsbewusst. Darüber hinaus verlangt das Skript, dass die OpenAI -API und die SERP korrekt eingerichtet werden. Stellen Sie daher sicher, dass die APIs vor dem Ausführen des Skripts konfiguriert werden.
Um die Einfachheit aufrechtzuerhalten, halten Sie sich bitte an die folgenden Richtlinien ein, wenn Sie PRS einreichen:
Da die Kosten für die vektorische Lagerung teuer waren, war es Ziel, bei der Verwendung von Babyagi eine kostenlose Speicheroption bereitzustellen. Daher zeigt dieses Vorlagebeispiel die Verwendung von Babyagi mit Chroma.
Babyagi-Chroma ist eine abgerundete Version von Babyagi, eine vereinfachte Version des ursprünglichen aufgabenorientierten autonomen Agenten (28. März 2023), das auf Twitter geteilt wird.