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
- ReAct: Akıl Yürütme ve Eylem Kalıbı
- ReAct'i Sıfırdan Uygulama
- Yaygın Araç Kümeleri (Web, Hesap Makinesi, RAG)
- Araç Hatalarını Algılama ve Kurtarma