Bob Shell için Etkili Prompt'lar Yazmak
Rol, bağlam ve örnekler ekleyerek Bob Shell için etkili prompt'lar yaz, ardından belirsiz bir isteği hata yönetimi içeren belgelenmiş Python koduna dönüştür.
IBM Bob Shell, prompt'ın görevi, bir rol, bağlam ve örnek belirtmesi durumunda daha doğru kod üretir. Bu eğitimde belirsiz bir isteği yapılandırılmış bir prompt'a yeniden yaz ve sonuçları karşılaştır.
Ön koşullar
Bob Shell'in kurulu olduğunu doğrulamak için bir terminal aç ve sürümü kontrol et:
bob --versionPrompt nedir?
Prompt, istediğin çıktıyı elde etmek için Bob'a verdiğin soru, istek veya komuttur. Belirsiz prompt'lar belirsiz yanıtlar üretir. İyi bir prompt açık, spesifik ve Bob'un ne istediğini anlayabilmesi için yeterli bağlam içerir.
Prompt bileşenleri
Etkili bir prompt aşağıdaki bileşenleri bir araya getirir:
| Bileşen | Amacı | Örnek |
|---|---|---|
| Talimat | Bob'a hangi görevi gerçekleştireceğini söyler. Güçlü talimatlar belirsizliği azaltır. | "Bu API için yazılım malzeme listesi (SBOM) oluştur." |
| Rol | Bob'un yanıtı o bakış açısına göre uyarlaması için bir persona atar. | "Python konusunda uzman kıdemli bir yazılım mühendisisin." |
| Bağlam | Durum, hedef kitle, ton veya kısıtlamalar gibi arka plan bilgileri ekler. | "Fonksiyon bir üretim servisi için çalışır ve hata yönetimi içermelidir." |
| Örnek | Bob'un izlemesini istediğin deseni, formatı veya stili gösterir. | "@src/api/users.py dosyasının yapısını takip et." |
| İpucu | Genellikle prompt'ın sonuna yerleştirilen ve istediğin yanıta yönlendiren bir ifade. | "Yalnızca fonksiyonu döndür, def ile başla." |
Prompt'larını yeniden kullanmak ve ekibinle paylaşmak için özel slash komutları olarak kaydedebilirsin.
Etkili bir prompt'ı ne yapar?
Aşağıdaki en iyi uygulamalar, Bob için etkili prompt'lar yazmanıza yardımcı olabilir.
- Spesifik ol: Prompt'ın ne kadar spesifik olursa, Bob istediğini o kadar iyi anlayabilir. "Python fonksiyonunu nasıl yazarım?" yerine "Sayı listesi alıp ortalamasını döndüren bir Python fonksiyonunu nasıl yazarım?" diye sor.
- Bağlam sağla: Prompt'ın belirli bir proje veya kod tabanıyla ilgiliyse,
bu konuda biraz bağlam sağla. Bu, Bob'un durumuna uygun bir yanıt oluşturmasına
yardımcı olur. Bob'u belirli dosyalara
yönlendirmek için
@src/main.pygibi@referanslarını kullan. - Görevleri böl: Backlog'daki bir görevi iyileştirirken yaptığın gibi, karmaşık görevleri daha küçük ve yönetilebilir adımlara böl. Bu, Bob'un daha doğru ve odaklı yanıtlar oluşturmasına yardımcı olabilir.
- Örnekler ekle: Yeni bir API ekliyorsan, Bob'a kod tabanındaki iyi yazılmış API'leri örnek olarak incelemesini yönlendir. İstediğin format veya stili göstermek için prompt'ına da örnek ekleyebilirsin.
Belirsiz bir prompt'ı iyileştirme
Bu bölümde, Bob için belirsiz bir prompt yazacak ve çıktıyı inceleyeceksin. Daha sonra yanıtın kalitesini artırmak için en iyi uygulamalara dayanarak prompt'ını iyileştireceksin.
Amaç, Bob'un UTC formatında mevcut tarih ve saati yazdıran bir Python fonksiyonu oluşturmasını sağlamaktır. Fonksiyon iyi belgelenmiş ve hata yönetimi içermelidir.
Bir terminal açın ve Agent modunda etkileşimli bir oturum başlat:
bob chat --mode agentAşağıdaki prompt'ı gir:
Write a Python function that prints the date and time.Bob bir yanıt oluşturur, ancak tüm gereksinimlerini karşılamayabilir.
from datetime import datetime
def print_datetime():
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))Fonksiyonun hata yönetimi yoktur ve UTC değil, yerel saati yazdırır.
Bir sonrakini etkilememesi için /clear komutunu girerek konuşma geçmişini sıfırla:
/clearPrompt bileşenlerini kullanarak prompt'ını iyileştir:
- Rol: "Python 3 konusunda uzman kıdemli bir yazılım mühendisisin."
- Talimat: "UTC formatında mevcut tarih ve saati yazdıran bir Python 3 fonksiyonu yaz."
- Bağlam: "Fonksiyon iyi belgelenmiş ve hata yönetimi içermelidir."
- Örnek: Bob'u Real Python istisna yönetimi en iyi uygulamaları gibi yetkili bir kaynağa yönlendir.
İyileştirilmiş prompt'ı gir:
You are a senior software engineer with expertise in Python 3.
Write a Python 3 function that prints the current date and time in UTC format.
The function should be well documented and include error handling,
modeled after https://realpython.com/ref/best-practices/exception-handling/."""
utc_datetime.py — Utility for printing the current UTC date and time.
"""
from datetime import datetime, timezone
def print_utc_datetime() -> None:
"""Print the current date and time in UTC (ISO 8601 format).
Retrieves the current moment from the system clock, attaches UTC timezone
info, formats it as an ISO 8601 string, and writes it to stdout.
Returns:
None
Raises:
OSError: If the system clock cannot be read (e.g., hardware failure or
OS-level permission restrictions).
ValueError: If datetime formatting unexpectedly fails (e.g., year out
of the supported range).
Example:
>>> print_utc_datetime()
Current UTC date and time: 2025-07-15T13:42:00.123456+00:00
"""
try:
now_utc: datetime = datetime.now(tz=timezone.utc)
except OSError as exc:
# System clock is unavailable or inaccessible.
raise OSError("Failed to read the system clock.") from exc
try:
formatted: str = now_utc.isoformat()
except ValueError as exc:
# Extremely unlikely, but guard against out-of-range datetime values.
raise ValueError(
f"Failed to format the datetime object: {now_utc!r}"
) from exc
print(f"Current UTC date and time: {formatted}")
if __name__ == "__main__":
print_utc_datetime()İyileştirilmiş prompt, UTC kullanan, docstring ve istisna yönetimi içeren bir fonksiyon üretir.
IBM SkillsBuild
IBM SkillsBuild, Bob gibi yapay zeka asistanları için etkili prompt'lar yazma konusunda kurslar sunan ücretsiz bir çevrimiçi öğrenme platformudur.
İyi prompt yazma hakkında daha fazla bilgi edinmek için Craft Precise Prompts for AI Models kursunu al.
Sonraki adımlar
Bu eğitimde, etkili bir prompt'ın bileşenlerini öğrendin ve belirsiz bir prompt'ı istediğin çıktıyı güvenilir biçimde üreten bir hale getirdin.
Bob'un otomatik olarak uygulayabileceği yeniden kullanılabilir, tekrarlanabilir bir iş akışına dönüştürmek için Skill oluşturma ve kullanma bölümüne geç.