Griptape adalah kerangka python modular untuk membangun aplikasi bertenaga AI yang terhubung dengan aman ke data perusahaan dan API Anda. Ini menawarkan pengembang kemampuan untuk mempertahankan kontrol dan fleksibilitas di setiap langkah.
Tugas adalah blok bangunan inti dalam struktur, memungkinkan interaksi dengan mesin, alat, dan komponen griptape lainnya.
Alat menyediakan kemampuan bagi LLM untuk berinteraksi dengan data dan layanan. Griptape mencakup berbagai alat bawaan, dan membuatnya mudah untuk membuat alat khusus.
Pengemudi memfasilitasi interaksi dengan sumber daya dan layanan eksternal:
Mesin membungkus driver dan memberikan fungsionalitas spesifik-kasus:
Silakan merujuk ke dokumen griptape untuk:
Silakan periksa Griptape Trade School untuk kursus online gratis.
Pertama, instal griptape :
pip install "griptape[all]" -U
Kedua, konfigurasikan klien openai dengan mendapatkan kunci API dan menambahkannya ke lingkungan Anda sebagai OPENAI_API_KEY . Secara default, Griptape menggunakan API penyelesaian obrolan openai untuk menjalankan prompt LLM.
Dengan griptape, Anda dapat membuat struktur, seperti agen, pipa, dan alur kerja, terdiri dari berbagai jenis tugas. Mari kita bangun agen kreatif sederhana yang secara dinamis menggunakan tiga alat dan memindahkan data di memori tugas.
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" )Dan inilah outputnya:
[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`.
Selama menjalankan, agen Griptape memuat halaman web dengan alat, menyimpan konten lengkapnya di memori tugas, menanyakannya untuk menjawab pertanyaan asli, dan akhirnya menyimpan jawaban untuk file.
Yang penting untuk dicatat di sini adalah bahwa tidak peduli seberapa besar halaman web itu tidak pernah dapat meledakkan batas token prompt karena konten lengkap halaman tidak pernah kembali ke LLM. Selain itu, tidak ada data dari subtugas berikutnya yang dikembalikan kembali ke prompt. Jadi, bagaimana cara kerjanya?
Dalam contoh di atas, kami mengatur Off_prompt ke True , yang berarti bahwa LLM tidak pernah dapat melihat data yang dimanipulasi, tetapi dapat mengirimkannya ke alat lain.
Penting
Contoh ini menggunakan Toolkittask Griptape, yang membutuhkan LLM yang sangat mampu berfungsi dengan benar. Secara default, Griptape menggunakan OpenaiChatPromptDriver; Untuk LLM lain yang kuat, cobalah bertukar ke AnthropicPromptDriver! Jika Anda menggunakan LLM yang kurang kuat, pertimbangkan untuk menggunakan ToolTask sebagai gantinya, karena ToolkitTask mungkin tidak berfungsi dengan baik atau sama sekali.
Lihatlah dokumen kami untuk mempelajari lebih lanjut tentang cara menggunakan griptape dengan penyedia LLM lainnya seperti antropik, Claude, memeluk wajah, dan Azure.
Griptape sedang dalam pengembangan konstan dan API dan dokumentasinya dapat berubah. Sampai kami menstabilkan API dan melepaskan versi 1.0.0, kami akan menggunakan versi minor (yaitu, XYZ) untuk memperkenalkan fitur dan fitur yang melanggar, dan versi patch (yaitu, XYZ) untuk perbaikan bug.
Terima kasih telah mempertimbangkan berkontribusi pada Griptape! Sebelum Anda mulai, silakan baca pedoman berikut.
Jika Anda telah mengidentifikasi bug, ingin mengusulkan fitur baru, atau memiliki pertanyaan, silakan kirimkan masalah melalui pelacak masalah publik kami. Sebelum mengirimkan masalah baru, silakan periksa masalah yang ada untuk memastikan belum dilaporkan atau dibahas sebelumnya.
Kami menyambut dan mendorong permintaan tarik. Untuk merampingkan proses, silakan ikuti panduan ini:
Masalah yang ada: Harap kirimkan permintaan tarik hanya untuk masalah yang ada. Jika Anda ingin mengerjakan fungsionalitas baru atau memperbaiki bug yang belum ditangani, silakan kirimkan masalah terlebih dahulu. Ini memungkinkan tim Griptape untuk memproses permintaan secara internal dan memberikan tanggapan publik.
Cabang: Kirim semua permintaan tarik ke cabang dev . Ini membantu kami mengelola perubahan dan mengintegrasikannya dengan lancar.
Tes unit: Pastikan permintaan tarikan Anda melewati semua tes unit yang ada. Selain itu, jika Anda memperkenalkan kode baru, harap sertakan tes unit baru untuk memvalidasi fungsinya.
Jalankan make test/unit untuk menjalankan suite tes secara lokal.
Jalankan make docs untuk membangun dokumentasi secara lokal.
Jalankan make check untuk menjalankan semua cek kode secara lokal.
Ekstensibilitas Griptape memungkinkan siapa pun untuk mengembangkan dan mendistribusikan fungsionalitas secara mandiri. Semua integrasi baru, termasuk alat, driver, tugas, dll., Awalnya harus dikembangkan sebagai ekstensi dan kemudian dapat diangkat ke inti griptape jika dibahas dan disetujui.
Template ekstensi griptape menyediakan struktur yang disarankan, instruksi langkah demi langkah, otomatisasi dasar, dan contoh penggunaan untuk integrasi baru.
Instal semua dependensi melalui Make:
make installAtau instal dengan menelepon puisi secara langsung:
poetry install --all-extras --with dev --with test --with docsKonfigurasikan pra-komit untuk memastikan bahwa kode Anda diformat dengan benar dan melewati semua cek:
poetry run pre-commit installGriptape tersedia di bawah lisensi Apache 2.0.