Sohbet Tamamlama Uç Noktası
Sistem, kullanıcı ve asistan rollerini içeren ileti dizisini anlayın, ilk isteminizi hazırlayın ve API'den dönen yanıt nesnesini yorumlayın.
Sohbet Tamamlama Uç Noktası, CoddyKit'te ücretsiz bir AI Engineering Academy 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 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.
Mesaj Dizisi Mimarisi
Chat Completions uç noktası bir mesaj dizisi üzerinde çalışır: her biri bir role (system, user veya assistant) sahip dönüşlerin listesi. Model durum bilgisi tutmaz; bu nedenle geçmişi her seferinde göndermeniz gerekir.
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': 'You are a concise Python tutor.'},
{'role': 'user', 'content': 'What is a list comprehension?'}
]
)
print(response.choices[0].message.content)System Rolü: Davranışı Tanımlama
System mesajı en güçlü aracınızdır. Kullanıcı tek bir kelime yazmadan önce modelin kişiliğini, kurallarını ve biçimini belirler. Buraya zaman ayırın; her şeyi şekillendirir. Koda bakın.
system_prompt = '''You are a customer support agent for TechShop.
You help customers with: order tracking, returns, and product questions.
You do NOT discuss pricing changes or competitor products.
Always respond in 2-3 sentences maximum.
If you cannot help, say: 'Let me connect you with a human agent.'
'''
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': 'Where is my order #12345?'}
]
)Birden Çok Turlu Sohbeti Yönetme
Bir sohbeti sürdürmek için her dönüşü mesaj dizisine append eder ve dizinin tamamını yeniden gönderirsiniz. Modelin hatırlıyor gibi görünmesinin nedeni budur; modele tüm geçmişi aktarırsınız.
history = [
{'role': 'system', 'content': 'You are a helpful assistant.'}
]
def chat(user_message):
history.append({'role': 'user', 'content': user_message})
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=history
)
assistant_reply = response.choices[0].message.content
history.append({'role': 'assistant', 'content': assistant_reply})
return assistant_reply
print(chat('My name is Alice.'))
print(chat('What is my name?')) # model remembers 'Alice'API Yanıtının Yapısı
Yanıt yalnızca metin değil, bir nesnedir. choices yanıtı içerir, finish_reason neden durduğunu belirtir ve usage belirteci sayısını gösterir; bu da maliyetinizi belirler. Bunları üretim ortamında günlüğe kaydedin.
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Say hello in one word.'}]
)
# Accessing response fields
print('Content:', response.choices[0].message.content)
print('Finish reason:', response.choices[0].finish_reason) # 'stop'
print('Model:', response.model) # exact version like gpt-4o-mini-2024-07-18
print('Prompt tokens:', response.usage.prompt_tokens)
print('Completion tokens:', response.usage.completion_tokens)
print('Total tokens:', response.usage.total_tokens)finish_reason Değerini Anlama
finish_reason, üretimin neden durduğunu belirtir. 'stop' tamamlandığı, 'length' ise max_tokens sınırına ulaşıp yanıtın ortasında kesildiği anlamına gelir. Her zaman kontrol edin; kesilme sessiz bir hatadır.
def safe_completion(messages, max_tokens=500):
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
max_tokens=max_tokens
)
choice = response.choices[0]
if choice.finish_reason == 'length':
print(f'WARNING: Response was truncated at {max_tokens} tokens!')
elif choice.finish_reason == 'content_filter':
print('WARNING: Response blocked by content filter!')
return None
return choice.message.contentDoğru Modeli Seçme
İşinize uygun modeli seçin. gpt-4o zor akıl yürütme görevlerinde güçlüdür; gpt-4o-mini çok daha ucuzdur ve görevlerin çoğunu iyi şekilde yerine getirir. Daha büyük modelin daha iyi sonuç vereceğini varsaymadan önce karşılaştırmalı ölçüm yapın.
# Model comparison guidance
models = {
'gpt-4o': {
'use_for': 'Complex reasoning, code generation, nuanced analysis',
'input_cost_per_1M': 2.50, # USD
'output_cost_per_1M': 10.00
},
'gpt-4o-mini': {
'use_for': 'Classification, extraction, summarization, Q&A',
'input_cost_per_1M': 0.15,
'output_cost_per_1M': 0.60
}
}
# gpt-4o is ~17x more expensive on input tokensMesajlardaki İçerik Türleri
Bir mesajın içeriği metinden ibaret olmak zorunda değildir. gpt-4o gibi görsel modellerde metin ve görselleri bir arada içeren bir liste gönderebilirsiniz; böylece grafikler veya ekran görüntüleri hakkında sorular sorabilirsiniz.
# Sending an image to a vision-capable model
response = client.chat.completions.create(
model='gpt-4o',
messages=[
{
'role': 'user',
'content': [
{
'type': 'text',
'text': 'What is in this image? Describe in one sentence.'
},
{
'type': 'image_url',
'image_url': {'url': 'https://example.com/photo.jpg'}
}
]
}
]
)n Parametresi: Birden Çok Tamamlama
n parametresi tek bir istem için birden çok tamamlama döndürür. En iyisini seçmek veya güven ölçmek için kullanışlıdır: n seçeneğinin tümü aynı sonucu veriyorsa model emindir; sonuçlar çelişiyorsa dikkatli olun.
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=[{'role': 'user', 'content': 'Name the capital of Germany.'}],
n=3, # generate 3 independent completions
temperature=0.5
)
for i, choice in enumerate(response.choices):
print(f'Completion {i+1}: {choice.message.content}')
# Check if all completions agree (confidence signal)
answers = [c.message.content.strip() for c in response.choices]
print('All agree:', len(set(answers)) == 1)Yanıtı Dize Olarak Ele Alma
Yanıtı metin olarak almak için yol her zaman response.choices[0].message.content şeklindedir. Bunu bir yardımcı işlevle sarın ve araç çağrılarında veya filtrelemelerde görülebilen None değerini kontrol edin.
def get_completion(prompt, system='You are a helpful assistant.', model='gpt-4o-mini'):
'''Simple helper that returns the response text as a string.'''
response = client.chat.completions.create(
model=model,
messages=[
{'role': 'system', 'content': system},
{'role': 'user', 'content': prompt}
]
)
content = response.choices[0].message.content
if content is None:
raise ValueError(f'No content in response. Finish reason: {response.choices[0].finish_reason}')
return content
result = get_completion('Explain recursion in one sentence.')
print(result)Ham İsteği ve Yanıtı İnceleme
Garip yanıtların hata ayıklamasını mı yapıyorsunuz? Ham isteği ve yanıtı inceleyin. OPENAI_LOG=debug ayarı, tüm gövdeyi terminalinize yazdırır; aktarım sırasında neler olduğunu görmenin en hızlı yoludur.
import json
import httpx
# Enable debug logging (shows full request/response)
import os
os.environ['OPENAI_LOG'] = 'debug'
# Or use a custom logging client:
class LoggingClient(httpx.Client):
def send(self, request, *args, **kwargs):
print('REQUEST:', request.method, request.url)
print('BODY:', json.loads(request.content))
response = super().send(request, *args, **kwargs)
print('STATUS:', response.status_code)
return responseBasit Bir Sohbet Döngüsü Oluşturma
Artık basit bir sohbet döngüsü oluşturabilirsiniz: bir mesaj listesi tutun, her dönüşü ekleyin, tümünü gönderin ve tekrarlayın. Bu basit yapı, API üzerindeki her sohbet uygulamasının temelini oluşturur. Kodda gösterilmiştir.
import openai
client = openai.OpenAI()
SYSTEM_PROMPT = 'You are a helpful assistant. Be concise.'
def simple_chat_loop():
messages = [{'role': 'system', 'content': SYSTEM_PROMPT}]
print('Chat started. Type "quit" to exit.')
while True:
user_input = input('You: ').strip()
if user_input.lower() == 'quit':
break
if not user_input:
continue
messages.append({'role': 'user', 'content': user_input})
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
max_tokens=500
)
assistant_reply = response.choices[0].message.content
messages.append({'role': 'assistant', 'content': assistant_reply})
print(f'Assistant: {assistant_reply}\n')
print('Example chat loop defined. Run simple_chat_loop() to start.')Hızlı Kontrol
Bu dersteki Yapay Zekâ Mühendisliği kavramlarını ne kadar anladığınızı test edin.
Ders Özeti
Sohbetin temelini öğrendiniz: mesaj dizisi sohbeti yönetir; yanıt ise içeriği, finish_reason değerini ve belirteç sayılarını taşır. Sırada: parametreler.
Yapay zeka eğitmeniyle Python öğ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
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“Sohbet Tamamlama Uç Noktası” dersi ücretsiz mi?
Evet — “Sohbet Tamamlama Uç Noktası” 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.
“Sohbet Tamamlama Uç Noktası” dersinde ne öğreneceğim?
Sistem, kullanıcı ve asistan rollerini içeren ileti dizisini anlayın, ilk isteminizi hazırlayın ve API'den dönen yanıt nesnesini yorumlayı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 2. dersidir.
“Sohbet Tamamlama Uç Noktası” 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
- Python Ortamınızı Kurma
- Sohbet Tamamlama Uç Noktası
- Parametrelerle Model Davranışını Denetleme
- Hata İşleme ve İstek Hız Sınırları