Griptape-это модульная структура Python для создания приложений с AI, которые безопасно подключаются к вашим предприятию и API. Он предлагает разработчикам возможность поддерживать контроль и гибкость на каждом шаге.
Задачи - это основные строительные блоки в структурах, обеспечивая взаимодействие с двигателями, инструментами и другими компонентами Griptape.
Инструменты предоставляют возможности для LLM для взаимодействия с данными и услугами. Griptape включает в себя различные встроенные инструменты и позволяет легко создавать пользовательские инструменты.
Водители облегчают взаимодействие с внешними ресурсами и услугами:
Двигатели обертывают драйверы и предоставляют функциональность, специфичную для использования:
Пожалуйста, обратитесь к документам Griptape для:
Пожалуйста, ознакомьтесь с Griptape Trade School для бесплатных онлайн -курсов.
Сначала установите Griptape :
pip install "griptape[all]" -U
Во -вторых, настройте клиент Openai, получив ключ API и добавив его в вашу среду как OPENAI_API_KEY . По умолчанию Griptape использует API API openai chatk для выполнения подсказок LLM.
Благодаря Griptape вы можете создавать структуры, такие как агенты, трубопроводы и рабочие процессы, состоящие из различных типов задач. Давайте создадим простого креативного агента, который динамически использует три инструмента и перемещает данные в памяти задач.
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" )И вот выход:
[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`.
Во время запуска агент Griptape загрузил веб -страницу с инструментом, сохранил свой полный контент в памяти задач, запросил ее, чтобы ответить на исходный вопрос и, наконец, сохранил ответ в файл.
Здесь важно отметить, что независимо от того, насколько велика веб -страница, она никогда не может взорвать предел токена, потому что полное содержание страницы никогда не возвращается к LLM. Кроме того, данные из последующих подзадач не были возвращены обратно в подсказку. Итак, как это работает?
В приведенном выше примере мы поставили OFF_PROMPT True , что означает, что LLM никогда не сможет увидеть данные, которые он манипулирует, но может отправить их другим инструментам.
Важный
В этом примере используется Toolkittask Griptape, который требует высокопоставленного LLM для правильной функции. По умолчанию Griptape использует OpenAichatPromptdriver; Для другого мощного LLM попробуйте заменить на антропнопромпдривер! Если вы используете менее мощный LLM, вместо этого подумайте об использовании Tooltask, так как ToolkitTask может работать не правильно или вообще.
Посмотрите наши документы, чтобы узнать больше о том, как использовать Griptape с другими поставщиками LLM, такими как Anpropic, Claude, обнимающееся лицо и лазурь.
Griptape находится в постоянном развитии, а ее API и документация могут быть изменены. До тех пор, пока мы не стабилизируем API и выпустить версию 1.0.0, мы будем использовать незначительные версии (т.е. XYZ) для введения функций и разбитых функций, а также версии патчей (т.е. XYZ) для исправлений ошибок.
Спасибо, что рассмотрели участие в Griptape! Прежде чем начать, прочитайте следующие рекомендации.
Если вы определили ошибку, хотите предложить новую функцию или удать вопрос, пожалуйста, отправьте проблему через нашу публичную трекер. Прежде чем отправить новую проблему, пожалуйста, проверьте существующие вопросы, чтобы убедиться, что о нем не сообщалось или не обсуждалось ранее.
Мы приветствуем и поощряем запросы на привлечение. Чтобы упростить процесс, следуйте этим рекомендациям:
Существующие проблемы: Пожалуйста, отправьте запросы на привлечение только для существующих вопросов. Если вы хотите поработать над новой функциональностью или исправить ошибку, которая еще не была решена, сначала отправьте проблему. Это позволяет команде Griptape внутренне обработать запрос и предоставить общественный ответ.
Филиал: отправьте все запросы на притяжение в филиал dev . Это помогает нам управлять изменениями и интегрировать их плавно.
Модульные тесты: Убедитесь, что ваш запрос на вытягивание проходит все существующие модульные тесты. Кроме того, если вы представляете новый код, включите новые модульные тесты для проверки его функциональности.
Запустите make test/unit для выполнения тестового набора локально.
Запустить make docs , чтобы создать документацию локально.
Запустите, make check , чтобы запустить все проверки кода локально.
Расширенность Griptape позволяет любому развивать и распространять функциональность независимо. Все новые интеграции, включая инструменты, драйверы, задачи и т. Д., Первоначально должны быть разработаны как расширения, а затем могут быть подняты в ядро Griptape, если обсуждаются и утверждены.
Шаблон расширения Griptape предоставляет рекомендуемую структуру, пошаговые инструкции, базовую автоматизацию и примеры использования для новых интеграций.
Установите все зависимости через Make:
make installИли установите, вызывая поэзию напрямую:
poetry install --all-extras --with dev --with test --with docsНастройте Pre-Commit, чтобы убедиться, что ваш код отформатирован правильно, и проходит все проверки:
poetry run pre-commit installGriptape доступен по лицензии Apache 2.0.