Takip et

CrewAI ve AWS Bedrock ile Yapay Zeka Ajanı Yapımı

CrewAI ve AWS Bedrock ile yapay zeka ajanı dünyasına adım atın. Sadece 30 dakikada kendi otonom ekibinizi nasıl kuracağınızı adım adım öğrenin.

CrewAI ve AWS Bedrock ile Yapay Zeka Ajanı Yapımı

CrewAI ve AWS Bedrock ile yapay zeka ajanı dünyasına adım atın. Sadece 30 dakikada kendi otonom ekibinizi nasıl kuracağınızı adım adım öğrenin.

Yapay zeka dünyası, sadece sorularımıza cevap veren basit sohbet robotlarının ötesine geçiyor. Artık kendi kararlarını verebilen, belirli görevleri otonom (kendi kendine) şekilde yürüten ve birbirleriyle iş birliği yapan yapay zeka ajanları (AI Agents) dönemindeyiz. Peki, işletmeniz veya kişisel projeleriniz için bu teknolojiyi nasıl kullanabilirsiniz? Bu rehberde, popüler ajan yönetim kütüphanesi CrewAI (ekip yapay zekası) ve Amazon’un güçlü bulut altyapısı AWS Bedrock’ı kullanarak 30 dakika içinde çalışan bir yapay zeka ajanı sistemini sıfırdan inşa edeceğiz.

Birçok geliştirici, yapay zeka modellerini yerel bilgisayarlarında çalıştırmanın zorluklarından veya API maliyetlerinin belirsizliğinden çekiniyor. Ancak AWS Bedrock sayesinde, sunucusuz (serverless) bir mimariyle sadece kullandığınız kadar ödeyerek dünya devi dil modellerine erişebilirsiniz. CrewAI ise bu modellere adeta birer “çalışan” rolü vererek onları organize etmenizi sağlıyor. Hazırsanız, kahvenizi alın ve ilk otonom ekibimizi kurmaya başlayalım.

Yapay Zeka Ajanı (AI Agent) Nedir ve Neden İhtiyacımız Var?

Geleneksel yapay zeka modelleriyle çalışırken genellikle “girdi-çıktı” (prompt-response) mantığına bağlı kalırız. Bir soru sorarsınız ve model size tek bir cevap verir. Ancak gerçek hayattaki işler bu kadar basit değildir. Örneğin, kapsamlı bir pazar araştırması yapmak istiyorsanız önce veri toplamanız, ardından bu verileri analiz etmeniz ve son olarak bir rapor yazmanız gerekir. Tüm bu süreci tek bir prompt (girdi/yönerge) ile çözmeye çalışmak genellikle kalitesiz sonuçlar doğurur.

İşte bu noktada yapay zeka ajanları devreye giriyor. Bir yapay zeka ajanı; belirli bir role, hedefe, geçmiş bilgiye (backstory) ve kullanabileceği araçlara (tools) sahip olan otonom bir birimdir. Ajanlar, kendilerine verilen karmaşık görevleri alt adımlara bölebilir, internette arama yapabilir, kod çalıştırabilir ve en önemlisi diğer ajanlarla iletişim kurabilirler.

Bu sistemlerin en büyük avantajı, insan organizasyon yapısını taklit edebilmeleridir. Örneğin, bir yazılım projesinde bir “İş Analisti Ajanı” gereksinimleri belirlerken, “Yazılımcı Ajan” kodu yazar ve “Test Ajanı” ise hataları denetler. CrewAI yazılım çerçevesi (framework), tam olarak bu organizasyonu kod seviyesinde çok kolay bir şekilde yönetmemizi sağlar.

CrewAI ve AWS Bedrock Teknolojilerini Yakından Tanıyalım

Uygulamaya geçmeden önce, kullanacağımız iki ana teknolojiyi ve bunların neden harika bir ikili olduğunu anlamamız gerekiyor. CrewAI, ajan tabanlı sistemler geliştirmek için tasarlanmış açık kaynaklı bir Python kütüphanesidir. Geliştiricilerin ajanlar (agents), görevler (tasks) ve araçlar (tools) tanımlamasına olanak tanır. CrewAI’ın en güçlü yönü, ajanlar arasındaki iş birliğini (collaboration) ve iş akışını (process flow) otomatik olarak yönetebilmesidir.

AWS Bedrock ise Amazon Web Services tarafından sunulan, önde gelen yapay zeka şirketlerinin (Anthropic, AI21 Labs, Cohere, Meta, Stability AI) ve Amazon’un kendi geliştirdiği yüksek performanslı temel modellerini (foundation models) tek bir API üzerinden sunan tamamen yönetilen bir servistir. AWS Bedrock kullanmanın avantajlarını şu şekilde sıralayabiliriz:

  • Güvenlik ve Gizlilik: Verileriniz asla AWS dışına çıkmaz ve modellerin eğitimi için kullanılmaz. Bu durum, KVKK ve GDPR uyumluluğu için kritik önem taşır.
  • Çeşitlilik: Tek bir kod tabanı üzerinden Anthropic Claude, Meta Llama veya Amazon Titan modelleri arasında kolayca geçiş yapabilirsiniz.
  • Ölçeklenebilirlik: Sunucu yönetimiyle uğraşmazsınız. Sisteminiz, gelen talebe göre otomatik olarak ölçeklenir.

CrewAI’ın esnek yapısı ile AWS Bedrock’ın güvenli ve güçlü altyapısı birleştiğinde, kurumsal düzeyde yapay zeka çözümlerini dakikalar içinde yayına almak mümkün hale gelir.

Gerekli Kurulumlar ve Ortam Hazırlığı Nasıl Yapılır?

İlk yapay zeka ajanımızı yazmaya başlamak için bilgisayarımızda uygun bir geliştirme ortamı hazırlamalıyız. Bu projede Python dilini kullanacağız. Bilgisayarınızda Python 3.10 veya üzeri bir sürümün kurulu olduğundan emin olun. İlk olarak, projemiz için temiz bir sanal ortam (virtual environment) oluşturalım ve etkinleştirelim.

# Sanal ortam oluşturma
python -m venv crewai-bedrock-env

# Sanal ortamı etkinleştirme (Windows için)
crewai-bedrock-env\Scripts\activate

# Sanal ortamı etkinleştirme (macOS/Linux için)
source crewai-bedrock-env/bin/activate

Sanal ortamımızı etkinleştirdikten sonra, projemiz için gerekli olan kütüphaneleri yüklememiz gerekiyor. Bize CrewAI, AWS servisleriyle iletişim kurmak için boto3 ve entegrasyonu kolaylaştırmak için LangChain’in AWS paketi lazım olacak. Aşağıdaki komutu terminalinizde çalıştırarak kurulumları tamamlayabilirsiniz:

pip install crewai langchain-aws boto3 python-dotenv

Kurulumlar tamamlandıktan sonra AWS erişimimizi yapılandırmamız gerekiyor. Bilgisayarınızda AWS CLI kurulu ise aws configure komutuyla erişim anahtarlarınızı (Access Key ve Secret Key) tanımlayabilirsiniz. Alternatif olarak, proje klasörünüzde .env adında bir dosya oluşturup aşağıdaki bilgileri ekleyebilirsiniz:

AWS_ACCESS_KEY_ID=your_access_key_here
AWS_SECRET_ACCESS_KEY=your_secret_key_here
AWS_REGION_NAME=us-east-1

Lütfen AWS Bedrock konsoluna giderek kullanmak istediğiniz modele (bu rehberde Anthropic Claude 3.5 Sonnet modelini tercih edeceğiz) erişim izni (model access) istemeyi unutmayın. Erişim genellikle birkaç dakika içinde onaylanır.

Adım Adım İlk Yapay Zeka Ajanı Uygulamamızı Kodlayalım

Şimdi en heyecanlı kısma geldik. Bu adımda, AWS Bedrock üzerinde çalışan Claude 3.5 Sonnet modelini kullanarak iki ajanlı bir ekip kuracağız. Senaryomuz gereği; birinci ajanımız derinlemesine teknoloji araştırması yapacak, ikinci ajanımız ise bu araştırmadan yola çıkarak Türkçe ve ilgi çekici bir blog yazısı hazırlayacak.

Proje klasörünüzde app.py adında bir dosya oluşturun ve aşağıdaki kod bloklarını adım adım ekleyin. İlk olarak gerekli kütüphaneleri içe aktarıyoruz ve AWS Bedrock bağlantımızı tanımlıyoruz:

import os
from dotenv import load_dotenv
from crewai import Agent, Task, Crew, Process
from langchain_aws import ChatBedrock

# .env dosyasındaki değişkenleri yüklüyoruz
load_dotenv()

# AWS Bedrock LLM yapılandırması
bedrock_llm = ChatBedrock(
    credentials_profile_name=None, # .env veya AWS CLI yapılandırmasını kullanır
    region_name=os.getenv("AWS_REGION_NAME", "us-east-1"),
    model_id="anthropic.claude-3-5-sonnet-20240620-v1:0",
    model_kwargs={"temperature": 0.7}
)

AWS Bedrock bağlantımızı başarıyla kurduk. Şimdi sıra CrewAI ajanlarımızı tanımlamaya geldi. Ajanlarımıza net roller, hedefler ve karakterlerini yansıtan geçmiş hikayeleri (backstory) veriyoruz. Bu, ajanların görevleri yerine getirirken nasıl davranacaklarını belirler:

# 1. Ajan: Teknoloji Araştırmacısı
researcher = Agent(
    role="Kıdemli Teknoloji Araştırmacısı",
    goal="Yapay zeka ve bulut teknolojilerindeki en son gelişmeleri analiz etmek",
    backstory="Yıllardır teknoloji sektöründe çalışan, karmaşık teknik konuları hızla kavrayıp analiz edebilen uzman bir araştırmacısın.",
    verbose=True,
    llm=bedrock_llm
)

# 2. Ajan: İçerik Yazarı
writer = Agent(
    role="Teknoloji İçerik Yazarı",
    goal="Teknik raporları okuyucu dostu ve ilgi çekici blog yazılarına dönüştürmek",
    backstory="Karmaşık teknik raporları alıp, herkesin heyecanla okuyabileceği akıcı ve samimi Türkçe blog yazılarına dönüştürme konusunda uzmansın.",
    verbose=True,
    llm=bedrock_llm
)

Ajanlarımız hazır. Şimdi bu ajanların yerine getirmesi gereken görevleri (tasks) tanımlayalım. Görevler, hangi ajanın ne yapacağını ve çıktının ne olacağını net bir şekilde belirtmelidir:

# 1. Görev: Araştırma Görevi
research_task = Task(
    description="AWS Bedrock ve CrewAI entegrasyonunun avantajlarını ve gelecekteki potansiyelini araştır. Temel özellikleri listele.",
    expected_output="AWS Bedrock ve CrewAI entegrasyonu hakkında teknik detaylar içeren 5 maddelik bir analiz raporu.",
    agent=researcher
)

# 2. Görev: Yazım Görevi
write_task = Task(
    description="Araştırma raporunu kullanarak, yazılımcıların ilgisini çekecek samimi dilde bir Türkçe blog yazısı yaz.",
    expected_output="En az 3 alt başlık içeren, teknik terimleri açıklayan, akıcı ve ilgi çekici bir Türkçe blog yazısı.",
    agent=writer
)

Son olarak, bu ajanları ve görevleri bir araya getirecek olan “Crew” (ekip) nesnemizi oluşturuyoruz ve süreci başlatıyoruz:

# Ekibi kuruyoruz
tech_crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, write_task],
    process=Process.sequential, # Görevler sırayla yapılacak
    verbose=True
)

# Süreci başlatıyoruz
if __name__ == "__main__":
    print("### YAPAY ZEKA EKİBİ ÇALIŞMAYA BAŞLIYOR ###")
    result = tech_crew.kickoff()
    print("\n### ÇALIŞMA TAMAMLANDI. İŞTE SONUÇ: ###\n")
    print(result)

Terminalinizde python app.py komutunu çalıştırarak ekibinizin nasıl otonom bir şekilde çalıştığını, birbirlerine nasıl veri aktardıklarını canlı olarak izleyebilirsiniz.

Gerçek Dünya Senaryosu: Türkiye Pazarı İçin Rakip Analizi

Yapay zeka ajanlarının gücünü daha iyi anlamak için gerçek bir iş senaryosunu ele alalım. Türkiye’de faaliyet gösteren bir e-ticaret markanız olduğunu düşünün. Rakip analizleri yapmak, fiyatları ve kampanyaları takip etmek saatler süren yorucu bir iştir. CrewAI ve AWS Bedrock ile bu süreci tamamen otomatikleştirebiliriz.

Bu senaryoda, bir “Pazar Analisti Ajanı” Türkiye’deki e-ticaret trendlerini (örneğin Trendyol, Hepsiburada gibi platformlardaki kullanıcı eğilimlerini) inceler. Diğer bir “Pazarlama Stratejisti Ajanı” ise bu verilere dayanarak yerel pazara uygun, Türkçe reklam ve kampanya fikirleri üretir. Aşağıdaki tablo, bu senaryodaki iş bölümünü ve veri akışını özetlemektedir:

Ajan Rolü Görevi Kullandığı Kaynak / Araç Çıktı Ürünü
Pazar Analisti E-ticaret kampanya trendlerini analiz etmek Arama Motoru Araçları (Serper API vb.) Haftalık trend raporu (Türkçe)
Pazarlama Stratejisti Trendlere uygun kampanya kurgulamak Analistten gelen rapor verileri Sosyal medya ve e-posta pazarlama planı

Bu iş akışı sayesinde, normal şartlarda bir pazarlama uzmanının günlerini alacak olan pazar analizi ve strateji geliştirme süreci, AWS Bedrock’ın yüksek işlem kapasitesi ve CrewAI’ın iş birliği yeteneği sayesinde sadece birkaç dakika içinde tamamlanır. Elde edilen stratejiler doğrudan pazarlama ekiplerine birer taslak öneri olarak sunulabilir.

İleri Düzey İpuçları ve Performans Optimizasyonu

İlk ajan ekibinizi başarıyla çalıştırdıktan sonra, projelerinizi daha profesyonel ve ölçeklenebilir hale getirmek için bazı ileri düzey teknikleri uygulamanız gerekir. Büyük dil modelleriyle (LLM) çalışırken maliyet, hız ve doğruluk dengesini kurmak en önemli önceliktir. İşte bu dengeyi sağlamanıza yardımcı olacak bazı ipuçları:

Doğru Modeli Seçin: AWS Bedrock üzerinde farklı modeller mevcuttur. Hızlı ve düşük maliyetli görevler (örneğin veri temizleme veya basit özetleme) için Anthropic Claude 3 Haiku modelini tercih edebilirsiniz. Ancak derinlemesine analiz, kod yazma veya yaratıcı yazarlık gerektiren karmaşık görevlerde Claude 3.5 Sonnet modelini kullanmak çok daha iyi sonuçlar verecektir.

Maliyeti Yönetin: Ajanlar otonom çalıştıkları için bazen sonsuz döngüye (infinite loop) girebilir veya gereksiz yere çok fazla API çağrısı yapabilirler. Bunu önlemek için CrewAI’ın sunduğu sınırlandırma parametrelerini kullanmalısınız. Örneğin, bir ajanın maksimum kaç kez deneme yapacağını belirlemek için max_iter parametresini tanımlayabilirsiniz:

optimised_agent = Agent(
    role="Veri Analisti",
    goal="Hızlı veri analizi yapmak",
    backstory="Analizleri hızlıca tamamlayan uzman.",
    max_iter=3, # Maksimum 3 adımda görevi tamamlamaya zorlar
    llm=bedrock_llm
)

Bellek (Memory) Kullanımı: CrewAI, ajanların geçmiş konuşmaları ve kararları hatırlamasını sağlayan bellek mekanizmalarına sahiptir. memory=True parametresini aktif hale getirerek, ajanların süreç boyunca öğrendikleri bilgileri sonraki görevlerde de kullanmalarını sağlayabilirsiniz. Bu özellik, özellikle uzun süren projelerde tutarlılığı inanılmaz derecede artırır.

Sonuç ve Sıkça Sorulan Sorular

Bu rehberde, yapay zeka dünyasının en heyecan verici iki teknolojisi olan CrewAI ve AWS Bedrock’ı bir araya getirerek otonom yapay zeka ajanları geliştirmeyi öğrendik. Sadece 30 dakika içinde, bir araştırmacı ve bir yazardan oluşan otonom bir ekibi nasıl kurabileceğimizi kod örnekleriyle gördük. Bu mimariyi kullanarak, işletmenizin ihtiyaçlarına özel yüzlerce farklı ajan tasarlayabilir ve rutin işlerinizi tamamen otomatikleştirebilirsiniz.

Yapay zeka ajanları, geleceğin iş yapış şeklini şekillendiriyor. Siz de bu teknolojiyi şimdiden öğrenerek projelerinizde ve kariyerinizde bir adım öne geçebilirsiniz. Şimdi, konuyla ilgili en çok merak edilen bazı soruları yanıtlayalım.

Sıkça Sorulan Sorular

1. AWS Bedrock kullanmak ücretli midir?
Evet, AWS Bedrock kullandığınız kadar öde (pay-as-you-go) modeliyle çalışır. Ücretlendirme, modellere gönderdiğiniz ve modellerden aldığınız jeton (token) miktarına göre hesaplanır. Başlangıç seviyesindeki denemeler için maliyetler genellikle oldukça düşüktür (birkaç sent civarında).

2. CrewAI projelerinde Türkçe dil desteği nasıl sağlanır?
CrewAI’ın kendisi dil bağımsızdır. Kullandığınız büyük dil modeli (LLM) Türkçe desteklediği sürece ajanlarınızla Türkçe çalışabilirsiniz. AWS Bedrock üzerindeki Anthropic Claude modelleri mükemmel düzeyde Türkçe anlama ve yazma yeteneğine sahiptir.

3. AWS Bedrock yerine OpenAI API kullanabilir miyim?
Evet, CrewAI oldukça esnektir. Projenizde ChatBedrock yerine ChatOpenAI sınıfını kullanarak OpenAI modellerini de kolayca entegre edebilirsiniz. Ancak kurumsal veri güvenliği ve AWS ekosistemiyle entegrasyon için Bedrock tercih edilmektedir.

4. Ajanların internetten güncel bilgileri çekmesini nasıl sağlarım?
Ajanlarınıza araçlar (tools) tanımlayarak internette arama yapmalarını sağlayabilirsiniz. CrewAI, Serper API veya DuckDuckGo arama araçlarıyla entegre çalışabilir. Böylece ajanlarınız güncel web verilerine erişebilir.

#Teknoloji #YapayZeka #AWS #CrewAI #YazılımGeliştirme

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.