Griptape ist ein modulares Python-Framework zum Erstellen von AI-betriebenen Anwendungen, die sich sicher mit Ihren Unternehmensdaten und -APIs verbinden. Es bietet Entwicklern die Möglichkeit, bei jedem Schritt die Kontrolle und Flexibilität aufrechtzuerhalten.
Aufgaben sind die Kernbausteine innerhalb von Strukturen und ermöglichen die Interaktion mit Motoren, Werkzeugen und anderen Griptape -Komponenten.
Tools bieten Funktionen für LLMs zur Interaktion mit Daten und Diensten. Griptape enthält eine Vielzahl integrierter Werkzeuge und erleichtert das Erstellen benutzerdefinierter Werkzeuge.
Die Fahrer ermöglichen die Interaktionen mit externen Ressourcen und Dienstleistungen:
Motoren wickeln Treiber ein und liefern Anwendungsfall-spezifische Funktionen:
Weitere Informationen finden Sie in Griptape -Dokumenten für:
Bitte schauen Sie sich die Griptape Trade School für kostenlose Online -Kurse an.
Installieren Sie zunächst Griptape :
pip install "griptape[all]" -U
Zweitens konfigurieren Sie einen OpenAI -Client, indem Sie einen API -Schlüssel erhalten und Ihre Umgebung als OPENAI_API_KEY hinzufügen. Standardmäßig verwendet Griptape die OpenAI -Chat -API -API, um LLM -Eingabeaufforderungen auszuführen.
Mit Griptape können Sie Strukturen wie Agenten, Pipelines und Workflows erstellen, die aus verschiedenen Arten von Aufgaben bestehen. Erstellen wir einen einfachen kreativen Agenten, der dynamisch drei Tools verwendet und die Daten im Aufgabenspeicher bewegt.
from griptape . structures import Agent
from griptape . tools import WebScraperTool , FileManagerTool , PromptSummaryTool
agent = Agent (
input = "Load {{ args[0] }}, summarize it, and store it in a file called {{ args[1] }}." ,
tools = [
WebScraperTool ( off_prompt = True ),
PromptSummaryTool ( off_prompt = True ),
FileManagerTool ()
]
)
agent . run ( "https://griptape.ai" , "griptape.txt" )Und hier ist die Ausgabe:
[08/12/24 14:48:15] INFO ToolkitTask c90d263ec69046e8b30323c131ae4ba0
Input: Load https://griptape.ai, summarize it, and store it in a file called griptape.txt.
[08/12/24 14:48:16] INFO Subtask ebe23832cbe2464fb9ecde9fcee7c30f
Actions: [
{
"tag": "call_62kBnkswnk9Y6GH6kn1GIKk6",
"name": "WebScraperTool",
"path": "get_content",
"input": {
"values": {
"url": "https://griptape.ai"
}
}
}
]
[08/12/24 14:48:17] INFO Subtask ebe23832cbe2464fb9ecde9fcee7c30f
Response: Output of "WebScraperTool.get_content" was stored in memory with memory_name "TaskMemory" and artifact_namespace
"cecca28eb0c74bcd8c7119ed7f790c95"
[08/12/24 14:48:18] INFO Subtask dca04901436d49d2ade86cd6b4e1038a
Actions: [
{
"tag": "call_o9F1taIxHty0mDlWLcAjTAAu",
"name": "PromptSummaryTool",
"path": "summarize",
"input": {
"values": {
"summary": {
"memory_name": "TaskMemory",
"artifact_namespace": "cecca28eb0c74bcd8c7119ed7f790c95"
}
}
}
}
]
[08/12/24 14:48:21] INFO Subtask dca04901436d49d2ade86cd6b4e1038a
Response: Output of "PromptSummaryTool.summarize" was stored in memory with memory_name "TaskMemory" and artifact_namespace
"73765e32b8404e32927822250dc2ae8b"
[08/12/24 14:48:22] INFO Subtask c233853450fb4fd6a3e9c04c52b33bf6
Actions: [
{
"tag": "call_eKvIUIw45aRYKDBpT1gGKc9b",
"name": "FileManagerTool",
"path": "save_memory_artifacts_to_disk",
"input": {
"values": {
"dir_name": ".",
"file_name": "griptape.txt",
"memory_name": "TaskMemory",
"artifact_namespace": "73765e32b8404e32927822250dc2ae8b"
}
}
}
]
INFO Subtask c233853450fb4fd6a3e9c04c52b33bf6
Response: Successfully saved memory artifacts to disk
[08/12/24 14:48:23] INFO ToolkitTask c90d263ec69046e8b30323c131ae4ba0
Output: The content from https://griptape.ai has been summarized and stored in a file called `griptape.txt`.
Während des Auslaufs lud der Griptape -Agent eine Webseite mit einem Tool, speicherte seinen vollständigen Inhalt im Aufgabenspeicher, beantwortete die ursprüngliche Frage und speichert schließlich die Antwort auf eine Datei.
Das Wichtigste hier ist, dass die Webseite, egal wie groß die Webseite ist, niemals die schnelle Token -Grenze in die Luft jagen kann, da der vollständige Inhalt der Seite nie wieder auf die LLM zurückgeht. Zusätzlich wurden auch keine Daten aus den nachfolgenden Unteraufnehmern wieder zur Eingabeaufforderung zurückgegeben. Wie funktioniert es?
Im obigen Beispiel haben wir uns auf True ausgesetzt, was bedeutet, dass die LLM niemals die Daten sehen kann, die sie manipuliert, sie aber an andere Tools senden kann.
Wichtig
In diesem Beispiel wird das Toolkittask von Griptape verwendet, für das ein hochkarätiges LLM korrekt funktioniert. Standardmäßig verwendet Griptape den OpenaichatpromptDriver. Für einen weiteren leistungsstarken LLM versuchen Sie, gegen den Anthropicpromptdriver zu tauschen! Wenn Sie ein weniger leistungsstarkes LLM verwenden, sollten Sie stattdessen die Tooltask verwenden, da das ToolkitTask möglicherweise nicht ordnungsgemäß oder überhaupt nicht funktioniert.
Schauen Sie sich unsere Dokumente an, um mehr darüber zu erfahren, wie Sie Griptape mit anderen LLM -Anbietern wie anthropisch, Claude, umarmtem Gesicht und Azure verwenden können.
Griptape befindet sich in ständiger Entwicklung und seine APIs und Dokumentationen können sich ändern. Bis wir die API stabilisieren und Version 1.0.0 veröffentlichen, werden wir kleinere Versionen (dh, XYZ) verwenden, um Funktionen und Bruchfunktionen sowie Patch -Versionen (dh XYZ) für Fehlerbehebungen einzuführen.
Vielen Dank, dass Sie überlegt haben, zu Griptape beizutragen! Bevor Sie beginnen, lesen Sie bitte die folgenden Richtlinien.
Wenn Sie einen Fehler identifiziert haben, eine neue Funktion vorschlagen oder eine Frage haben möchten, senden Sie bitte ein Problem über unseren öffentlichen Problem Tracker. Bevor Sie ein neues Problem einreichen, überprüfen Sie bitte die vorhandenen Probleme, um sicherzustellen, dass sie zuvor nicht gemeldet oder besprochen wurde.
Wir begrüßen und ermutigen Pull -Anfragen. Um den Prozess zu optimieren, befolgen Sie bitte die folgenden Richtlinien:
Bestehende Ausgaben: Bitte senden Sie Pull -Anfragen nur für bestehende Probleme. Wenn Sie an neuen Funktionen arbeiten oder einen Fehler beheben möchten, der noch nicht behandelt wurde, senden Sie bitte zunächst ein Problem. Auf diese Weise kann das Griptape -Team die Anfrage intern bearbeiten und eine öffentliche Antwort geben.
Zweigstelle: Senden Sie alle Zuganfragen an die dev . Dies hilft uns, Änderungen zu verwalten und sie reibungslos zu integrieren.
Unit -Tests: Stellen Sie sicher, dass Ihre Pull -Anfrage alle vorhandenen Unit -Tests bestehen. Wenn Sie einen neuen Code einführen, fügen Sie außerdem neue Unit -Tests hinzu, um deren Funktionalität zu validieren.
Rennen Sie make test/unit um die Testsuite lokal auszuführen.
Rennen Sie make docs , um die Dokumentation lokal zu erstellen.
Ausführen make check , um alle Codeprüfungen lokal auszuführen.
Die Erweiterbarkeit von Griptape ermöglicht es jedem, die Funktionalität unabhängig zu entwickeln und zu verteilen. Alle neuen Integrationen, einschließlich Tools, Treiber, Aufgaben usw., sollten zunächst als Erweiterungen entwickelt werden und können dann in den Griptape -Kern stromaufwärts gelegen werden, wenn er diskutiert und genehmigt wird.
Die Griptape-Erweiterungsvorlage bietet die empfohlene Struktur, Schritt-für-Schritt-Anweisungen, grundlegende Automatisierung und Verwendungsbeispiele für neue Integrationen.
Installieren Sie alle Abhängigkeiten per Make:
make installOder installieren Sie, indem Sie die Gedichte direkt aufrufen:
poetry install --all-extras --with dev --with test --with docsKonfigurieren Sie die Vorkommot, um sicherzustellen, dass Ihr Code korrekt formatiert ist, und gibt alle Überprüfungen durch:
poetry run pre-commit installGriptape ist unter der Apache 2.0 -Lizenz verfügbar.