İlk Sohbet Botu
Bu rehberde, Python ve openai SDK'sı ile komut satırında çalışan basit bir sohbet botu yazacağız. Botun geçmişi hatırlamasını ve yanıtları akışla göstermesini sağlayacağız.
Hazırlık
bash
pip install openai
export QEVRON_API_KEY="sk-..." # kendi anahtarınız1. İstemciyi kurun
python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["QEVRON_API_KEY"],
base_url="https://app.qevron.ai/v1",
)2. Geçmişi tutan döngü
Sohbet botunun bağlamı hatırlaması için, her mesajı bir messages listesinde biriktiririz:
python
messages = [
{"role": "system", "content": "Sen kısa ve net yanıt veren bir asistansın."},
]
print("Sohbet başladı (çıkmak için 'q')\n")
while True:
user_input = input("Sen: ")
if user_input.strip().lower() == "q":
break
messages.append({"role": "user", "content": user_input})
# Yanıtı akışla al
print("Bot: ", end="", flush=True)
full = ""
stream = client.chat.completions.create(
model="verinova",
messages=messages,
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
full += delta
print(delta, end="", flush=True)
print("\n")
# Botun yanıtını da geçmişe ekle
messages.append({"role": "assistant", "content": full})Nasıl çalışıyor?
messageslistesi her turda büyür; böylece bot önceki konuşmayı "hatırlar".stream=Truesayesinde yanıt kelime kelime ekrana yazılır (bkz. Akış).- Botun yanıtını (
full) tekrarmessages'aassistantrolüyle eklemek bağlamın korunması için kritiktir.
İyileştirmeler
- Bağlamı sınırlayın: Çok uzun sohbetlerde eski mesajları kırpın (token tasarrufu).
- Sistem mesajını özelleştirin: Botun kişiliğini ve görevini
systemmesajıyla belirleyin. - Hata yönetimi:
429/503durumunda kısa bekleyip yeniden deneyin (bkz. Hatalar).
Sıradaki: RAG: Embedding + Rerank ile botunuza kendi dokümanlarınızı öğretin.