class RollbackManager:
def __init__(self):
self.deployment_history = []
def deploy(self, prompt_name, version):
"""部署新版本并记录历史"""
previous = get_current_version(prompt_name)
self.deployment_history.append({
"prompt": prompt_name,
"from_version": previous,
"to_version": version,
"timestamp": now(),
"deployed_by": current_user()
})
set_production_version(prompt_name, version)
def rollback(self, prompt_name, steps=1):
"""回滚到之前的版本"""
history = [h for h in self.deployment_history if h["prompt"] == prompt_name]
if len(history) < steps:
raise Error("Insufficient history for rollback")
target = history[-steps]["from_version"]
set_production_version(prompt_name, target)
log(f"Rolled back {prompt_name} to {target}")
def emergency_rollback(self, prompt_name):
"""紧急回滚到最后已知稳定版本"""
stable = get_last_stable_version(prompt_name)
set_production_version(prompt_name, stable)
notify_team(f"Emergency rollback: {prompt_name} -> {stable}")