Capítulo 1: Versionamento de Prompts
Prompts como Código
# prompts/customer_support/v2.1.0.yaml
name: customer_support_agent
version: 2.1.0
description: "Prompt de assistente de suporte ao cliente"
author: ml-team@company.com
created: 2024-01-15
system_prompt: |
Você é um agente de suporte ao cliente prestativo da TechCorp.
Diretrizes:
- Seja educado e profissional
- Responda apenas perguntas sobre nossos produtos
- Se não tiver certeza, encaminhe para o suporte humano
- Nunca compartilhe informações confidenciais
user_template: |
Cliente: {customer_name}
Assinatura: {subscription_tier}
Pergunta: {query}
Contexto anterior: {context}
parameters:
temperature: 0.7
max_tokens: 500
model: gpt-4
evaluation:
golden_dataset: tests/customer_support_golden.json
metrics:
- helpfulness > 4.0
- accuracy > 0.9
Registro de Prompts
class PromptRegistry:
def __init__(self, storage_path: str):
self.storage_path = storage_path
self.prompts = {}
def register(self, prompt: Prompt) -> str:
"""Register a new prompt version."""
key = f"{prompt.name}/{prompt.version}"
self.prompts[key] = prompt
self._save_to_storage(prompt)
return key
def get(self, name: str, version: str = "latest") -> Prompt:
"""Get a prompt by name and version."""
if version == "latest":
version = self._get_latest_version(name)
return self.prompts.get(f"{name}/{version}")
def get_production(self, name: str) -> Prompt:
"""Get the production version of a prompt."""
metadata = self._get_metadata(name)
return self.get(name, metadata.get("production_version"))
Próximo: Capítulo 2: Teste A/B de Prompts