feat(v3): PR 3 — prompt_layer package (base, video_prompt, search_query, visual_vocabulary)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
sinmb79
2026-03-29 11:43:15 +09:00
parent 4484fd1cfc
commit 33b0bbd5ee
5 changed files with 369 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
"""
bots/prompt_layer/base.py
Base types for the prompt layer.
"""
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class ComposedPrompt:
"""
Unified prompt container returned by all composers.
Fields used varies by engine:
- Kling: positive + negative
- Veo: positive (structured)
- Search: queries list
- TTS: processed_text
"""
positive: str = ''
negative: str = ''
queries: list[str] = field(default_factory=list)
processed_text: str = ''
metadata: dict = field(default_factory=dict)
def __bool__(self) -> bool:
return bool(self.positive or self.queries or self.processed_text)
class BaseComposer:
"""Abstract base for all composers."""
def compose(self, input_data: dict, engine: str) -> ComposedPrompt:
raise NotImplementedError
class PassthroughComposer(BaseComposer):
"""Returns input as-is for unsupported categories."""
def compose(self, input_data: dict, engine: str) -> ComposedPrompt:
return ComposedPrompt(
positive=input_data.get('text', ''),
metadata={'passthrough': True, 'engine': engine}
)