0Pricing
AI Engineering Academy · Ders

ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle

Modelin bir Thought oluşturduğu, bir Action seçtiği, bir Observation aldığı ve Final Answer'a ulaşana kadar bunu yinelediği ReAct döngüsünü anlayın.

ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle, CoddyKit'te ücretsiz bir AI Engineering Academy dersidir. Bu, 4 dersinin 1. 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 Engineering Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AI Engineering Academy kursu toplamda 4 dersten oluşur.

ReAct Çerçevesi Nedir

ReAct (Akıl Yürütme + Eylem), modelin dahili akıl yürütmesini harici eylemlerle iç içe geçiren bir istem çerçevesidir. Model, hemen nihai bir yanıt üretmek yerine bir Düşünce oluşturur, bir Eylem seçer, bu eylemin gerçekleştirilmesinden bir Gözlem alır ve Nihai Yanıt verebilene kadar bu döngüyü tekrarlar.

Düşün-Eyleme Geç-Gözlemle Döngüsü

ReAct döngüsünün her yinelemesi üç aşamadan oluşur:

  • Düşünce: Model, ne bildiği ve bir sonraki adımda ne öğrenmesi gerektiği üzerinde akıl yürütür.
  • Eylem: Model bir araç çağırır; örneğin web araması yapar, hesap makinesi kullanır veya veritabanında arama gerçekleştirir.
  • Gözlem: Araç çağrısının sonucu döndürülür ve modelin bağlamına eklenir.

Model, sonucunu Final Answer: ile belirtinceye kadar döngü devam eder.

ReAct İzleme Örneği

Bir arama aracı kullanarak 'Tokyo'nun nüfusu kaçtır?' sorusunu yanıtlayan bir ReAct aracısının somut izleme örneğini aşağıda bulabilirsiniz. Her adımın önceki gözlem üzerine nasıl kurulduğuna dikkat edin.

# ReAct trace (pseudocode showing the reasoning loop)

# Iteration 1
Thought_1 = 'I need to find the current population of Tokyo. I will search for it.'
Action_1 = 'search("Tokyo population 2024")'
Observation_1 = 'According to the 2023 census, Tokyo has approximately 13.96 million people in the city proper.'

# Iteration 2
Thought_2 = 'I have the population. I can now give a final answer.'
Final_Answer = 'The population of Tokyo is approximately 13.96 million people.'

ReAct Doğrudan İstem Yazımından Neden Daha İyi Sonuç Verir

Doğrudan istem yazımı, modelden belleğinden yanıt vermesini ister ve bu da olgusal sorularda halüsinasyonlara yol açar. Düşünce zinciri istem yazımı akıl yürütmeyi iyileştirir; ancak yine de harici bilgilere erişemez. ReAct bu ikisini birleştirir: düşünce zinciri gibi açık akıl yürütme izlerinin yanı sıra araç çağrılarıyla güncel bilgi toplama olanağı sunar.

ReAct İstem Yapısı

ReAct sistem istemi, modele kullanması gereken kesin biçimi öğretir. Kullanılabilir araçları açıklamalarıyla listeler ve Düşünce/Eylem/Gözlem/Nihai Yanıt düzenine ilişkin örnekler gösterir. Model, istem sayesinde bu biçimi tam olarak izlemeyi öğrenir.

REACT_SYSTEM_PROMPT = '''You are an AI assistant with access to these tools:

- search(query: str): Search the web for up-to-date information.
- calculator(expression: str): Evaluate a mathematical expression.
- lookup(topic: str): Look up a topic in the knowledge base.

Always follow this exact format:
Thought: [your reasoning about what to do next]
Action: tool_name(arguments)
Observation: [result of the action, provided by the system]
... (repeat as needed)
Final Answer: [your final response to the user]

Begin!'''

Düşünceyi, Eylemi ve Gözlemi Ayrıştırma

Uygulama kodunuz, ReAct döngüsünün çalışma zamanı olarak görev yapar. Her model yanıtından sonra çıktıyı ayrıştırarak eylem adını ve bağımsız değişkenleri çıkarın, ilgili Python işlevini çalıştırın, sonucu gözlem olarak biçimlendirin, ileti geçmişine ekleyin ve modeli yeniden çağırın.

import re

def parse_react_output(text: str):
    '''Extract action name and argument from a ReAct model output.'''
    action_match = re.search(r'Action:\s*(\w+)\((.*)\)', text)
    if action_match:
        tool_name = action_match.group(1)
        tool_input = action_match.group(2).strip('\"\' ')
        return tool_name, tool_input
    if 'Final Answer:' in text:
        answer = text.split('Final Answer:')[-1].strip()
        return 'final', answer
    return None, None

Aracı Yürütme Döngüsü

Yürütme döngüsü LLM'yi çağırır, çıktısını ayrıştırır, aracı görevlendirir, gözlemi ekler ve döngüyü sürdürür. Bir max_iterations koruması, model bir görevi çözemediğinde sonsuz döngüleri önler.

from openai import OpenAI

client = OpenAI()

def run_react_agent(user_query: str, tools: dict, max_iterations: int = 10) -> str:
    messages = [
        {'role': 'system', 'content': REACT_SYSTEM_PROMPT},
        {'role': 'user', 'content': user_query}
    ]

    for i in range(max_iterations):
        resp = client.chat.completions.create(model='gpt-4o', messages=messages)
        output = resp.choices[0].message.content
        messages.append({'role': 'assistant', 'content': output})

        tool_name, tool_input = parse_react_output(output)

        if tool_name == 'final':
            return tool_input

        if tool_name and tool_name in tools:
            observation = tools[tool_name](tool_input)
            messages.append({'role': 'user', 'content': f'Observation: {observation}'})
        else:
            messages.append({'role': 'user', 'content': 'Observation: Tool not found.'})

    return 'Max iterations reached without a final answer.'

Basit Araçları Kaydetme

Araçlar aslında Python işlevleridir. Bunları araç adını işlevle eşleyen bir sözlükte kaydedersiniz. İşlevler bir dize bağımsız değişkeni alır ve dize sonucu döndürür; bu, arayüzü basit tutar ve modelin gözlem olarak görmeyi beklediği biçimle tutarlıdır.

import math

def calculator_tool(expression: str) -> str:
    try:
        # Restrict to safe math expressions
        allowed_names = {k: v for k, v in math.__dict__.items() if not k.startswith('_')}
        result = eval(expression, {'__builtins__': {}}, allowed_names)
        return str(result)
    except Exception as e:
        return f'Error: {e}'

def search_tool(query: str) -> str:
    # Stub — replace with real web search API
    return f'Top result for "{query}": [placeholder result]'

# Register tools
tools = {
    'calculator': calculator_tool,
    'search': search_tool
}

ReAct ile Çok Adımlı Akıl Yürütme

ReAct, birden fazla bilgi parçasının birbirine bağlanmasını gerektiren çok adımlı sorularda özellikle başarılıdır. Örneğin: 'GPT-4'ü geliştiren şirketin CEO'su kimdir ve bu şirket hangi yıl kurulmuştur?' Aracı önce CEO'yu arar, ardından bu sonucu kullanarak şirketin kuruluş yılını bulur; yani akıl yürütmeyle birbirine bağlanan iki ayrı araç çağrısı gerçekleştirir.

ReAct ile Yalın Düşünce Zincirinin Karşılaştırılması

Düşünce Zinciri (CoT), modelin adım adım düşünmesini sağlayarak akıl yürütmeyi geliştirir; ancak model harici bilgilere erişemez. ReAct, CoT'ye eylemler ekler ve modelin gerçek verileri almasına, hesaplamalar yapmasına ve olguları doğrulamasına olanak tanır. Bunun karşılığında ReAct daha yavaştır (birden fazla API çağrısı yapar), ancak güncel veya uzmanlık gerektiren bilgi isteyen görevlerde çok daha doğrudur.

İzlerle ReAct Hatalarını Ayıklama

Bir ReAct aracısı yanlış yanıt ürettiğinde Düşünce/Eylem/Gözlem izinin tamamını inceleyin. Yaygın hata örüntüleri arasında aracıyı çağırmak yerine modelin bir gözlem uydurması, araç yürütmesini atlayan ayrıştırma hataları ve Düşünce adımındaki yanlış akıl yürütmenin hatalı bir eylem seçimine yol açması bulunur.

  • Bağlama eklenen her iletiyi günlüğe kaydedin
  • Bir sonraki model çağrısından önce araç çıktısının gerçekten eklendiğini kontrol edin
  • Eylem düzenli ifadesinin modelin çıktı biçimiyle eşleştiğini doğrulayın

Hızlı Kontrol

ReAct çerçevesi konusundaki anlayışınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: ReAct, Düşünceyi, Eylemi ve Gözlemi bir döngü içinde iç içe geçirir, uygulama kodunuz araçları çalıştıran ve gözlemleri ekleyen çalışma zamanı olarak görev yapar ve max_iterations korumaları sonsuz aracı döngülerini önler. Sırada, aracınızın uygulamanızın gerektirdiği işleri tam olarak yapabilmesi için özel araçlar tanımlamayı öğreneceğiz.

Sıkça Sorulan Sorular

“ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle” dersi ücretsiz mi?

Evet — “ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle” 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 Engineering Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AI Engineering Academy kursu toplamda 4 dersten oluşur.

“ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle” dersinde ne öğreneceğim?

Modelin bir Thought oluşturduğu, bir Action seçtiği, bir Observation aldığı ve Final Answer'a ulaşana kadar bunu yinelediği ReAct döngüsünü anlayın. AI Engineering Academy 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 Engineering Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te AI Engineering Academy, 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 1. dersidir.

“ReAct Çerçevesi: Düşün, Eyleme Geç, Gözlemle” 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 Engineering Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her AI Engineering Academy 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 Çerçevesi: Düşün, Eyleme Geç, Gözlemle
  2. Agent'ınız İçin Araçlar Tanımlama
  3. LangChain ile ReAct Agent Oluşturma
  4. Ajan Hatalarını ve Döngülerini Yönetme
← AI Engineering Academy Sayfasına Dön