Spaces:
Sleeping
Sleeping
File size: 1,988 Bytes
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 |
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: Optional[Dict[str, Any]] = Field(default_factory=dict, description="pre 1μ°¨ 쑰건 νλ¨μ© νμ/μ ν μμ")
player_state: Optional[Dict[str, Any]] = Field(default_factory=dict, description="νλ μ΄μ΄ νμ¬ μν")
game_state: Optional[Dict[str, Any]] = Field(default_factory=dict, description="κ²μ μ μ μν")
npc_state: Optional[Dict[str, Any]] = Field(default_factory=dict, description="DB μ΅μ NPC μν")
npc_config: Optional[NPCConfig] = Field(None, description="RAG κΈ°λ° μ€κ³ μ 보")
dialogue_history: Optional[List[DialogueTurn]] = Field(default_factory=list, description="μ΅κ·Ό λν νμ€ν 리")
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 λ±)")
|