Skip to content

[FEAT] Story 2.1 Dynamic Scenario-to-Prompt Engine #18

@yeomin4242

Description

@yeomin4242

한줄 설명

Create the FastAPI service that converts scenario JSONB parameters into Gemini 2.5 Flash system prompts, maintaining character consistency across multiple scenarios.

문제·기회

No response

제안 내용

No response

완료 기준(AC)

  • /api/ai/adapt-prompt endpoint accepts scenario_id and base_prompt
  • Scenario type-specific templates: CHARACTER_CHANGE, EVENT_ALTERATION, SETTING_MODIFICATION
  • JSONB parameter interpolation into prompt templates
  • Gemini 2.5 Flash system_instruction format (optimized for Gemini API):
    • Uses Gemini's system_instruction parameter (not prepended to user message)
    • Token-efficient prompt structure (reduces input token cost)
    • Supports Gemini's contents array for multi-turn context
  • Character consistency layer preserves core traits across scenarios (e.g., Hermione's intelligence maintained)
  • Negation instruction for altered properties (e.g., "Hermione is NOT in Gryffindor")
  • Meta-scenario handling for forked scenarios (combines parent + child parameters)
  • VectorDB character retrieval: Query ChromaDB for character personality traits (768-dim embeddings)
  • Prompt caching with Redis (TTL 1 hour) for identical scenario_id + base_prompt
  • Gemini API retry logic: 3 attempts with exponential backoff (1s, 2s, 4s)
  • Response time < 50ms (cached), < 500ms (uncached with VectorDB lookup)
  • Unit tests >80% coverage

관련 참고자료

No response

관련 이슈·블로커

No response

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions