mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-08-21 12:12:22 +02:00
33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import Optional, Literal, Any
|
|
from uuid import uuid4
|
|
|
|
class TemplateField(BaseModel):
|
|
name: str
|
|
type: Literal["str", "int", "float", "select", "multi-select", "literal"]
|
|
options: Optional[list[str]] = None
|
|
default: Optional[Any] = None
|
|
required: bool = True
|
|
|
|
class PromptTemplate(BaseModel):
|
|
id: str = Field(default_factory=lambda: uuid4().hex)
|
|
name: str
|
|
description: str = ""
|
|
template: str # with {{field_name}} placeholders
|
|
fields: list[TemplateField] = Field(default_factory=list)
|
|
tags: list[str] = Field(default_factory=list)
|
|
|
|
class PromptTemplateCreate(BaseModel):
|
|
name: str
|
|
description: str = ""
|
|
template: str
|
|
fields: list[TemplateField] = Field(default_factory=list)
|
|
tags: list[str] = Field(default_factory=list)
|
|
|
|
class PromptTemplateUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
template: Optional[str] = None
|
|
fields: Optional[list[TemplateField]] = None
|
|
tags: Optional[list[str]] = None
|