İçeriğe geç

Prompt Yönetimi: Template, Version Control, Registry

Production'da prompt'lar nasıl yönetilir? Template engine, version registry, environment-based config.

Şükrü Yusuf KAYA
9 dakikalık okuma
İleri

Production Prompt Yönetimi

Prompt as Code#

Prompt'lar kod gibi: versiyonlanır, review edilir, test edilir, deploy edilir.
text
prompts/
├── customer_support/
│ ├── v1.md
│ ├── v2.md ← currently deployed
│ ├── v3-canary.md ← A/B test
│ └── tests/
│ └── golden.yaml
├── classifier/
│ ├── v1.md
│ └── tests/
└── README.md
Prompt repo yapısı

Template Engine#

python
# Jinja2 ile template
from jinja2 import Template
 
prompt_tmpl = Template("""
Sen bir {{role}} asistanısın.
 
{% if knowledge_base %}
Bilgi kaynağı:
<knowledge>
{{ knowledge_base }}
</knowledge>
{% endif %}
 
Kullanıcı: {{user_query}}
 
{% if examples %}
Örnek cevaplar:
{% for ex in examples %}
- "{{ ex.input }}" → "{{ ex.output }}"
{% endfor %}
{% endif %}
""")
 
prompt = prompt_tmpl.render(
role="müşteri destek",
user_query="Sipariş nerede?",
examples=[{"input": "Kargo nerede?", "output": "Tracking numarası ile..."}],
)
Template-based prompt

Registry Pattern#

python
class PromptRegistry:
def __init__(self, base_path="prompts/"):
self.base = base_path
self.cache = {}
 
def get(self, name: str, version: str = None) -> str:
version = version or self._latest(name)
key = (name, version)
if key not in self.cache:
with open(f"{self.base}{name}/{version}.md") as f:
self.cache[key] = f.read()
return self.cache[key]
 
def list_versions(self, name: str) -> list[str]:
return sorted(os.listdir(f"{self.base}{name}/"))
 
# Kullanım
registry = PromptRegistry()
prompt = registry.get("customer_support", "v2")
Registry
Tools: Hub-style: PromptHub (Anthropic), Latitude, Pezzo. Kendi yazmak da %100 mümkün; 200 satır kod.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler