Web'de Gezen Araştırma Aracısı
Bir arama aracını, bir getirme aracını ve bir LLM'yi birleştirerek bir konuyu araştırın ve kaynaklı bir özet yazın.
Web'de Gezen Araştırma Aracısı, CoddyKit'te ücretsiz bir AI Agents dersidir. Bu, 4 dersinin 3. 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.
Proje Hedefi
Web'de arama yapan, sayfaları getiren ve kaynak gösteren bir özet yazan bir konu araştırma ajanı oluşturun — Perplexity'nin küçük bir sürümü gibi.
İhtiyacınız Olan Araçlar
- search — bir arama API'sini (Tavily, Serper, Brave) sorgulayın ve sonuçları döndürün
- fetch_url — bir sayfayı indirin ve temizlenmiş metni döndürün
- answer — ajan, kaynak gösteren son özeti yazar
Step 1: Search Tool
import requests
def search(query: str, k: int = 5) -> list[dict]:
r = requests.post(
'https://api.tavily.com/search',
json={'api_key': TAVILY_KEY, 'query': query, 'max_results': k}
)
return r.json()['results'] # list of {url, title, snippet}Step 2: Fetch Tool
from bs4 import BeautifulSoup
def fetch_url(url: str) -> str:
r = requests.get(url, timeout=10)
soup = BeautifulSoup(r.text, 'html.parser')
for tag in soup(['script', 'style', 'nav', 'footer']):
tag.decompose()
return soup.get_text(separator='\n', strip=True)[:5000] # truncateStep 3: Tool Definitions
tools = [
{'type': 'function', 'function': {
'name': 'search',
'description': 'Search the web for a query, return top results with URLs',
'parameters': {'type': 'object', 'properties': {'query': {'type': 'string'}}, 'required': ['query']}
}},
{'type': 'function', 'function': {
'name': 'fetch_url',
'description': 'Download the text of a URL',
'parameters': {'type': 'object', 'properties': {'url': {'type': 'string'}}, 'required': ['url']}
}}
]
import json
print(json.dumps(tools, indent=2))
Step 4: The Agent Loop
def research(question, max_steps=8):
messages = [
{'role': 'system', 'content': 'You are a research agent. Use search and fetch_url to gather facts. Cite each claim with a URL.'},
{'role': 'user', 'content': question}
]
for _ in range(max_steps):
r = oai.chat.completions.create(model='gpt-4o-mini', messages=messages, tools=tools)
msg = r.choices[0].message
messages.append(msg)
if not msg.tool_calls:
return msg.content
for tc in msg.tool_calls:
result = dispatch(tc)
messages.append({'role': 'tool', 'tool_call_id': tc.id, 'content': json.dumps(result)})
return 'Step limit reached'Tool Dispatcher
def dispatch(tc):
args = json.loads(tc.function.arguments)
if tc.function.name == 'search':
return search(**args)
if tc.function.name == 'fetch_url':
return fetch_url(**args)
return {'error': 'unknown tool'}Adım Sınırı Ekleme
Sınır olmazsa ajan sonsuza kadar döngüde kalabilir. max_steps=8 makul bir varsayılandır.
Getirilen Sayfaları Kısaltma
Çoğu sayfa 50 KB veya daha büyüktür — fazlasıyla büyük. 5000 karaktere (yaklaşık 1300 belirteç) kısaltın. Modelin daha fazlasına nadiren ihtiyacı olur.
robots.txt'ye Uyun
Üretim ortamında gezinme, robots.txt dosyasına ve sitenin Hizmet Koşulları'na uymalıdır. Şüpheye düştüğünüzde yönetilen bir arama/getirme hizmeti kullanın.
Sonuçları Önbelleğe Alma
Aynı sorgu ve URL sık sık istenir. Sonuçları Redis'te bir saat boyunca önbelleğe alın:
@lru_cache(maxsize=1000)
def cached_fetch(url):
return fetch_url(url)Hataları İşleme
Ağ hataları olağandır. Hatayı modele döndürün; böylece başka bir kaynağı deneyebilir:
try:
return fetch_url(url)
except Exception as e:
return {'error': f'Could not fetch {url}: {e}'}Kaynak Atıflarını Zorunlu Kılma
Sistem istemini şu ifadeyle bitirin: "Son yanıtınız [1] https://... biçiminde her iddia için bir URL içermelidir." — ayrıca bir çıktı şeması kontrolü eklemeyi düşünün.
Maliyeti İzleme
Araştırma ajanları pahalıdır — soru başına 5-15 araç çağrısı yapılır ve her biri kilobaytlarca veri getirir. Sorgu başına bir bütçe sınırı belirleyin.
Adım Sınırı
Ajan döngüsünde neden bir max_steps sınırı belirlemelisiniz?
Özet
search + getirme + LLM + bir adım sınırı = 50 satırda çalışan bir araştırma ajanı. Harika 3. proje.
Sıkça Sorulan Sorular
“Web'de Gezen Araştırma Aracısı” dersi ücretsiz mi?
Evet — “Web'de Gezen Araştırma Aracısı” 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.
“Web'de Gezen Araştırma Aracısı” dersinde ne öğreneceğim?
Bir arama aracını, bir getirme aracını ve bir LLM'yi birleştirerek bir konuyu araştırın ve kaynaklı bir özet yazı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 3. dersidir.
“Web'de Gezen Araştırma Aracısı” 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
- Belgeleriniz Üzerinde Soru-Cevap Botu
- Kod Açıklayan Bir Aracı
- Web'de Gezen Araştırma Aracısı
- DB'niz için SQL Asistanı