Griptapeは、エンタープライズデータとAPIに安全に接続するAI搭載アプリケーションを構築するためのモジュラーPythonフレームワークです。開発者に、あらゆるステップで制御と柔軟性を維持する能力を提供します。
タスクは、構造内のコアビルディングブロックであり、エンジン、ツール、その他のグリプタペコンポーネントとの相互作用を可能にします。
ツールは、LLMがデータとサービスと対話する機能を提供します。 Griptapeには、さまざまな内蔵ツールが含まれており、カスタムツールを簡単に作成できます。
ドライバーは、外部リソースとサービスとのやり取りを促進します。
エンジンはドライバーをラップし、ユースケース固有の機能を提供します。
次のようなGriptapeドキュメントを参照してください。
無料のオンラインコースについては、Griptape Trade Schoolをご覧ください。
まず、 Griptapeをインストールします。
pip install "griptape[all]" -U
次に、APIキーを取得し、 OPENAI_API_KEYとして環境に追加することにより、OpenAIクライアントを構成します。デフォルトでは、GriptapeはOpenai Chat Completions APIを使用してLLMプロンプトを実行します。
Griptapeを使用すると、さまざまな種類のタスクで構成されるエージェント、パイプライン、ワークフローなどの構造を作成できます。 3つのツールを動的に使用し、タスクメモリでデータを動作させるシンプルなクリエイティブエージェントを構築しましょう。
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エージェントはツールをWebページにロードし、タスクメモリに完全なコンテンツを保存し、元の質問に答えるために質問し、最後にファイルに答えを保存しました。
ここで注意すべき重要なことは、ページの完全なコンテンツがLLMに戻ることは決してないため、Webページがどれほど大きくても迅速なトークン制限を爆破することはできないということです。さらに、後続のサブタスクからのデータはプロンプトに戻されませんでした。それで、それはどのように機能しますか?
上記の例では、OFF_PROMPTをTrueに設定しました。つまり、LLMは操作するデータを見ることができないが、他のツールに送信できることを意味します。
重要
この例では、GriptapeのToolkittaskを使用しています。これには、正しく機能するには非常に有能なLLMが必要です。デフォルトでは、GriptapeはOpenaichatPromptdriverを使用します。別の強力なLLMについては、AnthropicPromptdriverに交換してみてください!あまり強力なLLMを使用している場合は、 ToolkitTask適切に機能しない可能性があるため、代わりにTooltaskを使用することを検討してください。
ドキュメントをチェックして、Anthropic、Claude、Hugging Face、Azureなど、他のLLMプロバイダーと一緒にGriptapeを使用する方法の詳細をご覧ください。
Griptapeは絶えず開発されており、そのAPIとドキュメントは変更される可能性があります。 APIを安定させ、バージョン1.0.0をリリースするまで、マイナーバージョン(つまり、XYZ)を使用して機能と壊れた機能を紹介し、バグ修正用のパッチバージョン(IE、XYZ)を紹介します。
Griptapeに貢献してくれてありがとう!開始する前に、次のガイドラインをお読みください。
バグを特定した場合、新しい機能を提案したい場合、または質問がある場合は、Public Issue Trackerを通じて問題を提出してください。新しい問題を提出する前に、既存の問題を確認して、以前に報告または議論されていないことを確認してください。
プルリクエストを歓迎し、奨励します。プロセスを合理化するには、次のガイドラインに従ってください。
既存の問題:既存の問題に対してのみプルリクエストを送信してください。新しい機能に取り組むか、まだ対処されていないバグを修正する場合は、まず問題を提出してください。これにより、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事前コミットを構成して、コードが正しくフォーマットされ、すべてのチェックに合格するようにします。
poetry run pre-commit installGriptapeは、Apache 2.0ライセンスの下で入手できます。