Yapay Zeka Asistanı (AI Agent) Oluşturma Rehberi
Trendlerdeki Yazı

Yapay Zeka Asistanı (AI Agent) Oluşturma Rehberi

0

Yapay zeka (AI) hızla gelişirken, AI tabanlı uygulamaların kullanım alanları da genişliyor. Sohbet botları, otomasyon sistemleri, veri analiz araçları gibi pek çok farklı alanda AI Agent’lar kullanılabiliyor. Bu rehberde, kendi AI Agent’ınızı sıfırdan nasıl oluşturabileceğinizi, hangi araçları kullanmanız gerektiğini, kodlamadan kuruluma kadar her aşamayı detaylı bir şekilde ele alacağız. Ayrıca karşılaşabileceğiniz olası hatalar ve bunların çözümlerine de yer vereceğiz.

AI Agent Nedir?

AI Agent, belirli görevleri yerine getirebilen, öğrenebilen ve insanlarla etkileşime girebilen bir yazılım birimidir. Genellikle büyük dil modelleri (LLM) gibi yapay zeka teknolojileri ile desteklenir ve aşağıdaki işlevleri gerçekleştirebilir:

  • Metin Anlama ve Yanıt Üretme: Kullanıcıdan gelen metinleri işleyerek anlam çıkarır ve uygun yanıtlar üretir.
  • Veri Analizi ve İşleme: Büyük veri setlerini analiz edebilir ve sonuçlar üretebilir.
  • Otomasyon: Tekrarlayan görevleri otomatik hale getirebilir.
  • API Entegrasyonu: Dış API’lerle bağlantı kurarak bilgi çekebilir veya işlem yapabilir.
  • Öğrenme ve Uyarlanabilirlik: Kullanıcıdan gelen geri bildirimlerle zaman içinde gelişebilir.

Günümüzde müşteri hizmetleri botları, sanal asistanlar (Siri, Google Assistant gibi), otomatik yazılım yardımcıları ve veri analizi yapan yapay zeka çözümleri bu alanda önemli örneklerdir.

Kullanılacak Teknolojiler ve Araçlar

AI Agent geliştirmek için ihtiyaç duyacağımız temel bileşenler:

1. Dil Modelleri (LLM – Large Language Models)

Yapay zeka ajanınızın metin işlemesi için güçlü bir dil modeline ihtiyacınız olacak. İşte bazı popüler seçenekler:

ModelAvantajlarıKullanım Alanı
GPT-4Üst düzey dil işleme kapasitesiChatbotlar, içerik üretimi
ClaudeUzun metinleri analiz edebilirHukuki ve akademik metin işleme
MistralAçık kaynak, özelleştirilebilirÖzel AI geliştirme
LLaMAHafif ve hızlıMobil ve gömülü sistemler

Eğer hazır API kullanacaksanız, OpenAI GPT-4, Anthropic Claude veya Google Bard gibi modelleri kullanabilirsiniz. Açık kaynak çözümler için LLaMA, Falcon, Mistral gibi modelleri Hugging Face platformundan indirebilirsiniz.

2. Programlama Dili

Python, geniş AI ve makine öğrenmesi kütüphaneleri sayesinde en popüler seçenektir.

Alternatifler:

  • JavaScript/TypeScript (Web tabanlı AI uygulamaları için)
  • C++ veya Rust (Düşük seviyeli performans gerektiren uygulamalar için)

Bu rehberde Python kullanacağız.

3. Gerekli Kütüphaneler ve Araçlar

Python’da kullanacağımız ana kütüphaneler:

  • OpenAI API veya Hugging Face Transformers (Dil modeli kullanımı için)
  • LangChain (Agent iş akışlarını yönetmek için)
  • Flask veya FastAPI (API oluşturma)
  • Pinecone veya ChromaDB (Vektör veritabanı)
  • PostgreSQL veya MongoDB (Veri saklama)
  • Docker (Deployment için)
  • AWS, Google Cloud, Azure (Cloud barındırma için)

AI Agent İçin Temel Yapı

Bir AI Agent oluştururken temel mimari şu şekildedir:

1. Kullanıcı Girişi (Input Handling)

  • Kullanıcılar metin veya ses yoluyla AI Agent ile etkileşime geçer.
  • Girdi temizlenir, anlam çıkarılır.

2. İşleme (Processing)

  • Model, girdiyi analiz eder ve anlamlandırır.
  • Bellekten veya dış veri kaynaklarından ek bilgi alınır.

3. Yanıt Üretme (Output Handling)

  • AI modeli yanıtı oluşturur.
  • Yanıt, kullanıcıya uygun bir formatta iletilir.

4. API ve Entegrasyonlar

  • AI Agent, dış veri kaynaklarına erişebilir ve işlemleri otomatik hale getirebilir.

İlk Prototip

import openai

# API Anahtarınızı Buraya Ekleyin
OPENAI_API_KEY = "your-api-key-here"

def chat_with_ai(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}],
        api_key=OPENAI_API_KEY
    )
    return response["choices"][0]["message"]["content"]

# Kullanıcıdan giriş al ve yanıt ver
while True:
    user_input = input("Soru sor (Çıkmak için 'exit' yazın): ")
    if user_input.lower() == "exit":
        break
    print("AI: ", chat_with_ai(user_input))

Bu kod, temel bir terminal tabanlı sohbet botu oluşturur. Ancak, daha gelişmiş bir AI Agent için LangChain ve vektör veritabanı gibi ek bileşenler eklememiz gerekecek.

Geliştirme ve Entegrasyon

LangChain ile Daha Kullanışlı AI Agent

LangChain, dil modellerini veri kaynakları ve araçlarla entegre etmenize yardımcı olur.

from langchain.chat_models import ChatOpenAI
from langchain.schema import SystemMessage, HumanMessage

llm = ChatOpenAI(model_name="gpt-4", openai_api_key=OPENAI_API_KEY)

def ai_agent(user_input):
    messages = [
        SystemMessage(content="Sen bir AI asistanısın."),
        HumanMessage(content=user_input)
    ]
    return llm(messages).content

while True:
    user_input = input("Mesajınızı girin: ")
    if user_input.lower() == "exit":
        break
    print("AI Agent: ", ai_agent(user_input))

Bellek Kullanımı (Vektör Veritabanı ile Hafıza)

AI Agent’ınızın geçmiş konuşmaları hatırlayabilmesi için vektör veritabanı (Pinecone veya ChromaDB) kullanabilirsiniz. Biz bu projede ChromaDB kullanacağız.

import chromadb

chroma_client = chromadb.Client()
collection = chroma_client.create_collection(name="chat_memory")

# Belleğe mesaj ekleme
collection.add(
    documents=["Merhaba, ben bir yapay zeka asistanıyım! Size nasıl yardımcı olabilirim?"],
    metadatas=[{"source": "ai_agent"}],
    ids=["1"]
)

# Bellekten veri çekme
results = collection.query(
    query_texts=["Sen kimsin?"],
    n_results=1
)
print(results)

AI Agent için Web Arayüzü

AI Agent’ınızı FastAPI kullanarak bir web servisine dönüştürelim.

from fastapi import FastAPI
import openai

app = FastAPI()

@app.post("/chat")
async def chat(request: dict):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": request["message"]}],
        api_key=OPENAI_API_KEY
    )
    return {"response": response["choices"][0]["message"]["content"]}

# API'yi çalıştırmak için:
# uvicorn filename:app --reload

Docker ile Deployment (Canlıya Alma)

Geliştirdiğiniz AI Agent’ı, yerel sisteminizde çalıştırmanın yanı sıra bir sunucuda barındırmanız gerekebilir. Bunun için Docker kullanacağız. Docker, uygulamanızı bir kapsayıcı içinde çalıştırarak bağımsız bir ortam sağlar.

Docker Nedir ve Neden Kullanmalıyız?

Docker, uygulamalarınızı ve bağımlılıklarını kapsülleyen bir platformdur. AI Agent’ınızı Docker kullanarak çalıştırmak, şu avantajları sağlar:

  • Taşınabilirlik: Kapsayıcıyı herhangi bir makineye taşıyabilirsiniz.
  • Kolay Ölçekleme: AI Agent’ınızı birçok sunucuda aynı anda çalıştırabilirsiniz.
  • Bağımlılık Yönetimi: Kütüphane ve bağımlılık sürümleri kontrol altında olur.

Dockerfile ile AI Agent’ı Paketleme

AI Agent’ınızı FastAPI kullanarak oluşturduğunuzu varsayalım. İlk olarak, projenizin ana dizininde bir Dockerfile oluşturun:

# Python 3.9 kullanarak temel bir Docker imajı oluşturuyoruz
FROM python:3.9

# Çalışma dizinini belirliyoruz
WORKDIR /app

# Gerekli bağımlılıkları yüklemek için dosyaları kopyalıyoruz
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Ana kod dosyamızı konteynere kopyalıyoruz
COPY . .

# FastAPI uygulamasını çalıştırmak için Uvicorn kullanıyoruz
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

Docker Konteynerini Oluşturma ve Çalıştırma

Öncelikle, bağımlılıkları içeren requirements.txt dosyanızı oluşturun:

fastapi
openai
uvicorn

Ardından, Docker imajınızı oluşturun:

docker build -t my-ai-agent .

Konteyneri başlatmak için:

docker run -p 8000:8000 my-ai-agent

Eğer Docker çalışıyorsa, artık localhost:8000 üzerinden AI Agent’ınıza erişebilirsiniz.

Docker Konteynerlerini Yönetme

Docker konteynerleri yönetmek için şu komutları kullanabilirsiniz:

  • Çalışan konteynerleri görmek için:
docker ps
  • Konteyneri durdurmak için:
docker stop <container_id>
  • Konteyneri silmek için:
docker rm <container_id>
  • İmajları listelemek için:
docker images

AI Modelini Eğitme ve İnce Ayarlar

Şimdiye kadar hazır bir AI modeli kullandık. Ancak, AI Agent’ınızı özel verilere dayalı olarak eğitmek isteyebilirsiniz. Bu bölümde, açık kaynak modeller üzerinde nasıl ince ayar (fine-tuning) yapacağınızı ele alacağız.

Hugging Face Transformers Kullanarak AI Modeli Eğitme

Hugging Face, açık kaynak AI modelleri ile çalışmayı kolaylaştıran bir platformdur.

Adım 1: Gerekli Kütüphaneleri Yükleyin
pip install transformers datasets torch
Adım 2: Modeli ve Verileri Yükleyin

Örneğin, distilgpt2 modelini eğitebiliriz:

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# Modeli ve tokenizer'ı yükleme
model_name = "distilgpt2"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
Adım 3: Veri Kümesini Kullanma

Modeli eğitmek için bir veri kümesi oluşturmalısınız. Hugging Face datasets kütüphanesi ile bir veri kümesi yükleyelim:

from datasets import load_dataset

dataset = load_dataset("wikitext", "wikitext-2-raw-v1", split="train")
Adım 4: Modeli Eğitme

İnce ayar işlemi için Trainer sınıfını kullanabiliriz:

from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    per_device_train_batch_size=8,
    per_device_eval_batch_size=8,
    num_train_epochs=3,
    save_total_limit=2
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset
)

trainer.train()

Birkaç saat sürebilecek bu işlemden sonra modelinizi kaydedebilirsiniz:

model.save_pretrained("./my_trained_model")
tokenizer.save_pretrained("./my_trained_model")

Özel Verilerle AI Modeli Eğitme

Eğer AI Agent’ınızı kendi verilerinizle eğitmek isterseniz, bir .txt veya .json formatında veri sağlayabilirsiniz:

import json

data = [
    {"text": "Merhaba! Sana nasıl yardımcı olabilirim?"},
    {"text": "Bugün hava nasıl olacak?"},
]

with open("custom_data.json", "w") as f:
    json.dump(data, f)

Ardından, bu veriyi modele yükleyebilirsiniz:

from datasets import load_dataset

dataset = load_dataset("json", data_files="custom_data.json")

Bu verilerle eğitilen bir model, AI Agent’ınızı belirli bir konuda özelleştirmek için kullanılabilir.

Olası Hatalar ve Çözümleri

AI Agent geliştirirken sıkça karşılaşılan hatalar şunlardır:

OpenAI API Hataları
HataÇözüm
openai.error.AuthenticationErrorAPI anahtarınızın doğru olup olmadığını kontrol edin.
openai.error.RateLimitErrorAPI kullanım limitinizi aştınız. Daha az istek göndermeyi deneyin veya daha yüksek bir plan satın alın.
openai.error.InvalidRequestErrorModelinize uygun olmayan bir istek yaptınız. Giriş formatını kontrol edin.
Model Eğitim Hataları
HataÇözüm
RuntimeError: CUDA out of memoryGPU belleğiniz yetersiz olabilir. Küçük batch size kullanın veya CPU’ya geçin.
KeyError: 'train'Veri kümesi düzgün yüklenmedi. JSON formatını doğrulayın.
TypeError: expected str, got listModelin giriş formatının doğru olduğundan emin olun.
API ve Deployment Hataları
HataÇözüm
ModuleNotFoundError: No module named 'fastapi'Gerekli kütüphanelerin yüklü olduğundan emin olun. (pip install fastapi)
uvicorn.error.ServerErrorFastAPI veya Flask sunucunuzu başlattığınızdan emin olun.
docker: command not foundDocker’ın kurulu olduğundan emin olun.

AI Agent’ınızı Bir Adım Öteye Taşıyın

AI Agent’ınızı temel işlevselliklerin ötesine taşımak için çeşitli geliştirme yöntemleri vardır. Bu bölümde, AI Agent’ınızı nasıl daha akıllı, hızlı ve işlevsel hale getirebileceğinizi detaylandıracağız.

Çoklu Model Desteği

AI Agent’inizi hem metin tabanlı yanıtlar üreten bir model hem de görseller oluşturan bir model ile çalıştırabilirsiniz. Aşağıdaki kod, OpenAI GPT-4 ile metin işlemesini ve Stable Diffusion ile görüntü oluşturmayı birleştirir:

import openai
from diffusers import StableDiffusionPipeline
import torch

OPENAI_API_KEY = "your-api-key-here"

# OpenAI Metin İşleme
def chat_with_ai(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}],
        api_key=OPENAI_API_KEY
    )
    return response["choices"][0]["message"]["content"]

# Stable Diffusion Görüntü Üretme
def generate_image(prompt):
    model_id = "CompVis/stable-diffusion-v1-4"
    pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
    pipe = pipe.to("cuda")  # GPU hızlandırma için

    image = pipe(prompt).images[0]
    image.save("generated_image.png")
    return "generated_image.png"

# Kullanıcıdan giriş al ve metin veya görsel yanıt döndür
while True:
    user_input = input("Bir şey yazın (Çıkmak için 'exit' yazın): ")
    if user_input.lower() == "exit":
        break
    elif "resim çiz" in user_input or "görsel oluştur" in user_input:
        print("AI: Görsel oluşturuluyor...")
        img_path = generate_image(user_input.replace("resim çiz", "").strip())
        print(f"AI: Görsel {img_path} olarak kaydedildi.")
    else:
        print("AI:", chat_with_ai(user_input))

Bu geliştirme ne kazandırır?

  • Kullanıcılar yalnızca yazılı yanıtlar almakla kalmaz, aynı zamanda yapay zekanın ürettiği görselleri de kullanabilirler.
  • Örneğin, bir AI sanatçısı veya içerik üreticisi asistanı oluşturabilirsiniz.

AI Agent’ınızı Sesle Çalıştırın

Birçok AI Agent sadece yazılı metin girişleriyle çalışır. Ancak, ses tanıma (Speech-to-Text, STT) ve ses sentezi (Text-to-Speech, TTS) teknolojilerini kullanarak AI Agent’inizi bir sesli asistana dönüştürebilirsiniz.

Kullanıcı Konuşmalarını Tanıma (Speech-to-Text – STT)

Google’ın speech_recognition kütüphanesi ile AI Agent’inize sesle komut verebilirsiniz.

import speech_recognition as sr

recognizer = sr.Recognizer()

def recognize_speech():
    with sr.Microphone() as source:
        print("AI: Konuşmanızı bekliyorum...")
        recognizer.adjust_for_ambient_noise(source)
        audio = recognizer.listen(source)

    try:
        text = recognizer.recognize_google(audio, language="tr-TR")
        print(f"AI: Duydum -> {text}")
        return text
    except sr.UnknownValueError:
        print("AI: Ne dediğinizi anlayamadım.")
        return ""
    except sr.RequestError:
        print("AI: Google hizmetine erişilemiyor.")
        return ""
AI Yanıtlarını Sesli Okutma (Text-to-Speech – TTS)

pyttsx3 veya gTTS (Google Text-to-Speech) kullanarak AI Agent’inizin konuşmasını sağlayabilirsiniz.

from gtts import gTTS
import os

def speak(text):
    tts = gTTS(text=text, lang="tr")
    tts.save("response.mp3")
    os.system("mpg321 response.mp3")  # Linux/macOS için. Windows için: os.system("start response.mp3")

Şimdi AI Agent’inizi sesli çalıştırabilirsiniz:

while True:
    command = recognize_speech()
    if command.lower() == "çık":
        break
    response = chat_with_ai(command)
    print("AI:", response)
    speak(response)

Bu geliştirme ne kazandırır?

  • AI Agent’inizi bir sesli asistan haline getirebilirsiniz.
  • Görme engelli kullanıcılar için daha erişilebilir bir çözüm sunabilirsiniz.

AI Agent’ınızı Sohbet Botu Olarak Kullanma

Birçok şirket ve web sitesi, AI destekli sohbet botlarını müşteri hizmetleri için kullanıyor. AI Agent’inizi bir web sitesine entegre etmek istiyorsanız, Flask veya FastAPI ile bir API oluşturabilirsiniz.

Flask ile Basit Bir Chatbot API’si
from flask import Flask, request, jsonify
import openai

app = Flask(__name__)
OPENAI_API_KEY = "your-api-key-here"

@app.route("/chat", methods=["POST"])
def chat():
    user_input = request.json["message"]
    response = openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": user_input}],
        api_key=OPENAI_API_KEY
    )
    return jsonify({"response": response["choices"][0]["message"]["content"]})

if __name__ == "__main__":
    app.run(debug=True)

Bu API’ye bir frontend bağlayarak canlı bir chatbot oluşturabilirsiniz.

Son Sözler

Yapay zekanın hızla geliştiği bu dönemde, kendi AI Agent’ınızı sıfırdan oluşturmak, onu geliştirmek ve gerçek dünya uygulamalarında kullanmak artık sadece büyük teknoloji şirketlerine özgü bir ayrıcalık değil. Bu rehberde, doğru teknolojileri seçmekten model eğitimine, bellek yönetiminden API entegrasyonuna, dağıtımdan hata yönetimine kadar her detayı ele aldık. Artık elinizde, AI dünyasında kendi izini bırakabilecek güçlü bir temel var.

Bu noktada önemli olan, öğrendiklerinizi nasıl uyguladığınız ve AI Agent’ınızı nasıl sürekli geliştirip optimize ettiğinizdir. Belki bugün basit bir chatbot geliştirdiniz, ancak birkaç ay içinde onu sesli asistan haline getirebilir, daha sonra müşteri hizmetleri için akıllı bir destek sistemi veya kişisel üretkenliğinizi artıran bir yardımcıya dönüştürebilirsiniz. Yeteneklerinizi ve yapay zekanın sunduğu sınırsız olanakları birleştirerek inovatif çözümler üretebilir, hatta kendi benzersiz AI tabanlı ürününüzü piyasaya sürebilirsiniz.

Unutmayın, teknoloji sürekli ilerliyor ve bu alanda bir adım önde olmak için denemeye, öğrenmeye ve geliştirmeye devam etmelisiniz. Küçük projelerle başlayın, geri bildirimleri analiz edin, eksik yönleri güçlendirin ve AI Agent’ınızı zamanla daha akıllı ve etkili hale getirin. Bugün küçük bir adımdan ibaret gibi görünen bu yolculuk, belki de gelecekte büyük bir yapay zeka girişimine dönüşecek. Şimdi, kendi AI Agent’ınızı hayata geçirmek için harekete geçme zamanı!

Alelade bir mahluk.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Hemen ücretsiz mail bültenine katılın ve yeni güncellemelerden haberdar olan ilk kişi olun.