2025-11-30 16:09:42 +09:00
|
|
|
from flask import request
|
|
|
|
|
from flask_restx import Resource, fields
|
|
|
|
|
from pydantic import BaseModel, Field
|
2024-02-06 13:21:13 +08:00
|
|
|
|
2025-11-24 11:04:11 +09:00
|
|
|
from controllers.console import console_ns
|
2024-11-01 15:51:22 +08:00
|
|
|
from controllers.console.wraps import account_initialization_required, setup_required
|
2023-10-12 23:13:10 +08:00
|
|
|
from libs.login import login_required
|
|
|
|
|
from services.advanced_prompt_template_service import AdvancedPromptTemplateService
|
|
|
|
|
|
2025-11-30 16:09:42 +09:00
|
|
|
|
|
|
|
|
class AdvancedPromptTemplateQuery(BaseModel):
|
|
|
|
|
app_mode: str = Field(..., description="Application mode")
|
|
|
|
|
model_mode: str = Field(..., description="Model mode")
|
|
|
|
|
has_context: str = Field(default="true", description="Whether has context")
|
|
|
|
|
model_name: str = Field(..., description="Model name")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console_ns.schema_model(
|
|
|
|
|
AdvancedPromptTemplateQuery.__name__,
|
|
|
|
|
AdvancedPromptTemplateQuery.model_json_schema(ref_template="#/definitions/{model}"),
|
2025-11-13 13:38:45 +09:00
|
|
|
)
|
|
|
|
|
|
2024-01-12 12:34:01 +08:00
|
|
|
|
2025-09-12 11:51:24 +08:00
|
|
|
@console_ns.route("/app/prompt-templates")
|
2023-10-12 23:13:10 +08:00
|
|
|
class AdvancedPromptTemplateList(Resource):
|
2025-11-24 11:04:11 +09:00
|
|
|
@console_ns.doc("get_advanced_prompt_templates")
|
|
|
|
|
@console_ns.doc(description="Get advanced prompt templates based on app mode and model configuration")
|
2025-11-30 16:09:42 +09:00
|
|
|
@console_ns.expect(console_ns.models[AdvancedPromptTemplateQuery.__name__])
|
2025-11-24 11:04:11 +09:00
|
|
|
@console_ns.response(
|
2025-09-12 11:51:24 +08:00
|
|
|
200, "Prompt templates retrieved successfully", fields.List(fields.Raw(description="Prompt template data"))
|
|
|
|
|
)
|
2025-11-24 11:04:11 +09:00
|
|
|
@console_ns.response(400, "Invalid request parameters")
|
2023-10-12 23:13:10 +08:00
|
|
|
@setup_required
|
|
|
|
|
@login_required
|
|
|
|
|
@account_initialization_required
|
|
|
|
|
def get(self):
|
2025-11-30 16:09:42 +09:00
|
|
|
args = AdvancedPromptTemplateQuery.model_validate(request.args.to_dict(flat=True)) # type: ignore
|
2023-10-12 23:13:10 +08:00
|
|
|
|
2025-11-30 16:09:42 +09:00
|
|
|
return AdvancedPromptTemplateService.get_prompt(args.model_dump())
|