AI uygulamaları geliştiriyor ya da karmaşık görevleri otomatikleştiriyor olun, bir AI agent'ının doğru veri ve araçlarla çalışmasını sağlamak zor olabilir. Basit AI sistemleri, muhakeme yapması, bilgi getirmesi veya farklı kaynaklardan görevleri yönetmesi gerektiğinde genellikle zorlanır. LlamaIndex agent'ları, AI modellerini araçlar, veriler ve bilgi getirme sistemleriyle bağlayarak görevlerin daha etkili bir şekilde yönetilmesini sağlar. Daha akıllı ve daha esnek AI uygulamaları için LlamaIndex agent iş akışını nasıl oluşturup dağıtacağınızı öğrenmek üzere bu makaleyi okuyun.
LlamaIndex agent'ı nedir?
LlamaIndex agent'ı, bir görev hakkında muhakeme yürütebilen ve bu görevi tamamlamak için hangi adımların gerektiğine karar verebilen bir AI sistemidir. Karmaşık bir isteği daha küçük görevlere bölebilir, araçlar seçebilir ve gerektiğinde harici veri kullanabilir. Agent'lar aynı zamanda önceki adımları hatırlayabilir ve yanıtlarını iyileştirmek için getirilen bilgileri kullanabilir. Bu, basit bir soru-cevap yanıtından daha fazlasını gerektiren görevleri ele almalarını sağlar.
LlamaIndex agent'ları nasıl çalışır?
LlamaIndex agent'ları, modellerin görevler hakkında muhakeme yürütmesine, araçlar seçmesine ve çok adımlı iş akışlarını tamamlamasına izin vererek LLM uygulamalarının basit soru cevaplamanın ötesine geçmesini sağlar. Sabit bir işlem hattını takip etmek yerine, bir agent kullanıcının hedefine ve mevcut yeteneklere göre hangi eylemlerin gerekli olduğuna dinamik olarak karar verir.
Tipik bir LlamaIndex agent iş akışı şu süreci izler:
User request
↓
Understand the task
↓
Select tools
↓
Execute actions
↓
Process results
↓
Return final responseKullanıcı hedeflerini anlama
Bir agent bir istek aldığında, alttaki LLM en iyi yaklaşımı belirlemek için görevi, mevcut bağlamı ve bağlı araçları analiz eder.
Basit sorgular için agent doğrudan bir yanıt oluşturabilir. Karmaşık görevler için ise isteği daha küçük adımlara bölebilir ve hangi işlemlerin gerektiğine karar verebilir.
Araç seçme ve kullanma
Araçlar, bir agent'ın yeteneklerini LLM'nin kendisinin ötesine taşır. LlamaIndex agent'ları, FunctionTool ve QueryEngineTool gibi araçlar üzerinden özel Python fonksiyonlarına, sorgu motorlarına, API'lere, veritabanlarına ve bilgi getirme sistemlerine bağlanabilir.
Örneğin, bir agent bilgi toplamak için bir arama aracı, kayıtları getirmek için bir veritabanı aracı veya hesaplamalar yapmak için özel bir fonksiyon kullanabilir.
Görevleri bir agent döngüsü üzerinden yürütme
Bir araç seçildikten sonra, agent eylemi yürütür, sonucu gözlemler ve sonraki adıma karar verir. Bu muhakeme-eylem döngüsü, agent'ların birden fazla işlem gerektiren karmaşık iş akışlarını yönetmesine olanak tanır.
Reason → Act → Observe → RepeatGörev tamamlanmadıysa, agent nihai bir yanıt oluşturana kadar araçları çağırmaya veya yaklaşımını iyileştirmeye devam edebilir.
Bağlamı ve iş akışlarını yönetme
LlamaIndex agent'ları, yürütme süreci boyunca ilgili bağlamı korur; bu da çok adımlı görevleri yönetmelerine ve önceki adımlardan alınan sonuçları kullanmalarına yardımcı olur. Daha karmaşık uygulamalar için geliştiriciler, her biri belirli bir rol veya görevi yerine getiren birden fazla agent'ı koordine etmek amacıyla iş akışlarını ve çoklu agent mimarilerini kullanabilir.
Örneğin:
Research Agent
↓
Analysis Agent
↓
Writing AgentBu özellik, LlamaIndex react agent'larını AI araştırma asistanları, kurumsal bilgi sistemleri ve otomatik veri iş akışları gibi uygulamalar için uygun hale getirir.
LlamaIndex agent'larının temel bileşenleri
LlamaIndex çoklu agent'ları, bir LLM'yi muhakeme yürütebilen, harici fonksiyonlar kullanabilen ve bağlamı koruyabilen bir sisteme dönüştürmek için birçok bileşeni birleştirir. Her bileşenin farklı bir rolü vardır, ancak agent'ın görevleri daha etkili bir şekilde yönetmesine yardımcı olmak için birlikte çalışırlar. İşte temel bileşenlerinden bazıları:
LLM: Agent'ların muhakeme motoru
LLM, kullanıcı isteklerini yorumlayan ve sonraki adımda ne yapılacağına karar veren temel muhakeme motoru olarak işlev görür. Mevcut bağlamı analiz edebilir ve doğrudan yanıt vermek ya da bir araç kullanmak arasında karar verebilir. LlamaIndex farklı LLM sağlayıcılarını desteklediğinden, geliştiriciler uygulama gereksinimlerine göre bir model seçebilir. Bu nedenle LLM, agent'ın karar verme ve yanıt oluşturma sürecini kontrol eder.
Araçlar: Agent yeteneklerini genişletme
Araçlar, bir agent'ın metin oluşturmanın ötesine geçen eylemler gerçekleştirmesine olanak tanır. Basit Python fonksiyonları olabilecekleri gibi API'ler, sorgu motorları ve diğer harici hizmetlerle çalışmak için özel araçlar da olabilirler. Agent, kullanıcının isteğine dayanarak hangi aracı kullanacağına karar verir ve gerekli girdileri sağlar. Araç sonuçları daha sonra konuşmaya eklenir, böylece agent bunları bir sonraki adımda kullanabilir.
Bellek: Bağlamı koruma
Bellek, LlamaIndex agent'larının bir görevi tamamlarken ilgili bilgileri saklamasını sağlar. Varsayılan olarak agent'lar, yürütme sırasında konuşma geçmişini kullanılabilir tutan bir ChatMemoryBuffer kullanır. Geliştiriciler, uygulamaya göre bir token sınırı belirlemek gibi bellek yapılandırmasını da özelleştirebilir. Bu, agent'ların bağlamı korumasına ve birden fazla adım gerektiren görevleri yönetmesine yardımcı olur.
LlamaIndex agent türleri
LlamaIndex, gereken muhakeme seviyesine, araç kullanımına ve kontrol düzeyine göre görevleri yönetmek için farklı agent türleri sunar. Ana türlere ve birbirlerinden nasıl farklılaştıklarına bir bakalım:
| Agent türü | Nasıl çalışır | Temel özellikler | En iyi kullanım senaryoları |
|---|---|---|---|
| FunctionAgent | Kullanıcı isteklerine göre önceden tanımlanmış araçları seçmek ve çalıştırmak için modern LLM'lerin fonksiyon çağırma yeteneklerini kullanır. | Yerel araç çağırma Yapılandırılmış girdi ve çıktılar Güvenilir araç çalıştırma Basit uygulama | AI asistanları İş süreçleri otomasyonu API tabanlı uygulamalar Göreve yönelik agent'lar |
| ReActAgent | Agent'ın bir görev üzerinde yinelemeli olarak akıl yürüttüğü, aksiyonlar aldığı, sonuçları gözlemlediği ve tamamlanana kadar devam ettiği Reasoning + Acting (Akıl Yürütme + Eylem) yaklaşımını kullanır. | Adım adım akıl yürütme Dinamik araç seçimi Çok adımlı görevleri işleme Esnek problem çözme | Araştırma asistanları Karmaşık soru yanıtlama Veri keşfi Açık uçlu iş akışları |
| CodeActAgent | Kod tabanlı akıl yürütmenin daha etkili olduğu durumlarda, agent'ların kod üreterek ve çalıştırarak görevleri çözmesine olanak tanır. | Kod üretimi ve çalıştırma Programatik problem çözme Hesaplamalı görevler için uygun | Veri analizi Bilimsel iş akışları Programlama asistanları |
| Çok agent'lı sistemler | İş birliği yapan, görev devreden ve karmaşık iş akışlarını birlikte tamamlayan birden fazla uzmanlaşmış agent kullanır. | Agent iş birliği Görev devretme Rol uzmanlaşması Ölçeklenebilir iş akışları | Otomatik araştırma hatları Kurumsal iş akışları Karmaşık iş süreçleri |
Bu agent'lar, geliştiricilere farklı görevler ve iş akışları için doğru yaklaşımı seçme esnekliği sunar. Agent türü seçildikten sonraki adım, muhakeme ve araç kullanımını destekleyebilecek yetenekli bir LLM arka ucuna bağlanmaktır. LlamaIndex ve Kimi API ile AI agent'larının nasıl oluşturulabileceğine bakalım.
LlamaIndex ve Kimi API ile AI Agent'ları Nasıl Oluşturulur?
LlamaIndex'i bir LLM API'sine bağlamak, agent'a istekleri anlamak ve doğru eylemleri seçmek için gereken muhakeme gücünü verir. Aşağıdaki adımlar, modeli yapılandırmaktan agent'ı çalıştırmaya kadar LlamaIndex ve Kimi API ile bir AI agent'ının nasıl kurulacağını gösterir:
Adım 1: Ön Gereksinimler
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Python 3.9+ yüklü olmalı
Moonshot AI Platform üzerinden alınmış geçerli bir Kimi API Key
LlamaIndex agent'ları ve RAG kavramlarına temel düzeyde aşinalık
Adım 2: Bağımlılıkları yükleyin
Orijinal örnek llama-index-llms-ollama kullanır. Kimi'nin OpenAI uyumlu API'sine bağlanmak için bunu llama-index-llms-openai ile değiştirin. Yerel, ücretsiz embedding'ler için HuggingFace embedding paketini olduğu gibi tutun.
pip install llama-index llama-index-llms-openai llama-index-embeddings-huggingfaceAdım 3: Ortam değişkenlerini yapılandırın
Kimi API anahtarınızı bir ortam değişkeni kullanarak güvenli bir şekilde saklayın. Betiklerinize sabit kodlamayın.
export KIMI_API_KEY = "your-kimi-api-key-here"Windows'ta (PowerShell):
$env:KIMI_API_KEY = "your-kimi-api-key-here"Adım 4: Kimi API ile temel agent'ı oluşturun
starter_kimi.py adında bir dosya oluşturun. Bu, aynı agent mantığını ve tool tanımlarını koruyarak Ollama LLM'in yerine Kimi'yi kullanır.
from llama_index.core.agent.workflow import FunctionAgent; import os
from llama_index.llms.openai import OpenAI; import asyncio
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.core import Settings
# Configure global settings
Settings.llm = OpenAI(
model="kimi-latest", # Or: kimi-k2, kimi-k2.5, etc.
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
request_timeout=120.0,
)
Settings.embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-base-en-v1.5"
)
# Define a calculator tool
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
# Create the agent
agent = FunctionAgent(
tools=[multiply],
llm=Settings.llm,
system_prompt="You are a helpful assistant that can multiply two numbers.",
)
async def main():
response = await agent.run("What is 1234 * 4567?")
print(str(response))
if __name__ == "__main__":
asyncio.run(main())Betiği çalıştırın:
python starter_kimi.pyBeklenen çıktı:
The answer to 1234 * 4567 is 5635678.Adım 5: Sohbet geçmişi (bağlam) ekleyin
Çok turlu konuşmaları etkinleştirmek için bir Context nesnesi iletin. Agent, çağrılar arasında hafızayı koruyacaktır.
from llama_index.core.workflow import Context
# Create context
ctx = Context(agent)
# Run agent with context
response = await agent.run("My name is Logan", ctx=ctx)
print(response)
response = await agent.run("What is my name?", ctx=ctx)
print(response)Adım 6: Kimi API ile RAG Özellikleri Ekleyin
Agent'ı belge alma (retrieval) özelliğiyle güçlendirin. Embedding adımı yerel kalırken, üretim (generation) Kimi üzerinden gerçekleşir.
Örnek veriyi hazırlayın
mkdir data
wget https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt -O data/paul_graham_essay.txtRAG destekli tam agent betiği
starter_kimi_rag.py dosyasını oluşturun:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings; import os
from llama_index.core.agent.workflow import AgentWorkflow; import asyncio
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
# Global settings
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-base-en-v1.5")
Settings.llm = OpenAI(
model="kimi-k3",
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
)
# Load documents and build index
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
# Define tools
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
async def search_documents(query: str) -> str:
"""Useful for answering natural language questions about Paul Graham's essay."""
response = await query_engine.aquery(query)
return str(response)
# Create enhanced agent
agent = AgentWorkflow.from_tools_or_functions(
[multiply, search_documents],
llm=Settings.llm,
system_prompt="""You are a helpful assistant that can perform calculations
and search through documents to answer questions.""",
)
async def main():
response = await agent.run(
"What did the author do in college? Also, what's 7 * 8?"
)
print(response)
if __name__ == "__main__":
asyncio.run(main())Betiği çalıştırın:
python starter_kimi_rag.pypython starter_kimi_rag.pyAdım 7: RAG Indexini Kalıcı Hale Getirin
Belgeleri her çalıştırmada yeniden işlemekten kaçınmak için vektör indeksini diske kalıcı olarak kaydedin.
# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()Sorun Giderme
Agent'ı kurarken sorunlarla karşılaşırsanız, bazı yaygın problemler kimlik doğrulama, bağlantı, paket kurulumu veya embedding hızını etkileyebilir. Aşağıdaki tablo, kurulumunuzu hızla sorun giderebilmeniz için en yaygın hataları ve çözümlerini gösterir:
| Sorun | Neden | Çözüm |
|---|---|---|
AuthenticationError | Geçersiz veya eksik API anahtarı | KIMI_API_KEY'in doğru şekilde dışa aktarıldığını doğrulayın |
Connection timeout | api.moonshot.ai'a ağ gecikmesi | request_timeout değerini 300.0 veya daha yüksek bir değere artırın |
ModuleNotFoundError | Eksik paket | pip install llama-index-llms-openai komutunu yeniden çalıştırın |
| CPU üzerinde embedding yavaş | Hugging Face modeli CPU üzerinde çalışıyor | Daha küçük bir model kullanın veya GPU hızlandırmasını etkinleştirin |
Kimi API kullanmanın avantajları
Agent bağlandıktan ve çalışmaya başladıktan sonra, LlamaIndex ile Kimi API'nin birleşimi, yetenekli AI uygulamaları oluşturmak için birkaç pratik avantaj sunar. LlamaIndex agent'larıyla Kimi API kullanmanın bazı temel avantajları şunlardır:
Daha akıllı AI agent'ları oluşturun: Kimi API, güçlü dil anlama ve akıl yürütme yetenekleriyle LlamaIndex agent'larını güçlendirerek agent'ların tool seçmesine, bilgiyi işlemesine ve görevleri daha etkili bir şekilde tamamlamasına yardımcı olur.
Veri erişimi ve analizini iyileştirin: LlamaIndex'in veri çerçevesiyle birleştiğinde, Kimi özel belgeler ve bilgi tabanlarıyla çalışarak daha doğru, bağlama duyarlı yanıtlar üretebilir.
Esnek AI iş akışları oluşturun: LlamaIndex agent'ları tool'lar, API'ler ve sorgu motorlarıyla bağlarken, Kimi bu yeteneklerin ne zaman ve nasıl kullanılacağına karar vermek için gereken zekayı sağlar.
Karmaşık AI uygulamalarını destekleyin: Uzun bağlam anlama ve agent yetenekleriyle LlamaIndex ile Kimi API, araştırma asistanları, bilgi agent'ları ve belge analizi uygulamaları oluşturmak için uygundur.
LlamaIndex agent'larının gerçek dünya uygulamaları
LlamaIndex agent'ları, AI'nın akıl yürütmesi, bilgiye erişmesi ve eylemler gerçekleştirmesi gereken çok çeşitli görevlerde kullanılabilir. LLM'leri tool'lar ve verilerle bağlama yetenekleri, onları araştırma, iş, analitik ve müşteri desteği alanlarında kullanışlı kılar. İşte bazı pratik uygulamalar:
AI araştırma asistanı
Bir AI araştırma asistanı, belgeler arasında arama yapabilir, ilgili bilgileri alabilir ve karmaşık soruları yanıtlamaya yardımcı olabilir. Bir araştırma görevini daha küçük adımlara bölebilir ve gerektiğinde farklı tool'lar kullanabilir. Bu, büyük miktarda bilgiyi analiz etmeyi ve detaylı yanıtlar hazırlamayı kolaylaştırır.
Kurumsal bilgi agent'ı
Bir kurumsal bilgi agent'ı, çalışanları şirket içi belgeler, veritabanları ve bilgi tabanlarıyla bağlayabilir. İlgili şirket bilgilerini alabilir ve mevcut iş verilerine dayalı yanıtlar sağlayabilir. Bu, çalışanların birden fazla sistemde manuel olarak arama yapmadan bilgiye daha hızlı erişmesine yardımcı olur.
Veri analizi agent'ı
Bir veri analizi agent'ı, veri setleriyle çalışabilir ve bilgiyi işlemek, analiz etmek ve yorumlamak için tool'lar kullanabilir. Hesaplamalar yapabilir, örüntüleri belirleyebilir ve sonuçları basit bir şekilde açıklamaya yardımcı olabilir. Bu, onu raporlama, veri keşfi ve iş analizi gibi görevler için kullanışlı kılar.
Müşteri hizmetleri agent'ı
Bir müşteri hizmetleri agent'ı, müşteri sorularını yanıtlamak için ürün bilgilerine, sıkça sorulan sorulara ve destek kaynaklarına erişebilir. İlgili ayrıntıları almak ve mevcut bağlama göre talepleri işlemek için araçları kullanabilir. Bu, rutin destek görevlerini otomatikleştirirken daha hızlı ve tutarlı yanıtlar sağlamaya yardımcı olabilir.
Sonuç
LlamaIndex agent'ları, akıl yürütebilen, araçları kullanabilen ve ilgili bilgilerle çalışabilen yapay zekâ sistemleri oluşturmak için pratik bir yol sunar. Esneklikleri, basit sohbetlerin ötesine geçen uygulamalar oluşturmak için onları kullanışlı kılar. Doğru LLM altyapısıyla bu agent'lar farklı görevlere ve iş akışlarına uyarlanabilir. Kendi yapay zekâ agent'ınızı oluşturmak ve test etmek için Kimi API'yi LlamaIndex ile deneyin. Kimi'yi keşfedin ve onunla ne yaratabileceğinizi görün.