- **文件管理**: - 支持文件上传、解析和删除。 - 限制支持格式(txt, md, docx, pdf),最大 10MB。 - 提供前端上传区、文件列表及后端解析服务。 - **技能管理**: - 新增技能的创建、更新及删除功能。 - 支持分配自定义提示词和工具权限。 - 提供技能列表及分组工具选择交互界面。 同时调整相关 API 和前端组件,优化协作体验。
This commit is contained in:
@@ -141,6 +141,64 @@ class WorldSettingRead(BaseModel):
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
# ── 文件 ──
|
||||
|
||||
|
||||
class FileRead(BaseModel):
|
||||
id: int
|
||||
novel_id: int
|
||||
filename: str
|
||||
file_size: int
|
||||
mime_type: str
|
||||
text_length: int
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class FileList(BaseModel):
|
||||
items: list[FileRead]
|
||||
total: int
|
||||
|
||||
|
||||
# ── Skill ──
|
||||
|
||||
|
||||
class SkillCreate(BaseModel):
|
||||
name: str = Field(min_length=1, max_length=100)
|
||||
description: str = Field(default="", max_length=500)
|
||||
system_prompt: str = Field(default="", max_length=10000)
|
||||
allowed_tools: list[str] = Field(default_factory=list)
|
||||
novel_id: int | None = None
|
||||
|
||||
|
||||
class SkillUpdate(BaseModel):
|
||||
name: str | None = Field(default=None, min_length=1, max_length=100)
|
||||
description: str | None = Field(default=None, max_length=500)
|
||||
system_prompt: str | None = Field(default=None, max_length=10000)
|
||||
allowed_tools: list[str] | None = None
|
||||
|
||||
|
||||
class SkillRead(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
description: str
|
||||
system_prompt: str
|
||||
allowed_tools: list[str]
|
||||
is_builtin: bool
|
||||
novel_id: int | None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class SkillList(BaseModel):
|
||||
items: list[SkillRead]
|
||||
total: int
|
||||
|
||||
|
||||
class ToolInfo(BaseModel):
|
||||
name: str
|
||||
description: str
|
||||
|
||||
|
||||
# ── AI配置 ──
|
||||
|
||||
|
||||
@@ -181,6 +239,7 @@ class ChatRequest(BaseModel):
|
||||
page_context: str | None = None # 用户当前所在页面,如 "大纲页" "世界观页"
|
||||
tools_enabled: bool = True # 是否启用工具调用
|
||||
auto_approve_tools: bool = False # 是否自动执行工具(无需人工审批)
|
||||
skill_id: int | None = None # 激活的 Skill ID
|
||||
# 工具审批续传
|
||||
pending_tool_calls: list[PendingToolCall] | None = None
|
||||
assistant_text: str | None = None # LLM 在工具调用前输出的文本
|
||||
|
||||
Reference in New Issue
Block a user