Files
group_fqcd_jr/app/core/knowledge_contracts.py
T

21 lines
768 B
Python
Raw Normal View History

"""知识检索工具的入参契约(与 `fund_contracts.py` 同一模式)。
放在 `app/core` 而不是 service 里:工具的 `input_model` 会被 ToolExecutor 用于参数校验,
属于跨层契约;放在 service 模块会让 API 层与工具注册处都反向依赖 service 实现。
"""
from pydantic import BaseModel, ConfigDict, Field
class KnowledgeSearchInput(BaseModel):
"""知识库检索入参。
`collection` 留空表示三个集合全查(客服默认行为);指定单个集合用于意图明确时收窄范围。
"""
model_config = ConfigDict(extra="forbid")
query: str = Field(min_length=1, max_length=500)
collection: str = Field(default="", max_length=64)
top_k: int = Field(default=5, ge=1, le=10)