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許可下使用。