| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- # -*- coding: utf-8 -*-
- """三国狼人杀游戏的结构化输出模型"""
- from typing import Literal, Optional, List
- from pydantic import BaseModel, Field
- from agentscope.agent import AgentBase
- class DiscussionModelCN(BaseModel):
- """中文版讨论输出格式"""
-
- reach_agreement: bool = Field(
- description="是否已达成一致意见",
- )
- confidence_level: int = Field(
- description="对当前推理的信心程度(1-10)",
- ge=1, le=10
- )
- key_evidence: Optional[str] = Field(
- description="支持你观点的关键证据",
- default=None
- )
- def get_vote_model_cn(agents: list[AgentBase]) -> type[BaseModel]:
- """获取中文版投票模型"""
-
- class VoteModelCN(BaseModel):
- """中文版投票输出格式"""
-
- vote: Literal[tuple(_.name for _ in agents)] = Field(
- description="你要投票淘汰的玩家姓名",
- )
- reason: str = Field(
- description="投票理由,简要说明为什么选择此人",
- )
- suspicion_level: int = Field(
- description="对被投票者的怀疑程度(1-10)",
- ge=1, le=10
- )
-
- return VoteModelCN
- class WitchActionModelCN(BaseModel):
- """中文版女巫行动模型"""
-
- use_antidote: bool = Field(
- description="是否使用解药救人",
- default=False
- )
- use_poison: bool = Field(
- description="是否使用毒药杀人",
- default=False
- )
- target_name: Optional[str] = Field(
- description="目标玩家姓名(救人或毒杀的对象)",
- default=None
- )
- action_reason: Optional[str] = Field(
- description="行动理由",
- default=None
- )
- def get_seer_model_cn(agents: list[AgentBase]) -> type[BaseModel]:
- """获取中文版预言家模型"""
-
- class SeerModelCN(BaseModel):
- """中文版预言家查验格式"""
-
- target: Literal[tuple(_.name for _ in agents)] = Field(
- description="要查验的玩家姓名",
- )
- check_reason: str = Field(
- description="查验此人的原因",
- )
- priority_level: int = Field(
- description="查验优先级(1-10)",
- ge=1, le=10
- )
-
- return SeerModelCN
- def get_hunter_model_cn(agents: list[AgentBase]) -> type[BaseModel]:
- """获取中文版猎人模型"""
-
- class HunterModelCN(BaseModel):
- """中文版猎人开枪格式"""
-
- shoot: bool = Field(
- description="是否使用开枪技能",
- )
- target: Optional[Literal[tuple(_.name for _ in agents)]] = Field(
- description="开枪目标玩家姓名",
- default=None
- )
- shoot_reason: Optional[str] = Field(
- description="开枪理由",
- default=None
- )
-
- return HunterModelCN
- class WerewolfKillModelCN(BaseModel):
- """中文版狼人击杀模型"""
-
- target: str = Field(
- description="要击杀的玩家姓名",
- )
- kill_strategy: str = Field(
- description="击杀策略说明",
- )
- team_coordination: Optional[str] = Field(
- description="与狼队友的配合计划",
- default=None
- )
- class GameAnalysisModelCN(BaseModel):
- """中文版游戏分析模型"""
-
- suspected_werewolves: List[str] = Field(
- description="怀疑的狼人名单",
- default_factory=list
- )
- trusted_players: List[str] = Field(
- description="信任的玩家名单",
- default_factory=list
- )
- key_clues: List[str] = Field(
- description="关键线索列表",
- default_factory=list
- )
- next_strategy: str = Field(
- description="下一步策略",
- )
|