Belgeleriniz Üzerinde Soru-Cevap Botu
Çalışan bir RAG botu yayınlayın: PDF'leri alın, gömüntüleyin, arayın ve üretin. Üretim aracılarının 'merhaba dünya' örneği.
Belgeleriniz Üzerinde Soru-Cevap Botu, CoddyKit'te ücretsiz bir AI Agents 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 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
Kendi belgelerinizden (PDF, Markdown vb.) soruları yanıtlayan bir sohbet robotu oluşturun. Bu, üretim ajanlarının "merhaba dünya" örneğidir ve her ekip için hemen kullanışlıdır.
Mimari
- Alma: belgeleri yükle -> parçalara böl -> vektörleştir -> vektör veritabanında sakla
- Sorgu: soruyu vektörleştir -> en iyi K parçayı getir -> isteme yerleştir -> LLM
- Kaynak gösterme: parçalara kimlikler ekleyerek biçimlendir; LLM'den kaynak göstermesini iste
Step 1: Load and Chunk
from langchain.text_splitter import RecursiveCharacterTextSplitter
from pypdf import PdfReader
text = ''
for page in PdfReader('handbook.pdf').pages:
text += page.extract_text() + '\n'
splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
chunks = splitter.split_text(text)
print(f'{len(chunks)} chunks')Step 2: Embed and Store
import chromadb
from openai import OpenAI
oai = OpenAI()
chroma = chromadb.PersistentClient(path='./db')
collection = chroma.get_or_create_collection('handbook')
resp = oai.embeddings.create(model='text-embedding-3-small', input=chunks)
vectors = [d.embedding for d in resp.data]
collection.add(ids=[f'c{i}' for i in range(len(chunks))], embeddings=vectors, documents=chunks)Step 3: Query Function
def query(question, k=4):
qvec = oai.embeddings.create(model='text-embedding-3-small', input=question).data[0].embedding
res = collection.query(query_embeddings=[qvec], n_results=k)
return res['documents'][0]Step 4: Build the Prompt
def make_prompt(question, chunks):
context = '\n\n'.join(f'[{i+1}] {c}' for i, c in enumerate(chunks))
return f'''
Using only the context below, answer the question.
If the answer is not present, say so.
Cite the source like [1], [2], etc.
Context:
{context}
Question: {question}
Answer:
'''
print(make_prompt("What is the return policy?", ["Returns accepted within 30 days.", "Item must be unused."]))
Step 5: Generate
def answer(question):
chunks = query(question)
prompt = make_prompt(question, chunks)
response = oai.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': prompt}],
temperature=0,
)
return response.choices[0].message.content
print(answer('What is our refund policy?'))Bir Kullanıcı Arayüzüne Bağlama
FastAPI ve basit bir HTML sayfasıyla (veya Streamlit ile) sarmalayın; çalışan bir uygulamanız olur.
# pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.post('/ask')
def ask(payload: dict):
return {'answer': answer(payload['question'])}Sohbet Geçmişi Ekleme
Çok turlu soru-cevap için mesajları saklayıp isteme aktarın:
messages = [{'role': 'system', 'content': 'You are a doc Q&A assistant.'}]
def chat(user_input):
messages.append({'role': 'user', 'content': user_input})
chunks = query(user_input)
context_msg = {'role': 'system', 'content': f'Context:\n{chr(10).join(chunks)}'}
response = oai.chat.completions.create(
model='gpt-4o-mini',
messages=[messages[0], context_msg] + messages[1:]
)
answer = response.choices[0].message.content
messages.append({'role': 'assistant', 'content': answer})
return answerYaygın Tuzaklar
- Parçalar çok büyük veya çok küçük — 500-800 belirteç deneyin
- Kaynak atfı yok — kullanıcılar kaynak gösterilmeyen yanıtlara güvenmez
- K çok büyük — belirteçleri israf eder ve dikkati dağıtır
- WHOLE soruyu sohbet geçmişiyle birlikte vektörleştirmek — yalnızca en son kullanıcı sorusunu vektörleştirin
Kaynak Bağlantıları Ekleme
Kaynak URL'lerini üst veride saklayın ve yanıtta gösterin:
metadata = [{'source': 'handbook.pdf', 'page': i} for i in range(len(chunks))]
# In the prompt, include 'source: <url>' so the LLM can produce clickable references.Değerlendirin
Kullanıcılardan 20 gerçek soru toplayın. Botun doğru yanıt verip vermediğini elle işaretleyin. Bunu başlangıç değerlendirme kümeniz olarak kullanın.
Yayınlayın ve Yineleyin
Üretimdeki bu bot, yaygın soruların %80'ini yanıtlar. Yanlış yanıt verdiği %20'lik kısma göre yineleyin — genellikle daha iyi parçalara ayırma veya yeniden sıralama gerekir.
Kaynak Atfı
İsteme kaynak kimliklerini neden ekleyip LLM'den kaynak göstermesini istemelisiniz?
Özet
Yaklaşık 50 satırda bir RAG botu. Uçlar ve doğrulamayla genişletin, kullanıma alın, parçalara ayırma ve getirme işlemleri üzerinde yineleyin. Bu kalıp sayısız ajan uygulamasında tekrarlanır.
Yapay zeka eğitmeniyle AI Agents öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 60
- Dersler
- 239
Sıkça Sorulan Sorular
“Belgeleriniz Üzerinde Soru-Cevap Botu” dersi ücretsiz mi?
Evet — “Belgeleriniz Üzerinde Soru-Cevap Botu” 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.
“Belgeleriniz Üzerinde Soru-Cevap Botu” dersinde ne öğreneceğim?
Çalışan bir RAG botu yayınlayın: PDF'leri alın, gömüntüleyin, arayın ve üretin. Üretim aracılarının 'merhaba dünya' örneği. 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 1. dersidir.
“Belgeleriniz Üzerinde Soru-Cevap Botu” 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ı