Repo ini menunjukkan contoh aplikasi yang dibangun di atas Llama Stack. Mulai Llama 3.1 Anda dapat membangun aplikasi agen yang mampu:
memecah tugas dan melakukan penalaran multi-langkah.
menggunakan alat untuk melakukan beberapa tindakan
bawaan: model memiliki pengetahuan bawaan tentang alat seperti penelusuran atau penerjemah kode
zero-shot: model dapat belajar memanggil alat menggunakan definisi alat dalam konteks yang sebelumnya tidak terlihat
memberikan perlindungan keamanan tingkat sistem menggunakan model seperti Llama Guard.
Catatan
Llama Stack API masih berkembang dan mungkin berubah. Jangan ragu untuk membuat dan bereksperimen, tapi mohon jangan mengandalkan stabilitasnya dulu!
Aplikasi agen memerlukan beberapa komponen:
kemampuan untuk menjalankan inferensi pada rangkaian model Llama yang mendasarinya
kemampuan untuk menjalankan pemeriksaan keselamatan menggunakan seri model Llama Guard
kemampuan untuk mengeksekusi alat, termasuk lingkungan eksekusi kode, dan mengulang menggunakan proses penalaran multi-langkah model
Semua komponen ini sekarang ditawarkan oleh satu Llama Stack Distribution. Llama Stack mendefinisikan dan menstandarkan komponen-komponen ini dan banyak komponen lainnya yang diperlukan untuk membuat pembuatan aplikasi AI Generatif menjadi lebih lancar. Berbagai implementasi API ini kemudian dirakit melalui Llama Stack Distribution .
Untuk memulai dengan Llama Stack Apps, Anda perlu:
Instal prasyarat
Mulai server Llama Stack
Hubungkan aplikasi agen klien Anda ke server Llama Stack
Setelah dimulai, Anda dapat mengarahkan aplikasi agen Anda ke URL untuk server ini (misalnya http://localhost:5000
).
Paket Python
Kami merekomendasikan untuk membuat lingkungan conda Python yang terisolasi.
# Buat dan aktifkan lingkungan virtualENV=stack conda create -n $ENV python=3.10cd <path-to-llama-stack-apps-repo>conda aktifkan $ENV# Instal dependensipip install -r persyaratan.txt
Ini akan menginstal semua dependensi yang diperlukan untuk (1) Membangun dan memulai server Llama Stack (2) Menghubungkan aplikasi klien Anda ke server Llama Stack.
Silakan lihat Panduan Pengembang repo llama-stack kami untuk menyiapkan distribusi Llama Stack dan menjalankan server untuk melayani titik akhir API. Anda harus memiliki titik akhir server untuk membangun aplikasi klien Anda.
Setelah server Anda dimulai, Anda akan melihat hasilnya --
... Serving POST /agentic_system/session/delete Serving POST /agentic_system/session/get Serving POST /agentic_system/step/get Serving POST /agentic_system/turn/get Serving GET /telemetry/get_trace Serving POST /telemetry/log_event Listening on :::5000 INFO: Started server process [587053] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://[::]:5000 (Press CTRL+C to quit)
Kami telah membuat contoh skrip demo untuk berinteraksi dengan server Stack.
Dengan server berjalan, Anda dapat menjalankan untuk menguji Agen sederhana
python -m examples.agents.hello localhost 5000
Anda akan melihat keluaran dalam bentuk --
> created agents with agent_id=d050201b-0ca1-4abd-8eee-3cba2b8c0fbc User> Hello shield_call> No Violation inference> How can I assist you today? shield_call> No Violation User> Which players played in the winning team of the NBA western conference semifinals of 2024, please use tools shield_call> No Violation inference> brave_search.call(query="NBA Western Conference Semifinals 2024 winning team players") tool_execution> Tool:brave_search Args:{'query': 'NBA Western Conference Semifinals 2024 winning team players'} tool_execution> Tool:brave_search Response:{"query": "NBA Western Conference Semifinals 2024 winning team players", "top_k": [{"title": "2024 NBA Western Conference Semifinals - Mavericks vs. Thunder | Basketball-Reference.com", "url": "https://www.basketball-reference.com/playoffs/2024-nba-western-conference-semifinals-mavericks-vs-thunder.html", "description": "Summary and statistics for the <strong>2024</strong> <strong>NBA</strong> <strong>Western</strong> <strong>Conference</strong> <strong>Semifinals</strong> - Mavericks vs. Thunder", "type": "search_result"}, {"title": "2024 NBA playoffs - Wikipedia", "url": "https://en.wikipedia.org/wiki/2024_NBA_playoffs", "description": "Aged 20 years and 96 days old, ... youngest <strong>player</strong> <strong>in</strong> <strong>NBA</strong> history to record 10+ points and 15+ rebounds in a playoff game, coming during game 6 of the Maverick's <strong>Western</strong> <strong>Conference</strong> <strong>Semifinal</strong> <strong>win</strong> against the Thunder on May 18. The Timberwolves overcame a 20u2013point deficit to <strong>win</strong> game 7 against the Nuggets, the largest game 7 comeback in <strong>NBA</strong> playoffs history. With the defending champion Nuggets losing to the Minnesota Timberwolves, the <strong>2024</strong> playoffs marked ...", "type": "search_result"}, {"title": "2024 NBA Playoffs | Official Bracket, Schedule and Series Matchups", "url": "https://www.nba.com/playoffs/2024", "description": "The official site of the <strong>2024</strong> <strong>NBA</strong> Playoffs. Latest news, schedules, matchups, highlights, bracket and more.", "type": "search_result"}]} shield_call> No Violation inference> The players who played in the winning team of the NBA Western Conference Semifinals of 2024 are not specified in the search results provided. However, the search results suggest that the Mavericks played against the Thunder in the Western Conference Semifinals, and the Mavericks won the series. shield_call> No Violation
Sekarang setelah server Stack disiapkan, hal berikutnya adalah menjalankan aplikasi agen menggunakan API Agen.
Kami telah membuat contoh skrip, buku catatan, dan antarmuka obrolan UI (menggunakan Gradio!) untuk membantu Anda memulai.
Mulai aplikasi (lokal) dan berinteraksi dengannya dengan menjalankan perintah berikut:
PYTHONPATH=. contoh python/agent_store/app.py localhost 5000
Ini akan memulai aplikasi mesop dan Anda dapat membuka localhost:7860
untuk bermain-main dengan antarmuka obrolan.
Secara opsional, Anda dapat menyiapkan kunci API untuk alat khusus:
WolframAlpha: simpan dalam variabel lingkungan WOLFRAM_ALPHA_API_KEY
Pencarian Berani: simpan dalam variabel lingkungan BRAVE_SEARCH_API_KEY
Anda mungkin melihat cara lain untuk berinteraksi di Agent Store README.md
CATATAN: Pastikan server Stack masih berjalan.
cd <path-to-llama-agentic-system>conda aktifkan $ENVllama stack run <name> # Jika belum dimulaiPYTHONPATH=. python -m example.agents.rag_with_memory_bank localhost 5000
Anda akan melihat output ke stdout dari formulir --
Lingkungan: ipython Alat: bold_search, wolfram_alpha, fotogen Tanggal Pemotongan Pengetahuan: Desember 2023 Tanggal Hari Ini: 23 Juli 2024 Pengguna> Saya merencanakan perjalanan ke Swiss, apa saja 3 tempat teratas yang harus dikunjungi? Respons Terakhir Penjaga Llama shield_type=<BuiltinShield.llama_guard: 'llama_guard'> is_violation=False Violence_type=Tidak ada yang melanggar_return_message=Tidak ada Jalankan PromptGuardShield dan dapatkan Skor: Tertanam: 0.9999765157699585, Berbahaya: 1.1110752893728204e-05 StepType.shield_call> Tidak Ada Pelanggaran role='user' content='Saya merencanakan perjalanan ke Swiss, apa saja 3 tempat terbaik untuk dikunjungi?'StepType.inference> Swiss adalah negara yang indah dengan kekayaan sejarah, budaya, dan keindahan alam. Berikut tiga tempat yang wajib dikunjungi untuk ditambahkan ke rencana perjalanan Anda: ....
Tip Anda dapat melakukan
--disable-safety
secara opsional dalam skrip untuk menghindari menjalankan pelindung keselamatan sepanjang waktu.
Jangan ragu untuk menghubungi jika Anda memiliki pertanyaan.
Lihat SDK klien kami untuk menghubungkan ke server Llama Stack, Anda dapat memilih dari bahasa pemrograman python, node, swift, dan kotlin untuk membangun aplikasi Anda dengan cepat.
Catatan
Meskipun Anda dapat menjalankan aplikasi menggunakan venv
, pemasangan distribusi memerlukan conda.
# Membuat dan mengaktifkan lingkungan virtualpython3 -m venv venvsource venv/bin/activate
# Buat dan aktifkan lingkungan virtualpython -m venv venv venvScriptsactivate # Untuk Command Prompt# atau.venvScriptsActivate.ps1 # Untuk PowerShell# atausource venvScriptsactivate # Untuk Git
Instruksi setelahnya (termasuk pip install -r requirements.txt
untuk menginstal dependensi) tetap sama.