Spaces:
Sleeping
Sleeping
File size: 2,213 Bytes
5fc69e4 39671d3 5fc69e4 39671d3 5fc69e4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from pydantic import BaseModel, Field
from typing import List, Dict, Optional, Any
class NPCConfig(BaseModel):
id: Optional[str] = Field(None, description="NPC ๊ณ ์ ID (์ค๊ณ ๊ธฐ์ค)")
name: Optional[str] = Field(None, description="NPC ํ์ ์ด๋ฆ")
persona_name: Optional[str] = Field(None, description="NPC ํ๋ฅด์๋ ์ด๋ฆ")
dialogue_style: Optional[str] = Field(None, description="๋ํ ์คํ์ผ")
relationship: Optional[float] = Field(None, description="๊ธฐ๋ณธ ๊ด๊ณ ์์น (-1.0~1.0)")
npc_mood: Optional[str] = Field(None, description="๊ธฐ๋ณธ ๊ฐ์ ์ํ")
trigger_values: Optional[Dict[str, List[str]]] = Field(None, description="ํธ๋ฆฌ๊ฑฐ ๊ฐ ๋ชฉ๋ก")
trigger_definitions: Optional[Dict[str, Dict[str, Any]]] = Field(None, description="ํธ๋ฆฌ๊ฑฐ ์ ์")
class DialogueTurn(BaseModel):
player: str
npc: str
class Context(BaseModel):
require: Dict[str, Any] = Field(..., description="pre 1์ฐจ ์กฐ๊ฑด ํ๋จ์ฉ ํ์/์ ํ ์์")
player_state: Dict[str, Any] = Field(..., description="ํ๋ ์ด์ด ํ์ฌ ์ํ")
game_state: Dict[str, Any] = Field(..., description="๊ฒ์ ์ ์ญ ์ํ")
npc_state: Dict[str, Any] = Field(..., description="DB ์ต์ NPC ์ํ")
npc_config: Optional[NPCConfig] = Field(None, description="RAG ๊ธฐ๋ฐ ์ค๊ณ ์ ๋ณด")
dialogue_history: Optional[List[DialogueTurn]] = Field(default_factory=list, description="์ต๊ทผ ๋ํ ํ์คํ ๋ฆฌ")
class AskReq(BaseModel):
session_id: str = Field(..., description="์ธ์
๊ณ ์ ID")
npc_id: str = Field(..., description="NPC ๊ณ ์ ID")
user_input: str = Field(..., description="ํ๋ ์ด์ด ์
๋ ฅ ๋ฌธ์ฅ")
context: Optional[Context] = Field(default_factory=Context, description="๊ฒ์ ๋ฐ NPC ์ํ ์ ๋ณด")
class AskRes(BaseModel):
session_id: str
npc_output_text: str
deltas: Dict[str, float] = Field(default_factory=dict, description="์ด๋ฒ ํด ๋ณํ๋")
flags: Dict[str, int] = Field(default_factory=dict, description="ํ๋๊ทธ ์ด์ง๊ฐ {flag_name: 0|1}")
valid: bool
meta: Dict[str, Any] = Field(default_factory=dict, description="์ถ๊ฐ ๋ฉํ๋ฐ์ดํฐ (npc_id, quest_stage, location ๋ฑ)")
|