21 lines
768 B
Python
21 lines
768 B
Python
"""知识检索工具的入参契约(与 `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)
|