775 lines
20 KiB
YAML
775 lines
20 KiB
YAML
|
|
openapi: 3.0.3
|
|||
|
|
info:
|
|||
|
|
title: 元数据职责分层 API
|
|||
|
|
description: |
|
|||
|
|
提供元数据字段职责分层配置、槽位定义管理及按角色查询能力。
|
|||
|
|
|
|||
|
|
## 字段角色定义
|
|||
|
|
- `resource_filter`: 资源过滤角色,用于 KB 文档检索
|
|||
|
|
- `slot`: 运行时槽位角色,用于对话信息收集
|
|||
|
|
- `prompt_var`: 提示词变量角色,用于 Prompt 注入
|
|||
|
|
- `routing_signal`: 路由信号角色,用于意图路由判断
|
|||
|
|
version: 0.1.0
|
|||
|
|
x-contract-level: L1
|
|||
|
|
contact:
|
|||
|
|
name: AI Robot Core Team
|
|||
|
|
|
|||
|
|
servers:
|
|||
|
|
- url: /api
|
|||
|
|
description: API Server
|
|||
|
|
|
|||
|
|
tags:
|
|||
|
|
- name: MetadataSchema
|
|||
|
|
description: 元数据字段定义管理(扩展 field_roles)
|
|||
|
|
- name: SlotDefinition
|
|||
|
|
description: 槽位定义管理
|
|||
|
|
- name: RuntimeSlot
|
|||
|
|
description: 运行时槽位查询
|
|||
|
|
|
|||
|
|
paths:
|
|||
|
|
/admin/metadata-schemas:
|
|||
|
|
get:
|
|||
|
|
summary: 获取元数据字段定义列表
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-06] 支持按状态、范围、角色过滤查询元数据字段定义列表。
|
|||
|
|
operationId: listMetadataSchemas
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
parameters:
|
|||
|
|
- name: status
|
|||
|
|
in: query
|
|||
|
|
description: 字段状态过滤
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldStatus'
|
|||
|
|
- name: scope
|
|||
|
|
in: query
|
|||
|
|
description: 适用范围过滤
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataScope'
|
|||
|
|
- name: field_role
|
|||
|
|
in: query
|
|||
|
|
description: 字段角色过滤
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
- name: tenant_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回字段定义列表
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
'401':
|
|||
|
|
$ref: '#/components/responses/Unauthorized'
|
|||
|
|
|
|||
|
|
post:
|
|||
|
|
summary: 创建元数据字段定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-01][AC-MRS-02][AC-MRS-03] 创建新的元数据字段定义,支持 field_roles 多选配置。
|
|||
|
|
operationId: createMetadataSchema
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
requestBody:
|
|||
|
|
required: true
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinitionCreate'
|
|||
|
|
responses:
|
|||
|
|
'201':
|
|||
|
|
description: 创建成功
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
'409':
|
|||
|
|
description: field_key 已存在
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
|
|||
|
|
/admin/metadata-schemas/{id}:
|
|||
|
|
parameters:
|
|||
|
|
- name: id
|
|||
|
|
in: path
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
|
|||
|
|
get:
|
|||
|
|
summary: 获取单个元数据字段定义
|
|||
|
|
operationId: getMetadataSchema
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回字段定义
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
put:
|
|||
|
|
summary: 更新元数据字段定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-01] 更新元数据字段定义,支持修改 field_roles。
|
|||
|
|
operationId: updateMetadataSchema
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
requestBody:
|
|||
|
|
required: true
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinitionUpdate'
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 更新成功
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
delete:
|
|||
|
|
summary: 删除元数据字段定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-16] 删除元数据字段定义,无需考虑历史数据兼容性。
|
|||
|
|
operationId: deleteMetadataSchema
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
responses:
|
|||
|
|
'204':
|
|||
|
|
description: 删除成功
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
/admin/metadata-schemas/by-role:
|
|||
|
|
get:
|
|||
|
|
summary: 按角色查询元数据字段定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-04][AC-MRS-05] 按指定角色查询所有包含该角色的活跃字段定义。
|
|||
|
|
operationId: getMetadataSchemasByRole
|
|||
|
|
tags:
|
|||
|
|
- MetadataSchema
|
|||
|
|
parameters:
|
|||
|
|
- name: role
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
description: 字段角色
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
- name: tenant_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
- name: include_deprecated
|
|||
|
|
in: query
|
|||
|
|
description: 是否包含已废弃字段
|
|||
|
|
schema:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回字段定义列表
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
'400':
|
|||
|
|
description: 无效的角色参数
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
example:
|
|||
|
|
error_code: INVALID_ROLE
|
|||
|
|
message: "Invalid role 'invalid_role'. Valid roles are: resource_filter, slot, prompt_var, routing_signal"
|
|||
|
|
|
|||
|
|
/admin/slot-definitions:
|
|||
|
|
get:
|
|||
|
|
summary: 获取槽位定义列表
|
|||
|
|
operationId: listSlotDefinitions
|
|||
|
|
tags:
|
|||
|
|
- SlotDefinition
|
|||
|
|
parameters:
|
|||
|
|
- name: tenant_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
- name: required
|
|||
|
|
in: query
|
|||
|
|
description: 是否必填槽位过滤
|
|||
|
|
schema:
|
|||
|
|
type: boolean
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回槽位定义列表
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinition'
|
|||
|
|
|
|||
|
|
post:
|
|||
|
|
summary: 创建槽位定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-07][AC-MRS-08] 创建新的槽位定义,可关联已有元数据字段。
|
|||
|
|
operationId: createSlotDefinition
|
|||
|
|
tags:
|
|||
|
|
- SlotDefinition
|
|||
|
|
requestBody:
|
|||
|
|
required: true
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinitionCreate'
|
|||
|
|
responses:
|
|||
|
|
'201':
|
|||
|
|
description: 创建成功
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinition'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
|
|||
|
|
/admin/slot-definitions/{id}:
|
|||
|
|
parameters:
|
|||
|
|
- name: id
|
|||
|
|
in: path
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
|
|||
|
|
get:
|
|||
|
|
summary: 获取单个槽位定义
|
|||
|
|
operationId: getSlotDefinition
|
|||
|
|
tags:
|
|||
|
|
- SlotDefinition
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回槽位定义
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinition'
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
put:
|
|||
|
|
summary: 更新槽位定义
|
|||
|
|
operationId: updateSlotDefinition
|
|||
|
|
tags:
|
|||
|
|
- SlotDefinition
|
|||
|
|
requestBody:
|
|||
|
|
required: true
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinitionUpdate'
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 更新成功
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinition'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
delete:
|
|||
|
|
summary: 删除槽位定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-16] 删除槽位定义,无需考虑历史数据兼容性。
|
|||
|
|
operationId: deleteSlotDefinition
|
|||
|
|
tags:
|
|||
|
|
- SlotDefinition
|
|||
|
|
responses:
|
|||
|
|
'204':
|
|||
|
|
description: 删除成功
|
|||
|
|
'404':
|
|||
|
|
$ref: '#/components/responses/NotFound'
|
|||
|
|
|
|||
|
|
/mid/slots/by-role:
|
|||
|
|
get:
|
|||
|
|
summary: 运行时按角色获取槽位定义
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-10] 运行时接口,按角色获取槽位定义及关联的元数据字段信息。
|
|||
|
|
operationId: getSlotsByRole
|
|||
|
|
tags:
|
|||
|
|
- RuntimeSlot
|
|||
|
|
parameters:
|
|||
|
|
- name: role
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
- name: tenant_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回槽位定义列表
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/SlotDefinitionWithField'
|
|||
|
|
'400':
|
|||
|
|
$ref: '#/components/responses/BadRequest'
|
|||
|
|
|
|||
|
|
/mid/slots/{slot_key}:
|
|||
|
|
parameters:
|
|||
|
|
- name: slot_key
|
|||
|
|
in: path
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
|
|||
|
|
get:
|
|||
|
|
summary: 获取运行时槽位值
|
|||
|
|
description: |-
|
|||
|
|
[AC-MRS-09] 获取指定槽位的运行时值,包含来源、置信度、更新时间。
|
|||
|
|
operationId: getSlotValue
|
|||
|
|
tags:
|
|||
|
|
- RuntimeSlot
|
|||
|
|
parameters:
|
|||
|
|
- name: tenant_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
- name: user_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
- name: session_id
|
|||
|
|
in: query
|
|||
|
|
required: true
|
|||
|
|
schema:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
responses:
|
|||
|
|
'200':
|
|||
|
|
description: 成功返回槽位值
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/RuntimeSlotValue'
|
|||
|
|
'404':
|
|||
|
|
description: 槽位不存在
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
|
|||
|
|
components:
|
|||
|
|
schemas:
|
|||
|
|
FieldRole:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- resource_filter
|
|||
|
|
- slot
|
|||
|
|
- prompt_var
|
|||
|
|
- routing_signal
|
|||
|
|
description: |
|
|||
|
|
字段角色类型:
|
|||
|
|
- resource_filter: 资源过滤角色
|
|||
|
|
- slot: 运行时槽位角色
|
|||
|
|
- prompt_var: 提示词变量角色
|
|||
|
|
- routing_signal: 路由信号角色
|
|||
|
|
|
|||
|
|
MetadataFieldStatus:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- draft
|
|||
|
|
- active
|
|||
|
|
- deprecated
|
|||
|
|
|
|||
|
|
MetadataScope:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- kb_document
|
|||
|
|
- intent_rule
|
|||
|
|
- script_flow
|
|||
|
|
- prompt_template
|
|||
|
|
|
|||
|
|
MetadataFieldType:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- string
|
|||
|
|
- number
|
|||
|
|
- boolean
|
|||
|
|
- enum
|
|||
|
|
- array_enum
|
|||
|
|
|
|||
|
|
MetadataFieldDefinition:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- id
|
|||
|
|
- tenant_id
|
|||
|
|
- field_key
|
|||
|
|
- label
|
|||
|
|
- type
|
|||
|
|
- status
|
|||
|
|
- field_roles
|
|||
|
|
properties:
|
|||
|
|
id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
tenant_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
field_key:
|
|||
|
|
type: string
|
|||
|
|
pattern: '^[a-z][a-z0-9_]*$'
|
|||
|
|
description: 字段键名,仅允许小写字母数字下划线
|
|||
|
|
label:
|
|||
|
|
type: string
|
|||
|
|
description: 显示名称
|
|||
|
|
type:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldType'
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
options:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: string
|
|||
|
|
description: 选项列表(enum/array_enum 类型必填)
|
|||
|
|
default_value:
|
|||
|
|
description: 默认值
|
|||
|
|
scope:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/MetadataScope'
|
|||
|
|
description: 适用范围
|
|||
|
|
is_filterable:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
is_rank_feature:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
field_roles:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
description: 字段角色列表
|
|||
|
|
status:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldStatus'
|
|||
|
|
version:
|
|||
|
|
type: integer
|
|||
|
|
created_at:
|
|||
|
|
type: string
|
|||
|
|
format: date-time
|
|||
|
|
updated_at:
|
|||
|
|
type: string
|
|||
|
|
format: date-time
|
|||
|
|
|
|||
|
|
MetadataFieldDefinitionCreate:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- tenant_id
|
|||
|
|
- field_key
|
|||
|
|
- label
|
|||
|
|
- type
|
|||
|
|
properties:
|
|||
|
|
tenant_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
field_key:
|
|||
|
|
type: string
|
|||
|
|
pattern: '^[a-z][a-z0-9_]*$'
|
|||
|
|
label:
|
|||
|
|
type: string
|
|||
|
|
minLength: 1
|
|||
|
|
maxLength: 100
|
|||
|
|
type:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldType'
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
options:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: string
|
|||
|
|
default_value:
|
|||
|
|
type: object
|
|||
|
|
scope:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/MetadataScope'
|
|||
|
|
is_filterable:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
is_rank_feature:
|
|||
|
|
type: boolean
|
|||
|
|
default: false
|
|||
|
|
field_roles:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
description: 字段角色列表,可为空
|
|||
|
|
|
|||
|
|
MetadataFieldDefinitionUpdate:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
label:
|
|||
|
|
type: string
|
|||
|
|
minLength: 1
|
|||
|
|
maxLength: 100
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
options:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
type: string
|
|||
|
|
default_value:
|
|||
|
|
type: object
|
|||
|
|
scope:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/MetadataScope'
|
|||
|
|
is_filterable:
|
|||
|
|
type: boolean
|
|||
|
|
is_rank_feature:
|
|||
|
|
type: boolean
|
|||
|
|
field_roles:
|
|||
|
|
type: array
|
|||
|
|
items:
|
|||
|
|
$ref: '#/components/schemas/FieldRole'
|
|||
|
|
status:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldStatus'
|
|||
|
|
|
|||
|
|
ExtractStrategy:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- rule
|
|||
|
|
- llm
|
|||
|
|
- user_input
|
|||
|
|
description: |
|
|||
|
|
槽位提取策略:
|
|||
|
|
- rule: 规则提取
|
|||
|
|
- llm: LLM 推断
|
|||
|
|
- user_input: 用户输入
|
|||
|
|
|
|||
|
|
SlotSource:
|
|||
|
|
type: string
|
|||
|
|
enum:
|
|||
|
|
- user_confirmed
|
|||
|
|
- rule_extracted
|
|||
|
|
- llm_inferred
|
|||
|
|
- default
|
|||
|
|
|
|||
|
|
SlotDefinition:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- id
|
|||
|
|
- tenant_id
|
|||
|
|
- slot_key
|
|||
|
|
- type
|
|||
|
|
- required
|
|||
|
|
properties:
|
|||
|
|
id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
tenant_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
slot_key:
|
|||
|
|
type: string
|
|||
|
|
pattern: '^[a-z][a-z0-9_]*$'
|
|||
|
|
description: 槽位键名
|
|||
|
|
type:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldType'
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
description: 是否必填槽位
|
|||
|
|
extract_strategy:
|
|||
|
|
$ref: '#/components/schemas/ExtractStrategy'
|
|||
|
|
validation_rule:
|
|||
|
|
type: string
|
|||
|
|
description: 校验规则(正则或 JSON Schema)
|
|||
|
|
ask_back_prompt:
|
|||
|
|
type: string
|
|||
|
|
description: 追问提示语模板
|
|||
|
|
default_value:
|
|||
|
|
description: 默认值
|
|||
|
|
linked_field_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
description: 关联的元数据字段 ID
|
|||
|
|
created_at:
|
|||
|
|
type: string
|
|||
|
|
format: date-time
|
|||
|
|
updated_at:
|
|||
|
|
type: string
|
|||
|
|
format: date-time
|
|||
|
|
|
|||
|
|
SlotDefinitionCreate:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- tenant_id
|
|||
|
|
- slot_key
|
|||
|
|
- type
|
|||
|
|
- required
|
|||
|
|
properties:
|
|||
|
|
tenant_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
slot_key:
|
|||
|
|
type: string
|
|||
|
|
pattern: '^[a-z][a-z0-9_]*$'
|
|||
|
|
type:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldType'
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
extract_strategy:
|
|||
|
|
$ref: '#/components/schemas/ExtractStrategy'
|
|||
|
|
validation_rule:
|
|||
|
|
type: string
|
|||
|
|
ask_back_prompt:
|
|||
|
|
type: string
|
|||
|
|
default_value:
|
|||
|
|
type: object
|
|||
|
|
linked_field_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
|
|||
|
|
SlotDefinitionUpdate:
|
|||
|
|
type: object
|
|||
|
|
properties:
|
|||
|
|
type:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldType'
|
|||
|
|
required:
|
|||
|
|
type: boolean
|
|||
|
|
extract_strategy:
|
|||
|
|
$ref: '#/components/schemas/ExtractStrategy'
|
|||
|
|
validation_rule:
|
|||
|
|
type: string
|
|||
|
|
ask_back_prompt:
|
|||
|
|
type: string
|
|||
|
|
default_value:
|
|||
|
|
type: object
|
|||
|
|
linked_field_id:
|
|||
|
|
type: string
|
|||
|
|
format: uuid
|
|||
|
|
|
|||
|
|
SlotDefinitionWithField:
|
|||
|
|
type: object
|
|||
|
|
description: 槽位定义与关联字段信息
|
|||
|
|
allOf:
|
|||
|
|
- $ref: '#/components/schemas/SlotDefinition'
|
|||
|
|
- type: object
|
|||
|
|
properties:
|
|||
|
|
linked_field:
|
|||
|
|
$ref: '#/components/schemas/MetadataFieldDefinition'
|
|||
|
|
|
|||
|
|
RuntimeSlotValue:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- key
|
|||
|
|
- value
|
|||
|
|
- source
|
|||
|
|
- confidence
|
|||
|
|
properties:
|
|||
|
|
key:
|
|||
|
|
type: string
|
|||
|
|
description: 槽位键名
|
|||
|
|
value:
|
|||
|
|
description: 槽位值
|
|||
|
|
source:
|
|||
|
|
$ref: '#/components/schemas/SlotSource'
|
|||
|
|
description: 槽位来源
|
|||
|
|
confidence:
|
|||
|
|
type: number
|
|||
|
|
format: float
|
|||
|
|
minimum: 0.0
|
|||
|
|
maximum: 1.0
|
|||
|
|
description: 置信度
|
|||
|
|
updated_at:
|
|||
|
|
type: string
|
|||
|
|
format: date-time
|
|||
|
|
description: 最后更新时间
|
|||
|
|
|
|||
|
|
ErrorResponse:
|
|||
|
|
type: object
|
|||
|
|
required:
|
|||
|
|
- error_code
|
|||
|
|
- message
|
|||
|
|
properties:
|
|||
|
|
error_code:
|
|||
|
|
type: string
|
|||
|
|
message:
|
|||
|
|
type: string
|
|||
|
|
details:
|
|||
|
|
type: object
|
|||
|
|
additionalProperties: true
|
|||
|
|
|
|||
|
|
responses:
|
|||
|
|
BadRequest:
|
|||
|
|
description: 请求参数错误
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
example:
|
|||
|
|
error_code: BAD_REQUEST
|
|||
|
|
message: "Invalid request parameters"
|
|||
|
|
|
|||
|
|
Unauthorized:
|
|||
|
|
description: 未授权
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
example:
|
|||
|
|
error_code: UNAUTHORIZED
|
|||
|
|
message: "Authentication required"
|
|||
|
|
|
|||
|
|
NotFound:
|
|||
|
|
description: 资源不存在
|
|||
|
|
content:
|
|||
|
|
application/json:
|
|||
|
|
schema:
|
|||
|
|
$ref: '#/components/schemas/ErrorResponse'
|
|||
|
|
example:
|
|||
|
|
error_code: NOT_FOUND
|
|||
|
|
message: "Resource not found"
|