Griptape是一个模块化Python框架,用于构建AI驱动的应用程序,可将其安全连接到您的企业数据和API。它为开发人员提供了每一步保持控制和灵活性的能力。
任务是结构中的核心构建块,可以与引擎,工具和其他握把组件的交互。
工具为LLMS提供了与数据和服务交互的功能。 Griptape包含各种内置工具,并且可以轻松创建自定义工具。
驾驶员促进与外部资源和服务的互动:
发动机包装驱动程序并提供特定用例特异性功能:
请参阅Griptape文档以下内容:
请查看Griptape Trade School免费在线课程。
首先,安装grippape :
pip install "griptape[all]" -U
其次,通过获取API键并将其添加到您的环境中作为OPENAI_API_KEY来配置OpenAI客户端。默认情况下,Griptape使用OpenAI聊天完成API执行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_PROMPTIMPT设置为True ,这意味着LLM永远无法看到其操纵的数据,而可以将其发送到其他工具。
重要的
此示例使用Griptape的Toolkittask,该工具Kitkitk需要一个功能高的LLM才能正确运行。默认情况下,Griptape使用OpenAichatPromptDriver;对于另一个功能强大的LLM,请尝试将其交换到AnthropicPromptdriver!如果您使用的LLM功能较低,请考虑使用工具任务,因为ToolkitTask可能无法正常工作或根本无法正常工作。
查看我们的文档,以了解有关如何与其他LLM提供商一起使用Griptape的更多信息,例如拟人化,克劳德(Claude),拥抱的脸和Azure。
Griptape处于恒定的开发状态,其API和文档可能会发生变化。在稳定API和发布版本1.0.0之前,我们将使用次要版本(即XYZ)介绍功能和破坏功能,以及用于错误修复的补丁版本(即,XYZ)。
感谢您考虑为Griptape做出贡献!在开始之前,请阅读以下准则。
如果您已经确定了一个错误,想提出一项新功能或有疑问,请通过我们的公共问题跟踪器提交问题。在提交新问题之前,请检查现有问题,以确保尚未报告或讨论。
我们欢迎并鼓励拉力请求。要简化该过程,请遵循以下准则:
现有问题:请仅针对现有问题提交拉动请求。如果您想从事新功能或修复尚未解决的错误,请首先提交问题。这使Griptape团队可以在内部处理请求并提供公众回应。
分支:将所有拉的请求提交到dev分支。这有助于我们管理更改并顺利进行更改。
单元测试:确保您的拉请求通过所有现有的单元测试。此外,如果您引入了新代码,请包括新的单元测试以验证其功能。
运行make test/unit以本地执行测试套件。
运行make docs以在本地构建文档。
运行make check以在本地运行所有代码检查。
Griptape的可扩展性使任何人都可以独立开发和分发功能。所有新的集成,包括工具,驱动程序,任务等,都应最初以扩展为开发,然后在讨论和批准的情况下将其上流为Griptape Core。
Griptape扩展模板提供了推荐的结构,分步说明,基本自动化以及新集成的使用示例。
通过make安装所有依赖项:
make install或通过直接致电诗歌来安装:
poetry install --all-extras --with dev --with test --with docs配置预求职者,以确保您的代码正确格式化并通过所有检查:
poetry run pre-commit installgriptape可在Apache 2.0许可下使用。