Griptape는 엔터프라이즈 데이터 및 API에 안전하게 연결되는 AI 기반 애플리케이션을 구축하기위한 모듈 식 Python 프레임 워크입니다. 개발자에게 모든 단계에서 제어 및 유연성을 유지할 수있는 능력을 제공합니다.
작업은 구조물 내의 핵심 빌딩 블록으로 엔진, 도구 및 기타 그립 테이프 구성 요소와의 상호 작용을 가능하게합니다.
도구는 LLM이 데이터 및 서비스와 상호 작용할 수있는 기능을 제공합니다. Griptape에는 다양한 내장 도구가 포함되어 있으며 사용자 정의 도구를 쉽게 만들 수 있습니다.
운전자는 외부 리소스 및 서비스와의 상호 작용을 용이하게합니다.
엔진은 드라이버를 랩하고 사용 사례 별 기능을 제공합니다.
다음은 Griptape Docs를 참조하십시오.
무료 온라인 과정은 Griptape Trade School을 확인하십시오.
먼저 Griptape 설치 :
pip install "griptape[all]" -U
둘째, API 키를 가져 와서 OPENAI_API_KEY 로 환경에 추가하여 OpenAI 클라이언트를 구성하십시오. 기본적으로 Griptape는 OpenAi 채팅 완료 API를 사용하여 LLM 프롬프트를 실행합니다.
그립 테이프를 사용하면 다양한 유형의 작업으로 구성된 에이전트, 파이프 라인 및 워크 플로와 같은 구조를 만들 수 있습니다. 세 가지 도구를 동적으로 사용하고 작업 메모리에서 데이터를 이동시키는 간단한 크리에이티브 에이전트를 구축합시다.
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은 조작하는 데이터를 볼 수 없지만 다른 도구로 보낼 수 있습니다.
중요한
이 예제는 Griptape의 Toolkittask를 사용하여 올바르게 작동하기 위해서는 유능한 LLM이 필요합니다. 기본적으로 Griptape는 Openaichatpromptdriver를 사용합니다. 또 다른 강력한 LLM을 위해 AnthropicPromptdriver로 바꾸십시오! 덜 강력한 LLM을 사용하는 경우 ToolkitTask 제대로 작동하지 않거나 전혀 작동하지 않을 수 있으므로 도구를 대신 사용하는 것을 고려하십시오.
문서를 확인하여 Anthropic, Claude, Hugging Face 및 Azure와 같은 다른 LLM 제공 업체와 함께 Griptape를 사용하는 방법에 대해 자세히 알아보십시오.
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 라이센스에 따라 제공됩니다.