0Pricing
AI Agents · Ders

ReAct'i Sıfırdan Uygulama

LangChain kullanmadan 100 satırlık bir Python uygulaması yazın: Eylem satırlarını ayrıştırın, araçları çalıştırın ve Son Yanıt'a kadar döngüyü sürdürün.

ReAct'i Sıfırdan Uygulama, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AI Agents öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Agents kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

Döngüyü Kendiniz Oluşturun

ReAct'i yaklaşık 100 Python satırında yazabilirsiniz — hiçbir çerçeveye gerek yoktur. Bunu bir kez yapmak, çerçevelerin neleri soyutladığını anlamanızı sağlar.

Step 1: Define Tools

import json, math

def calculator(expression: str) -> str:
    try:
        return str(eval(expression, {'__builtins__': {}}, vars(math)))
    except Exception as e:
        return f'Error: {e}'

def search_wikipedia(query: str) -> str:
    # placeholder — call a real search API
    return f'Wikipedia summary for: {query}'

TOOLS = {
    'calculator': calculator,
    'search_wikipedia': search_wikipedia,
}

print(calculator('2 + 2 * sqrt(16)'))
print(search_wikipedia('agents'))

Step 2: Tool Schemas

schemas = [
    {'type': 'function', 'function': {
        'name': 'calculator',
        'description': 'Evaluate a math expression like 2 + 2 * sqrt(16)',
        'parameters': {'type': 'object', 'properties': {'expression': {'type': 'string'}}, 'required': ['expression']}
    }},
    {'type': 'function', 'function': {
        'name': 'search_wikipedia',
        'description': 'Search Wikipedia and return a summary',
        'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}, 'required': ['query']}
    }}
]
import json
print(json.dumps(schemas, indent=2))

Step 3: System Prompt

system = '''
You are a research assistant. Use the available tools when needed.
Think step by step. If you have enough information, give a final answer.
'''
print(system.strip())

Step 4: The Loop

from openai import OpenAI
client = OpenAI()

def react(question, max_steps=10):
    messages = [
        {'role': 'system', 'content': system},
        {'role': 'user', 'content': question}
    ]
    for step in range(max_steps):
        r = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=messages,
            tools=schemas,
        )
        msg = r.choices[0].message
        messages.append(msg)
        if not msg.tool_calls:
            return msg.content
        for tc in msg.tool_calls:
            args = json.loads(tc.function.arguments)
            try:
                result = TOOLS[tc.function.name](**args)
            except Exception as e:
                result = f'Tool error: {e}'
            messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': str(result)})
    return 'Step limit reached.'

Step 5: Run It

answer = react('What is the population of Tokyo times the square root of pi?')
print(answer)

6. Adım: Günlük Kaydı Ekleme

Hata ayıklama için her adımı kaydedin:

def react_verbose(question, max_steps=10):
    messages = [...]
    for step in range(max_steps):
        r = client.chat.completions.create(model='gpt-4o-mini', messages=messages, tools=schemas)
        msg = r.choices[0].message
        print(f'[step {step}] thought: {msg.content}')
        if msg.tool_calls:
            for tc in msg.tool_calls:
                print(f'[step {step}] action: {tc.function.name}({tc.function.arguments})')
        ...

7. Adım: Adım Sayacını Araç Olarak Kullanma

Bazı aracılar, modelin ne zaman yakınsaması gerektiğini bilmesi için adım sayısını sistem istemine ekler:

system = f'You have at most {MAX_STEPS} steps. Step {current_step}/{MAX_STEPS}. ...'

8. Adım: Son Yanıt Biçimi

Yapılandırılmış çıktı istiyorsanız son araç çağrısını zorunlu kılın:

tools.append({'type': 'function', 'function': {
    'name': 'final_answer',
    'description': 'Submit the final answer to the user.',
    'parameters': {'type': 'object', 'properties': {'answer': {'type': 'string'}}, 'required': ['answer']}
}})
# Loop terminates when final_answer is called.

9. Adım: Araç Hataları

Aracının kurtarılabilmesi için hataları her zaman araç sonuçları olarak döndürün:

try:
    result = TOOLS[name](**args)
except Exception as e:
    result = f'TOOL ERROR: {type(e).__name__}: {e}'
# Model sees the error and can try a different approach.

10. Adım: Paralel Araç Çağrıları

msg.tool_calls birden çok giriş içeriyorsa bunları paralel olarak çalıştırın:

import asyncio

async def run_tools(tool_calls):
    async def run_one(tc):
        args = json.loads(tc.function.arguments)
        return tc.id, TOOLS[tc.function.name](**args)
    return await asyncio.gather(*[run_one(tc) for tc in tool_calls])

11. Adım: Sohbeti Sınırlandırma

MAKS_ADIM içinde bile ileti listeleri aşırı büyüyebilir. Turlar arasında belirteç sayısına göre kısaltın:

if total_tokens(messages) > 6000:
    messages = trim_messages(messages)

12. Adım: Üretime Hazırlama

Üretim için şunları ekleyin: araç çağrılarında zaman aşımı, araç başına kotalar, API hatalarında yeniden deneme ve bekleme, tam iz günlükleri. Ancak yukarıdaki döngü iskeletinizdir.

Araç Hatalarını Ele Alma

Bir araç istisna oluşturduğunda ne yapmalısınız?

Özet

Yaklaşık 80 satırda ReAct: ileti listesi + while döngüsü + yönlendirme tablosu. Çerçeveler kullanım kolaylığı ekler, ancak temel yapı budur.

Sıkça Sorulan Sorular

“ReAct'i Sıfırdan Uygulama” dersi ücretsiz mi?

Evet — “ReAct'i Sıfırdan Uygulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AI Agents kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Agents kursu toplamda 4 dersten oluşur.

“ReAct'i Sıfırdan Uygulama” dersinde ne öğreneceğim?

LangChain kullanmadan 100 satırlık bir Python uygulaması yazın: Eylem satırlarını ayrıştırın, araçları çalıştırın ve Son Yanıt'a kadar döngüyü sürdürün. AI Agents ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

AI Agents öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Agents, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“ReAct'i Sıfırdan Uygulama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu AI Agents dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Agents dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ReAct: Akıl Yürütme ve Eylem Kalıbı
  2. ReAct'i Sıfırdan Uygulama
  3. Yaygın Araç Kümeleri (Web, Hesap Makinesi, RAG)
  4. Araç Hatalarını Algılama ve Kurtarma
← AI Agents Sayfasına Dön