Griptape es un marco modular de Python para construir aplicaciones con AI que se conectan de forma segura a sus datos y API empresariales. Ofrece a los desarrolladores la capacidad de mantener el control y la flexibilidad en cada paso.
Las tareas son los bloques de construcción centrales dentro de las estructuras, lo que permite la interacción con motores, herramientas y otros componentes de Griptape.
Las herramientas proporcionan capacidades para que los LLM interactúen con datos y servicios. Griptape incluye una variedad de herramientas incorporadas y facilita la creación de herramientas personalizadas.
Los conductores facilitan las interacciones con recursos y servicios externos:
Los motores envuelven controladores y proporcionan una funcionalidad específica de casos de uso:
Consulte los documentos de Griptape para:
Consulte la escuela de comercio de Griptape para obtener cursos en línea gratuitos.
Primero, instale GRIPTAPE :
pip install "griptape[all]" -U
En segundo lugar, configure un cliente Operai obteniendo una tecla API y agregándola a su entorno como OPENAI_API_KEY . De forma predeterminada, Griptape utiliza la API de finalización de chat de OpenAI para ejecutar las indicaciones LLM.
Con Greiptape, puede crear estructuras, como agentes, tuberías y flujos de trabajo, compuestos por diferentes tipos de tareas. Construyamos un agente creativo simple que use dinámicamente tres herramientas y mueva los datos en la memoria de tareas.
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" )Y aquí está la salida:
[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`.
Durante la ejecución, el agente de Griptape cargó una página web con una herramienta, almacenó su contenido completo en la memoria de tareas, lo consultó para responder la pregunta original y finalmente guardó la respuesta a un archivo.
Lo importante a tener en cuenta aquí es que no importa cuán grande sea la página web, nunca puede explotar el límite de token rápido porque el contenido completo de la página nunca se remonta al LLM. Además, tampoco se devolvieron los datos de las subtareas posteriores a la solicitud. Entonces, ¿cómo funciona?
En el ejemplo anterior, configuramos OFF_PROMPT a True , lo que significa que el LLM nunca puede ver los datos que manipula, pero puede enviarlos a otras herramientas.
Importante
Este ejemplo utiliza ToolKitTask de Griptape, que requiere un LLM altamente capaz para funcionar correctamente. De forma predeterminada, Griptape usa OpenAICHATPROMPTDRIVER; ¡Para otro poderoso LLM, intente intercambiar al AnthropicPromptRiver! Si está utilizando un LLM menos potente, considere usar ToolTask en su lugar, ya que la ToolkitTask podría no funcionar correctamente o en absoluto.
Consulte nuestros documentos para obtener más información sobre cómo usar Griptape con otros proveedores de LLM como Anthrope, Claude, Abrazing Face y Azure.
Griptape está en desarrollo constante y sus API y documentación están sujetas a cambios. Hasta que estabilizamos la API y lanzamos la versión 1.0.0, utilizaremos versiones menores (es decir, XYZ) para introducir características y funciones de ruptura, y versiones de parche (es decir, XYZ) para las correcciones de errores.
¡Gracias por considerar contribuir a Griptape! Antes de comenzar, lea las siguientes pautas.
Si ha identificado un error, desea proponer una nueva característica o tener una pregunta, envíe un problema a través de nuestro rastreador de problemas públicos. Antes de enviar un nuevo problema, verifique los problemas existentes para asegurarse de que no se haya informado o discutido antes.
Agradecemos y alentamos las solicitudes de extracción. Para optimizar el proceso, siga estas pautas:
Problemas existentes: envíe solicitudes de extracción solo para problemas existentes. Si desea trabajar en una nueva funcionalidad o solucionar un error que aún no se ha abordado, primero envíe un problema. Esto permite que el equipo de Griptape procese internamente la solicitud y proporcione una respuesta pública.
Rama: envíe todas las solicitudes de extracción a la rama dev . Esto nos ayuda a administrar los cambios e integrarlos sin problemas.
Pruebas unitarias: asegúrese de que su solicitud de extracción pase todas las pruebas unitarias existentes. Además, si está presentando un nuevo código, incluya nuevas pruebas unitarias para validar su funcionalidad.
Ejecute make test/unit para ejecutar el conjunto de pruebas localmente.
Ejecute make docs para construir la documentación localmente.
Ejecutar make check para ejecutar todas las verificaciones de código localmente.
La extensibilidad de Griptape permite a cualquier persona desarrollar y distribuir la funcionalidad de forma independiente. Todas las nuevas integraciones, incluidas las herramientas, los controladores, las tareas, etc., deben desarrollarse inicialmente como extensiones y luego se pueden aguastar en GRIPTAPE Core si se discute y aprobado.
La plantilla de extensión de Griptape proporciona la estructura recomendada, las instrucciones paso a paso, la automatización básica y los ejemplos de uso para nuevas integraciones.
Instale todas las dependencias a través de la marca:
make installO instalar llamando a poesía directamente:
poetry install --all-extras --with dev --with test --with docsConfigure el pre-Commit para asegurarse de que su código esté formateado correctamente y pase todas las verificaciones:
poetry run pre-commit installGRIPTAPE está disponible bajo la licencia Apache 2.0.