fix(prompt-optimizer): switch to built-in system prompt
- Replace the system prompt of the prompt optimization model with a built-in prompt. - Remove system prompt entries from the database. - Remove the API endpoint for managing system prompt configuration.
This commit is contained in:
@@ -1,120 +1,15 @@
|
||||
import uuid
|
||||
from typing import Optional
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.logging_config import get_db_logger
|
||||
from app.models.prompt_optimizer_model import (
|
||||
PromptOptimizerModelConfig,
|
||||
PromptOptimizerSession, PromptOptimizerSessionHistory, RoleType
|
||||
)
|
||||
|
||||
db_logger = get_db_logger()
|
||||
|
||||
|
||||
class PromptOptimizerModelConfigRepository:
|
||||
"""Repository for managing prompt optimizer model configurations."""
|
||||
|
||||
def __init__(self, db: Session):
|
||||
self.db = db
|
||||
|
||||
def get_by_tenant_id(self, tenant_id: uuid.UUID) -> Optional[PromptOptimizerModelConfig]:
|
||||
"""
|
||||
Retrieve the prompt optimizer model configuration for a specific tenant.
|
||||
|
||||
Args:
|
||||
tenant_id (uuid.UUID): The unique identifier of the tenant.
|
||||
|
||||
Returns:
|
||||
Optional[PromptOptimizerModelConfig]: The model configuration if found, else None.
|
||||
"""
|
||||
db_logger.debug(f"Get prompt optimization model configuration: tenant_id={tenant_id}")
|
||||
|
||||
try:
|
||||
config = self.db.query(PromptOptimizerModelConfig).filter(
|
||||
PromptOptimizerModelConfig.tenant_id == tenant_id,
|
||||
# PromptOptimizerModelConfig.model_id == model_id
|
||||
).first()
|
||||
if config:
|
||||
db_logger.debug(f"Prompt optimization model configuration found: (ID: {config.id})")
|
||||
else:
|
||||
db_logger.debug(f"Prompt optimization model configuration not found: tenant_id={tenant_id}")
|
||||
return config
|
||||
except Exception as e:
|
||||
db_logger.error(
|
||||
f"Error retrieving prompt optimization model configuration: tenant_id={tenant_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
def get_by_config_id(self, tenant_id: uuid.UUID, config_id: uuid.UUID) -> Optional[PromptOptimizerModelConfig]:
|
||||
"""
|
||||
Retrieve a specific prompt optimizer model configuration by config ID and tenant ID.
|
||||
|
||||
Args:
|
||||
tenant_id (uuid.UUID): The unique identifier of the tenant.
|
||||
config_id (uuid.UUID): The unique identifier of the model configuration.
|
||||
|
||||
Returns:
|
||||
Optional[PromptOptimizerModelConfig]: The model configuration if found, else None.
|
||||
"""
|
||||
db_logger.debug(f"Get prompt optimization model configuration: config_id={config_id}, tenant_id={tenant_id}")
|
||||
try:
|
||||
model = self.db.query(PromptOptimizerModelConfig).filter(
|
||||
PromptOptimizerModelConfig.tenant_id == tenant_id,
|
||||
PromptOptimizerModelConfig.id == config_id
|
||||
).first()
|
||||
if model:
|
||||
db_logger.debug(f"Prompt optimization model configuration found: (ID: {model.id})")
|
||||
else:
|
||||
db_logger.debug(f"Prompt optimization model configuration not found: config_id={config_id}")
|
||||
return model
|
||||
except Exception as e:
|
||||
db_logger.error(
|
||||
f"Error retrieving prompt optimization model configuration: model_id={config_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
def create_or_update(
|
||||
self,
|
||||
config_id: uuid.UUID,
|
||||
tenant_id: uuid.UUID,
|
||||
system_prompt: str,
|
||||
) -> Optional[PromptOptimizerModelConfig]:
|
||||
"""
|
||||
Create a new or update an existing prompt optimizer model configuration.
|
||||
|
||||
If a configuration with the given config_id exists, it updates its system_prompt.
|
||||
Otherwise, it creates a new configuration record.
|
||||
|
||||
Args:
|
||||
config_id (uuid.UUID): The unique identifier for the configuration.
|
||||
tenant_id (uuid.UUID): The tenant's unique identifier.
|
||||
system_prompt (str): The system prompt content for prompt optimization.
|
||||
|
||||
Returns:
|
||||
Optional[PromptOptimizerModelConfig]: The created or updated model configuration.
|
||||
"""
|
||||
db_logger.debug(f"Create/Update prompt optimization model configuration: tenant_id={tenant_id}")
|
||||
existing_config = self.get_by_config_id(tenant_id, config_id)
|
||||
|
||||
if existing_config:
|
||||
existing_config.system_prompt = system_prompt
|
||||
self.db.commit()
|
||||
self.db.refresh(existing_config)
|
||||
db_logger.debug(f"Prompt optimization model configuration update: ID:{config_id}")
|
||||
return existing_config
|
||||
else:
|
||||
config = PromptOptimizerModelConfig(
|
||||
id=config_id,
|
||||
# model_id=model_id,
|
||||
tenant_id=tenant_id,
|
||||
system_prompt=system_prompt
|
||||
)
|
||||
self.db.add(config)
|
||||
self.db.commit()
|
||||
self.db.refresh(config)
|
||||
db_logger.debug(f"Prompt optimization model configuration created: ID:{config.id}")
|
||||
return config
|
||||
|
||||
|
||||
class PromptOptimizerSessionRepository:
|
||||
"""Repository for managing prompt optimization sessions and session history."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user