Griptape é uma estrutura modular do Python para criar aplicativos movidos a IA que se conectam com segurança aos dados e APIs corporativos. Oferece aos desenvolvedores a capacidade de manter o controle e a flexibilidade em todas as etapas.
As tarefas são os principais blocos de construção nas estruturas, permitindo a interação com motores, ferramentas e outros componentes da Griptape.
As ferramentas fornecem recursos para o LLMS interagir com dados e serviços. A Giptrape inclui uma variedade de ferramentas embutidas e facilita a criação de ferramentas personalizadas.
Os motoristas facilitam as interações com recursos e serviços externos:
Os motores envolvem drivers e fornecem funcionalidade específica de uso de uso:
Por favor, consulte o Griptape Docs para:
Confira a Griptape Trade School para obter cursos on -line gratuitos.
Primeiro, instale o Griptape :
pip install "griptape[all]" -U
Segundo, configure um cliente OpenAI, obtendo uma chave da API e adicionando -a ao seu ambiente como OPENAI_API_KEY . Por padrão, o Griptape usa a API de conclusão de bate -papo do OpenAI para executar prompts LLM.
Com a Giptrape, você pode criar estruturas, como agentes, dutos e fluxos de trabalho, compostos por diferentes tipos de tarefas. Vamos criar um agente criativo simples que use dinamicamente três ferramentas e move os dados na memória da tarefa.
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" )E aqui está a saída:
[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 a execução, o agente Griptape carregou uma página da web com uma ferramenta, armazenou seu conteúdo completo na memória da tarefa, consultou -a para responder à pergunta original e finalmente salvou a resposta para um arquivo.
O importante a ser observado aqui é que, não importa o tamanho da página da web, ela nunca pode explodir o limite de token prompt, porque o conteúdo completo da página nunca remonta ao LLM. Além disso, nenhum dado das subtarefas subseqüentes também foi devolvido ao prompt. Então, como funciona?
No exemplo acima, definimos off_prompt para True , o que significa que o LLM nunca pode ver os dados que manipula, mas pode enviá -los para outras ferramentas.
Importante
Este exemplo usa o ToolkitTask da Griptape, que requer um LLM altamente capaz para funcionar corretamente. Por padrão, Griptape usa o OpenAichatPromptDriver; Para outro poderoso LLM, tente trocar para o AnthropicPromptDriver! Se você estiver usando um LLM menos poderoso, considere usar a toca de ferramentas, pois o ToolkitTask pode não funcionar corretamente ou.
Confira nossos documentos para saber mais sobre como usar a Giptrape com outros provedores de LLM, como o rosto antrópico, Claude, abraçando o rosto e o Azure.
A griptape está em constante desenvolvimento e suas APIs e documentação estão sujeitas a alterações. Até estabilizarmos a API e lançar a versão 1.0.0, usaremos versões menores (ou seja, xyz) para introduzir recursos e recursos de quebra e versões de patch (ou seja, xyz) para correções de bugs.
Obrigado por considerar contribuir para Griptape! Antes de começar, leia as seguintes diretrizes.
Se você identificou um bug, deseja propor um novo recurso ou ter uma pergunta, envie um problema por meio de nosso rastreador de problemas públicos. Antes de enviar um novo problema, verifique os problemas existentes para garantir que ela não tenha sido relatada ou discutida antes.
Congratulamo -nos com e incentivamos solicitações de puxar. Para otimizar o processo, siga estas diretrizes:
Problemas existentes: envie solicitações de puxar apenas para problemas existentes. Se você deseja trabalhar em novas funcionalidades ou corrigir um bug que ainda não foi abordado, envie primeiro um problema. Isso permite que a equipe da Griptape processe internamente a solicitação e forneça uma resposta pública.
Filial: envie todas as solicitações de puxar para a filial dev . Isso nos ajuda a gerenciar mudanças e integrá -las sem problemas.
Testes de unidade: verifique se sua solicitação de tração passa todos os testes de unidade existentes. Além disso, se você estiver introduzindo um novo código, inclua novos testes de unidade para validar sua funcionalidade.
Executar make test/unit para executar o conjunto de testes localmente.
Run make docs para construir a documentação localmente.
Executar make check para executar todas as verificações de código localmente.
A extensibilidade da Griptape permite que qualquer pessoa desenvolva e distribua a funcionalidade de forma independente. Todas as novas integrações, incluindo ferramentas, drivers, tarefas, etc., devem ser desenvolvidas inicialmente como extensões e depois podem ser montadas no núcleo de Griptape se discutidas e aprovadas.
O modelo de extensão Griptape fornece a estrutura recomendada, instruções passo a passo, automação básica e exemplos de uso para novas integrações.
Instale todas as dependências via Make:
make installOu instale ligando diretamente à poesia:
poetry install --all-extras --with dev --with test --with docsConfigure pré-compromisso para garantir que seu código seja formatado corretamente e passa todas as verificações:
poetry run pre-commit installA Giptrape está disponível sob a licença Apache 2.0.