mirror of
https://github.com/lobehub/lobehub.git
synced 2026-09-20 04:56:13 +08:00
1334209461
* ✨ feat(openapi): expose eval resources and external run lifecycle * 🐛 fix(openapi): report and aggregate shared eval dataset cases
19085 lines
607 KiB
YAML
19085 lines
607 KiB
YAML
openapi: 3.1.0
|
|
components:
|
|
schemas:
|
|
ApiError:
|
|
additionalProperties: false
|
|
properties:
|
|
error:
|
|
type: string
|
|
success:
|
|
const: false
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- error
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
ApiKey:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
expiresAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
lastUsedAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type: string
|
|
scopes:
|
|
items:
|
|
enum:
|
|
- "*"
|
|
- agent:read
|
|
- agent:write
|
|
- eval:read
|
|
- eval:write
|
|
- chat:read
|
|
- chat:write
|
|
- model:invoke
|
|
- model:read
|
|
- model:write
|
|
- file:read
|
|
- file:write
|
|
- knowledge:read
|
|
- knowledge:write
|
|
- mcp:read
|
|
- mcp:write
|
|
- usage:read
|
|
- workspace:read
|
|
- workspace:write
|
|
- user:read
|
|
- user:write
|
|
type: string
|
|
type:
|
|
- array
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Agent:
|
|
additionalProperties: false
|
|
properties:
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
chatConfig:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
params:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
plugins:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- pinned
|
|
- auto
|
|
- disabled
|
|
required:
|
|
- identifier
|
|
- mode
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
slug:
|
|
type:
|
|
- string
|
|
- "null"
|
|
systemRole:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
AgentGroup:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
sort:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
ChatResponse:
|
|
additionalProperties: false
|
|
properties:
|
|
content:
|
|
type: string
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
usage:
|
|
additionalProperties: false
|
|
properties:
|
|
completion_tokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
prompt_tokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
total_tokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
type:
|
|
- object
|
|
- "null"
|
|
required:
|
|
- content
|
|
type: object
|
|
EvalRun:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
datasetId:
|
|
type: string
|
|
id:
|
|
type: string
|
|
metrics:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
startedAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
- external
|
|
type: string
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- datasetId
|
|
- status
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
EvalRunResult:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
input:
|
|
type: string
|
|
passed:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
result:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
score:
|
|
type:
|
|
- number
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseId:
|
|
type: string
|
|
topicId:
|
|
type: string
|
|
required:
|
|
- testCaseId
|
|
- topicId
|
|
- input
|
|
- createdAt
|
|
type: object
|
|
File:
|
|
additionalProperties: true
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
fileType:
|
|
type: string
|
|
id:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
name:
|
|
type: string
|
|
parentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
size:
|
|
type: integer
|
|
source:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
url:
|
|
type: string
|
|
visibility:
|
|
enum:
|
|
- private
|
|
- public
|
|
type: string
|
|
required:
|
|
- id
|
|
- fileType
|
|
- name
|
|
- size
|
|
- url
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
KnowledgeBase:
|
|
additionalProperties: true
|
|
properties:
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
isPublic:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
settings:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
type:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
visibility:
|
|
enum:
|
|
- private
|
|
- public
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Message:
|
|
additionalProperties: true
|
|
properties:
|
|
agentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
content:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
error:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
favorite:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
id:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
reasoning:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
role:
|
|
type: string
|
|
search:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
threadId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
tools:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
topicId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
usage:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
required:
|
|
- id
|
|
- role
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
McpServer:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
hasCredentials:
|
|
type: boolean
|
|
id:
|
|
format: uuid
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
isEnabled:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
serverUrl:
|
|
format: uri
|
|
type: string
|
|
status:
|
|
enum:
|
|
- connected
|
|
- disconnected
|
|
- error
|
|
type: string
|
|
tools:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
format: uuid
|
|
type: string
|
|
inputSchema:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
name:
|
|
type: string
|
|
permission:
|
|
enum:
|
|
- auto
|
|
- needs_approval
|
|
- disabled
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- permission
|
|
type: object
|
|
type: array
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- serverUrl
|
|
- status
|
|
- isEnabled
|
|
- hasCredentials
|
|
- tools
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Model:
|
|
additionalProperties: false
|
|
properties:
|
|
abilities:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
config:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
contextWindowTokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
id:
|
|
type: string
|
|
organization:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parameters:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
pricing:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
providerId:
|
|
type: string
|
|
releasedAt:
|
|
type:
|
|
- string
|
|
- "null"
|
|
settings:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
sort:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
source:
|
|
type:
|
|
- string
|
|
- "null"
|
|
type:
|
|
type: string
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- providerId
|
|
- type
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Permission:
|
|
additionalProperties: false
|
|
properties:
|
|
category:
|
|
type: string
|
|
code:
|
|
type: string
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
isActive:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- code
|
|
- name
|
|
- category
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Provider:
|
|
additionalProperties: false
|
|
properties:
|
|
checkModel:
|
|
type:
|
|
- string
|
|
- "null"
|
|
config:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
fetchOnClient:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
id:
|
|
type: string
|
|
logo:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
settings:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
sort:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
source:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Role:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type: string
|
|
id:
|
|
type: string
|
|
isActive:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
isSystem:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- displayName
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Topic:
|
|
additionalProperties: true
|
|
properties:
|
|
agentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
completedAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
content:
|
|
type:
|
|
- string
|
|
- "null"
|
|
cost:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
favorite:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
groupId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
historySummary:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
metadata:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
mode:
|
|
type:
|
|
- string
|
|
- "null"
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
sessionId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type:
|
|
- string
|
|
- "null"
|
|
totalCost:
|
|
type:
|
|
- number
|
|
- "null"
|
|
totalInputTokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
totalOutputTokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
totalTokens:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
trigger:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
usage:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
User:
|
|
additionalProperties: true
|
|
properties:
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
email:
|
|
type:
|
|
- string
|
|
- "null"
|
|
firstName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
fullName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
isOnboarded:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
lastName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
phone:
|
|
type:
|
|
- string
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
username:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
Usage:
|
|
additionalProperties: false
|
|
properties:
|
|
available:
|
|
type: boolean
|
|
currency:
|
|
const: USD
|
|
type: string
|
|
daily:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
date:
|
|
type: string
|
|
value:
|
|
type: number
|
|
required:
|
|
- date
|
|
- value
|
|
type: object
|
|
type: array
|
|
period:
|
|
additionalProperties: false
|
|
properties:
|
|
since:
|
|
format: date-time
|
|
type: string
|
|
until:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- since
|
|
- until
|
|
type: object
|
|
remainingBalance:
|
|
type:
|
|
- number
|
|
- "null"
|
|
scope:
|
|
enum:
|
|
- personal
|
|
- workspace
|
|
type: string
|
|
spent:
|
|
type: number
|
|
usageByType:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
count:
|
|
type:
|
|
- integer
|
|
- "null"
|
|
spend:
|
|
type: number
|
|
type:
|
|
type: string
|
|
required:
|
|
- count
|
|
- spend
|
|
- type
|
|
type: object
|
|
type: array
|
|
required:
|
|
- available
|
|
- currency
|
|
- daily
|
|
- period
|
|
- remainingBalance
|
|
- scope
|
|
- spent
|
|
- usageByType
|
|
type: object
|
|
securitySchemes:
|
|
bearerAuth:
|
|
bearerFormat: API Key (sk-lh-...) or OIDC JWT
|
|
scheme: bearer
|
|
type: http
|
|
info:
|
|
title: LobeHub API
|
|
description: LobeHub platform REST API. Generated from `packages/openapi` routes
|
|
— do not edit openapi.yml by hand; run `bun generate:openapi` instead.
|
|
version: 1.0.0
|
|
security:
|
|
- bearerAuth: []
|
|
servers:
|
|
- description: LobeHub Cloud
|
|
url: https://app.lobehub.com
|
|
paths:
|
|
/api/v1/health:
|
|
get:
|
|
operationId: getApiV1Health
|
|
summary: Health check
|
|
tags:
|
|
- health
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
service:
|
|
type: string
|
|
status:
|
|
const: ok
|
|
type: string
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- service
|
|
- status
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
/api/v1/agent-groups:
|
|
get:
|
|
operationId: getApiV1AgentGroups
|
|
summary: Get agent group list
|
|
tags:
|
|
- agent-groups
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "#/components/schemas/AgentGroup"
|
|
type: array
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
post:
|
|
operationId: postApiV1AgentGroups
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
sort:
|
|
type:
|
|
- number
|
|
- "null"
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
description: Response
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agent-groups
|
|
/api/v1/agent-groups/{id}:
|
|
get:
|
|
operationId: getApiV1AgentGroupsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/AgentGroup"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agent-groups
|
|
patch:
|
|
operationId: patchApiV1AgentGroupsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
sort:
|
|
type:
|
|
- number
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/AgentGroup"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agent-groups
|
|
delete:
|
|
operationId: deleteApiV1AgentGroupsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agent-groups
|
|
/api/v1/agents:
|
|
get:
|
|
operationId: getApiV1Agents
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
agents:
|
|
items:
|
|
$ref: "#/components/schemas/Agent"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- agents
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agents
|
|
post:
|
|
operationId: postApiV1Agents
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
agencyConfig:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
enableGraphMode:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
graph:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
description:
|
|
type: string
|
|
fields:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- desc
|
|
- schema
|
|
maxInstructionCount:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
nodes:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
allowedToolApiNames:
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
maxAgentSteps:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
type:
|
|
type: string
|
|
const: agent
|
|
required:
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: llm
|
|
required:
|
|
- type
|
|
terminal:
|
|
type: string
|
|
minLength: 1
|
|
edges:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
condition:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
from:
|
|
type: string
|
|
input:
|
|
type: object
|
|
properties:
|
|
fields:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
field:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
type: boolean
|
|
from:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- field
|
|
- from
|
|
output:
|
|
type: object
|
|
properties:
|
|
fields:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
field:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
type: boolean
|
|
required:
|
|
- field
|
|
instruction:
|
|
type: string
|
|
minLength: 1
|
|
instruction:
|
|
type: string
|
|
minLength: 1
|
|
maxTraversals:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
to:
|
|
type: string
|
|
required:
|
|
- from
|
|
- instruction
|
|
- to
|
|
required:
|
|
- fields
|
|
- name
|
|
- nodes
|
|
- terminal
|
|
- edges
|
|
- type: "null"
|
|
- type: "null"
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
chatConfig:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
disableContextCaching:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
displayMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- docs
|
|
- type: "null"
|
|
enableCompressHistory:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableHistoryCount:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableMaxTokens:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoning:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoningEffort:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
historyCount:
|
|
type:
|
|
- number
|
|
- "null"
|
|
reasoningBudgetToken:
|
|
type:
|
|
- number
|
|
- "null"
|
|
reasoningEffort:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- low
|
|
- medium
|
|
- high
|
|
- type: "null"
|
|
searchFCModel:
|
|
type:
|
|
- string
|
|
- "null"
|
|
searchMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- disabled
|
|
- enabled
|
|
- type: "null"
|
|
useModelBuiltinSearch:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
- type: "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
plugins:
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- pinned
|
|
- auto
|
|
- disabled
|
|
required:
|
|
- identifier
|
|
additionalProperties: false
|
|
params:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
systemRole:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- title
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Agent"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agents
|
|
/api/v1/agents/{id}:
|
|
get:
|
|
operationId: getApiV1AgentsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Agent"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agents
|
|
patch:
|
|
operationId: patchApiV1AgentsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
agencyConfig:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
enableGraphMode:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
graph:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
description:
|
|
type: string
|
|
fields:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- desc
|
|
- schema
|
|
maxInstructionCount:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
nodes:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
allowedToolApiNames:
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
maxAgentSteps:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
type:
|
|
type: string
|
|
const: agent
|
|
required:
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: llm
|
|
required:
|
|
- type
|
|
terminal:
|
|
type: string
|
|
minLength: 1
|
|
edges:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
condition:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
from:
|
|
type: string
|
|
input:
|
|
type: object
|
|
properties:
|
|
fields:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
field:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
type: boolean
|
|
from:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- field
|
|
- from
|
|
output:
|
|
type: object
|
|
properties:
|
|
fields:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
desc:
|
|
type: string
|
|
minLength: 1
|
|
field:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
type: boolean
|
|
required:
|
|
- field
|
|
instruction:
|
|
type: string
|
|
minLength: 1
|
|
instruction:
|
|
type: string
|
|
minLength: 1
|
|
maxTraversals:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
to:
|
|
type: string
|
|
required:
|
|
- from
|
|
- instruction
|
|
- to
|
|
required:
|
|
- fields
|
|
- name
|
|
- nodes
|
|
- terminal
|
|
- edges
|
|
- type: "null"
|
|
- type: "null"
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
chatConfig:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
disableContextCaching:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
displayMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- docs
|
|
- type: "null"
|
|
enableCompressHistory:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableHistoryCount:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableMaxTokens:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoning:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoningEffort:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
historyCount:
|
|
type:
|
|
- number
|
|
- "null"
|
|
reasoningBudgetToken:
|
|
type:
|
|
- number
|
|
- "null"
|
|
reasoningEffort:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- low
|
|
- medium
|
|
- high
|
|
- type: "null"
|
|
searchFCModel:
|
|
type:
|
|
- string
|
|
- "null"
|
|
searchMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- disabled
|
|
- enabled
|
|
- type: "null"
|
|
useModelBuiltinSearch:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
- type: "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
plugins:
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- pinned
|
|
- auto
|
|
- disabled
|
|
required:
|
|
- identifier
|
|
additionalProperties: false
|
|
params:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
systemRole:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type: string
|
|
minLength: 1
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Agent"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agents
|
|
delete:
|
|
operationId: deleteApiV1AgentsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- agents
|
|
/api/v1/agents/{id}/duplicate:
|
|
post:
|
|
operationId: postApiV1AgentsByIdDuplicate
|
|
summary: Duplicate agent
|
|
tags:
|
|
- agents
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
title:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
additionalProperties: false
|
|
/api/v1/api-keys:
|
|
get:
|
|
operationId: getApiV1ApiKeys
|
|
summary: List API keys
|
|
tags:
|
|
- api-keys
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "#/components/schemas/ApiKey"
|
|
type: array
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
post:
|
|
operationId: postApiV1ApiKeys
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
expiresAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
|
|
- type: "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 256
|
|
scopes:
|
|
anyOf:
|
|
- minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- "*"
|
|
- agent:read
|
|
- agent:write
|
|
- eval:read
|
|
- eval:write
|
|
- chat:read
|
|
- chat:write
|
|
- model:invoke
|
|
- model:read
|
|
- model:write
|
|
- file:read
|
|
- file:write
|
|
- knowledge:read
|
|
- knowledge:write
|
|
- mcp:read
|
|
- mcp:write
|
|
- usage:read
|
|
- workspace:read
|
|
- workspace:write
|
|
- user:read
|
|
- user:write
|
|
- type: "null"
|
|
required:
|
|
- name
|
|
additionalProperties: false
|
|
responses:
|
|
"200":
|
|
description: Response
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
expiresAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type: string
|
|
lastUsedAt:
|
|
format: date-time
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type: string
|
|
scopes:
|
|
items:
|
|
enum:
|
|
- "*"
|
|
- agent:read
|
|
- agent:write
|
|
- eval:read
|
|
- eval:write
|
|
- chat:read
|
|
- chat:write
|
|
- model:invoke
|
|
- model:read
|
|
- model:write
|
|
- file:read
|
|
- file:write
|
|
- knowledge:read
|
|
- knowledge:write
|
|
- mcp:read
|
|
- mcp:write
|
|
- usage:read
|
|
- workspace:read
|
|
- workspace:write
|
|
- user:read
|
|
- user:write
|
|
type: string
|
|
type:
|
|
- array
|
|
- "null"
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
key:
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
- key
|
|
- createdAt
|
|
- updatedAt
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- api-keys
|
|
/api/v1/api-keys/{id}:
|
|
get:
|
|
operationId: getApiV1ApiKeysById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/ApiKey"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- api-keys
|
|
patch:
|
|
operationId: patchApiV1ApiKeysById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
expiresAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
|
|
- type: "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 256
|
|
additionalProperties: false
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/ApiKey"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- api-keys
|
|
delete:
|
|
operationId: deleteApiV1ApiKeysById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- api-keys
|
|
/api/v1/chat:
|
|
post:
|
|
operationId: postApiV1Chat
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
frequency_penalty:
|
|
type: number
|
|
minimum: -2
|
|
maximum: 2
|
|
max_tokens:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- type: "null"
|
|
messages:
|
|
minItems: 1
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 1000000
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
required:
|
|
- content
|
|
- role
|
|
model:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
- type: "null"
|
|
presence_penalty:
|
|
type: number
|
|
minimum: -2
|
|
maximum: 2
|
|
provider:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
stream:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
temperature:
|
|
anyOf:
|
|
- type: number
|
|
minimum: 0
|
|
maximum: 2
|
|
- type: "null"
|
|
top_p:
|
|
type: number
|
|
minimum: 0
|
|
maximum: 1
|
|
required:
|
|
- messages
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/ChatResponse"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- chat
|
|
/api/v1/chat/translate:
|
|
post:
|
|
operationId: postApiV1ChatTranslate
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
from:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 32
|
|
model:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
- type: "null"
|
|
provider:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
text:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 1000000
|
|
to:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 32
|
|
required:
|
|
- text
|
|
- to
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
translatedText:
|
|
type: string
|
|
required:
|
|
- translatedText
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- chat
|
|
/api/v1/chat/generate-reply:
|
|
post:
|
|
operationId: postApiV1ChatGenerateReply
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
agentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
chatConfig:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
disableContextCaching:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
displayMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- docs
|
|
- type: "null"
|
|
enableCompressHistory:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableHistoryCount:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableMaxTokens:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoning:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
enableReasoningEffort:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
historyCount:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 0
|
|
maximum: 1000
|
|
- type: "null"
|
|
inputTemplate:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 100000
|
|
- type: "null"
|
|
reasoningBudgetToken:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- type: "null"
|
|
reasoningEffort:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- low
|
|
- medium
|
|
- high
|
|
- type: "null"
|
|
searchMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- off
|
|
- on
|
|
- auto
|
|
- type: "null"
|
|
thinkingBudget:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- type: "null"
|
|
useModelBuiltinSearch:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
- type: "null"
|
|
conversationHistory:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 1000000
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
required:
|
|
- content
|
|
- role
|
|
model:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
- type: "null"
|
|
provider:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
sessionId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
userMessage:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 1000000
|
|
required:
|
|
- conversationHistory
|
|
- sessionId
|
|
- userMessage
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
reply:
|
|
type: string
|
|
required:
|
|
- reply
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- chat
|
|
/api/v1/eval/runs:
|
|
post:
|
|
operationId: postApiV1EvalRuns
|
|
description: Queues an asynchronous QStash-backed evaluation run and returns
|
|
immediately.
|
|
summary: Create an eval run
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"202":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
datasetId:
|
|
type: string
|
|
experimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentRunId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metrics:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
startedAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
- config
|
|
- executionMode
|
|
- datasetId
|
|
- experimentId
|
|
- parentRunId
|
|
- status
|
|
- targetAgentId
|
|
- name
|
|
- metrics
|
|
- startedAt
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
config:
|
|
type: object
|
|
properties:
|
|
maxConcurrency:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
caseSelection:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
mode:
|
|
type: string
|
|
const: all
|
|
required:
|
|
- mode
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
mode:
|
|
type: string
|
|
enum:
|
|
- include
|
|
- exclude
|
|
caseIds:
|
|
minItems: 1
|
|
maxItems: 10000
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- mode
|
|
- caseIds
|
|
additionalProperties: false
|
|
k:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 10
|
|
maxSteps:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000
|
|
timeout:
|
|
type: integer
|
|
minimum: 60000
|
|
maximum: 21600000
|
|
additionalProperties: false
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
experimentId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
datasetId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
targetAgentId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required:
|
|
- datasetId
|
|
- targetAgentId
|
|
additionalProperties: false
|
|
get:
|
|
operationId: getApiV1EvalRuns
|
|
summary: List eval runs
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
runs:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
datasetId:
|
|
type: string
|
|
experimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentRunId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metrics:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
startedAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
- config
|
|
- executionMode
|
|
- datasetId
|
|
- experimentId
|
|
- parentRunId
|
|
- status
|
|
- targetAgentId
|
|
- name
|
|
- metrics
|
|
- startedAt
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- runs
|
|
- total
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: experimentId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- in: query
|
|
name: datasetId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- in: query
|
|
name: status
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
- external
|
|
/api/v1/eval/runs/{id}/topics:
|
|
get:
|
|
operationId: getApiV1EvalRunsByIdTopics
|
|
summary: List topic results of an eval run
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
topics:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
evalResult:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
passed:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
runId:
|
|
type: string
|
|
score:
|
|
type:
|
|
- number
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseId:
|
|
type: string
|
|
topicId:
|
|
type: string
|
|
input:
|
|
type: string
|
|
required:
|
|
- createdAt
|
|
- evalResult
|
|
- passed
|
|
- runId
|
|
- score
|
|
- status
|
|
- testCaseId
|
|
- topicId
|
|
- input
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
runId:
|
|
type: string
|
|
required:
|
|
- topics
|
|
- total
|
|
- runId
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
/api/v1/eval/runs/{id}:
|
|
get:
|
|
operationId: getApiV1EvalRunsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
datasetId:
|
|
type: string
|
|
experimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentRunId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metrics:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
startedAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
- config
|
|
- executionMode
|
|
- datasetId
|
|
- experimentId
|
|
- parentRunId
|
|
- status
|
|
- targetAgentId
|
|
- name
|
|
- metrics
|
|
- startedAt
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- eval
|
|
/api/v1/eval/runs/{id}/results:
|
|
get:
|
|
operationId: getApiV1EvalRunsByIdResults
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
results:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
passed:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
score:
|
|
type:
|
|
- number
|
|
- "null"
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseId:
|
|
type: string
|
|
topicId:
|
|
type: string
|
|
input:
|
|
type: string
|
|
result:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- createdAt
|
|
- passed
|
|
- score
|
|
- status
|
|
- testCaseId
|
|
- topicId
|
|
- input
|
|
- result
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
runId:
|
|
type: string
|
|
required:
|
|
- results
|
|
- total
|
|
- runId
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- eval
|
|
post:
|
|
operationId: postApiV1EvalRunsByIdResults
|
|
summary: reportBatch
|
|
tags:
|
|
- eval
|
|
description: "Claim: one pending worker succeeds, others receive 409. Reports:
|
|
identical replays succeed; different results conflict. Batches are
|
|
atomic. External workers can supply testCaseId to associate their own
|
|
topic with a dataset case on first report. Retry: only terminal runs,
|
|
concurrent repeats conflict."
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
items:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
idempotent:
|
|
type: boolean
|
|
reportedThreads:
|
|
type: number
|
|
runId:
|
|
type: string
|
|
runStatus:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
threadId:
|
|
type: string
|
|
topicFinalized:
|
|
type: boolean
|
|
topicId:
|
|
type: string
|
|
totalThreads:
|
|
type: number
|
|
required:
|
|
- idempotent
|
|
- reportedThreads
|
|
- runId
|
|
- success
|
|
- topicFinalized
|
|
- topicId
|
|
- totalThreads
|
|
additionalProperties: false
|
|
runId:
|
|
type: string
|
|
runStatus:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
required:
|
|
- items
|
|
- runId
|
|
- runStatus
|
|
- success
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
items:
|
|
minItems: 1
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
testCaseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
correct:
|
|
type: boolean
|
|
score:
|
|
type: number
|
|
result:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
threadId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
topicId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required:
|
|
- correct
|
|
- score
|
|
- topicId
|
|
additionalProperties: false
|
|
required:
|
|
- items
|
|
additionalProperties: false
|
|
/api/v1/eval/benchmarks:
|
|
post:
|
|
operationId: postApiV1EvalBenchmarks
|
|
summary: createBenchmark
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
isSystem:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- description
|
|
- metadata
|
|
- referenceUrl
|
|
- rubrics
|
|
- createdAt
|
|
- updatedAt
|
|
- isSystem
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 10000
|
|
- type: "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
anyOf:
|
|
- type: string
|
|
format: uri
|
|
- type: "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
required:
|
|
- identifier
|
|
- name
|
|
additionalProperties: false
|
|
get:
|
|
operationId: getApiV1EvalBenchmarks
|
|
summary: listBenchmarks
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
benchmarks:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
isSystem:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- description
|
|
- metadata
|
|
- referenceUrl
|
|
- rubrics
|
|
- createdAt
|
|
- updatedAt
|
|
- isSystem
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- benchmarks
|
|
- total
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
/api/v1/eval/benchmarks/{id}:
|
|
get:
|
|
operationId: getApiV1EvalBenchmarksById
|
|
summary: getBenchmark
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
isSystem:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- description
|
|
- metadata
|
|
- referenceUrl
|
|
- rubrics
|
|
- createdAt
|
|
- updatedAt
|
|
- isSystem
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
patch:
|
|
operationId: patchApiV1EvalBenchmarksById
|
|
summary: updateBenchmark
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
type:
|
|
- string
|
|
- "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
isSystem:
|
|
type: boolean
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- description
|
|
- metadata
|
|
- referenceUrl
|
|
- rubrics
|
|
- createdAt
|
|
- updatedAt
|
|
- isSystem
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 10000
|
|
- type: "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
referenceUrl:
|
|
anyOf:
|
|
- type: string
|
|
format: uri
|
|
- type: "null"
|
|
rubrics:
|
|
default: []
|
|
maxItems: 100
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
type:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
weight:
|
|
type: number
|
|
minimum: 0
|
|
threshold:
|
|
type: number
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: string
|
|
threshold:
|
|
type: number
|
|
required:
|
|
- value
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
value:
|
|
type: number
|
|
tolerance:
|
|
type: number
|
|
required:
|
|
- value
|
|
- type: object
|
|
properties:
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- pattern
|
|
- type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
required:
|
|
- code
|
|
- type: object
|
|
properties:
|
|
criteria:
|
|
type: string
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
systemRole:
|
|
type: string
|
|
required:
|
|
- criteria
|
|
- type: object
|
|
properties:
|
|
values:
|
|
type: array
|
|
items:
|
|
type: string
|
|
caseSensitive:
|
|
type: boolean
|
|
required:
|
|
- values
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
schema:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- schema
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
extractor:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: regex
|
|
pattern:
|
|
type: string
|
|
group:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- type
|
|
- pattern
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: delimiter
|
|
delimiter:
|
|
type: string
|
|
position:
|
|
type: string
|
|
enum:
|
|
- first
|
|
- last
|
|
required:
|
|
- type
|
|
- delimiter
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: last-line
|
|
trim:
|
|
type: boolean
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
const: choice-index
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pattern:
|
|
type: string
|
|
required:
|
|
- type
|
|
additionalProperties: false
|
|
innerMatcher:
|
|
type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
required:
|
|
- extractor
|
|
additionalProperties: false
|
|
required:
|
|
- id
|
|
- name
|
|
- type
|
|
- weight
|
|
- config
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
delete:
|
|
operationId: deleteApiV1EvalBenchmarksById
|
|
summary: deleteBenchmark
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
/api/v1/eval/datasets:
|
|
post:
|
|
operationId: postApiV1EvalDatasets
|
|
summary: createDataset
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
sourceExperimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseCount:
|
|
type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- benchmarkId
|
|
- description
|
|
- metadata
|
|
- evalConfig
|
|
- evalMode
|
|
- createdAt
|
|
- updatedAt
|
|
- sourceExperimentId
|
|
- testCaseCount
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 10000
|
|
- type: "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
required:
|
|
- identifier
|
|
- name
|
|
additionalProperties: false
|
|
get:
|
|
operationId: getApiV1EvalDatasets
|
|
summary: listDatasets
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
datasets:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
sourceExperimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseCount:
|
|
type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- benchmarkId
|
|
- description
|
|
- metadata
|
|
- evalConfig
|
|
- evalMode
|
|
- createdAt
|
|
- updatedAt
|
|
- sourceExperimentId
|
|
- testCaseCount
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- datasets
|
|
- total
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: benchmarkId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
/api/v1/eval/datasets/{id}:
|
|
get:
|
|
operationId: getApiV1EvalDatasetsById
|
|
summary: getDataset
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
sourceExperimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseCount:
|
|
type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- benchmarkId
|
|
- description
|
|
- metadata
|
|
- evalConfig
|
|
- evalMode
|
|
- createdAt
|
|
- updatedAt
|
|
- sourceExperimentId
|
|
- testCaseCount
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
patch:
|
|
operationId: patchApiV1EvalDatasetsById
|
|
summary: updateDataset
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
sourceExperimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
testCaseCount:
|
|
type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
required:
|
|
- id
|
|
- identifier
|
|
- name
|
|
- benchmarkId
|
|
- description
|
|
- metadata
|
|
- evalConfig
|
|
- evalMode
|
|
- createdAt
|
|
- updatedAt
|
|
- sourceExperimentId
|
|
- testCaseCount
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
benchmarkId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 10000
|
|
- type: "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
additionalProperties: false
|
|
delete:
|
|
operationId: deleteApiV1EvalDatasetsById
|
|
summary: deleteDataset
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
/api/v1/eval/datasets/{datasetId}/test-cases:
|
|
post:
|
|
operationId: postApiV1EvalDatasetsByDatasetIdTestCases
|
|
summary: createTestCase
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type:
|
|
- number
|
|
- "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
datasetId:
|
|
type: string
|
|
content:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- input
|
|
- sortOrder
|
|
- createdAt
|
|
- updatedAt
|
|
- datasetId
|
|
- content
|
|
- metadata
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: datasetId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- input
|
|
additionalProperties: false
|
|
get:
|
|
operationId: getApiV1EvalDatasetsByDatasetIdTestCases
|
|
summary: listTestCases
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
testCases:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type:
|
|
- number
|
|
- "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
datasetId:
|
|
type: string
|
|
content:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- input
|
|
- sortOrder
|
|
- createdAt
|
|
- updatedAt
|
|
- datasetId
|
|
- content
|
|
- metadata
|
|
additionalProperties: false
|
|
total:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- testCases
|
|
- total
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: datasetId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
/api/v1/eval/test-cases/{id}:
|
|
get:
|
|
operationId: getApiV1EvalTestCasesById
|
|
summary: getTestCase
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type:
|
|
- number
|
|
- "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
datasetId:
|
|
type: string
|
|
content:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- input
|
|
- sortOrder
|
|
- createdAt
|
|
- updatedAt
|
|
- datasetId
|
|
- content
|
|
- metadata
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
patch:
|
|
operationId: patchApiV1EvalTestCasesById
|
|
summary: updateTestCase
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type:
|
|
- number
|
|
- "null"
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
datasetId:
|
|
type: string
|
|
content:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- input
|
|
- sortOrder
|
|
- createdAt
|
|
- updatedAt
|
|
- datasetId
|
|
- content
|
|
- metadata
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
input:
|
|
type: string
|
|
expected:
|
|
type: string
|
|
category:
|
|
type: string
|
|
choices:
|
|
type: array
|
|
items:
|
|
type: string
|
|
environment:
|
|
type: object
|
|
properties:
|
|
envPrompt:
|
|
type: string
|
|
toolForwarding:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: object
|
|
properties:
|
|
endpoint:
|
|
type: string
|
|
format: uri
|
|
timeoutMs:
|
|
type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
required:
|
|
- endpoint
|
|
additionalProperties: false
|
|
additionalProperties: false
|
|
messages:
|
|
maxItems: 1000
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- tool
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
parentId:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
createdAt:
|
|
type:
|
|
- string
|
|
- number
|
|
updatedAt:
|
|
type:
|
|
- string
|
|
- number
|
|
tools:
|
|
type: array
|
|
items:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
tool_call_id:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
reasoning:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
plugin:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginState:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginError:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
pluginIntervention:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
error:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
search:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
required:
|
|
- content
|
|
- role
|
|
additionalProperties: false
|
|
caseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
sortOrder:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 9007199254740991
|
|
evalMode:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- equals
|
|
- contains
|
|
- regex
|
|
- starts-with
|
|
- ends-with
|
|
- any-of
|
|
- numeric
|
|
- extract-match
|
|
- json-schema
|
|
- javascript
|
|
- python
|
|
- llm-rubric
|
|
- factuality
|
|
- answer-relevance
|
|
- similar
|
|
- levenshtein
|
|
- rubric
|
|
- external
|
|
- type: "null"
|
|
evalConfig:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
additionalProperties: false
|
|
delete:
|
|
operationId: deleteApiV1EvalTestCasesById
|
|
summary: deleteTestCase
|
|
description: "Creates accept an optional id: an identical replay returns the
|
|
resource; conflicting id or identifier returns 409. Lists are
|
|
paginated."
|
|
tags:
|
|
- eval
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
/api/v1/eval/runs/{id}/claim:
|
|
post:
|
|
operationId: postApiV1EvalRunsByIdClaim
|
|
summary: claim
|
|
tags:
|
|
- eval
|
|
description: "Claim: one pending worker succeeds, others receive 409. Reports:
|
|
identical replays succeed; different results conflict. Batches are
|
|
atomic. External workers can supply testCaseId to associate their own
|
|
topic with a dataset case on first report. Retry: only terminal runs,
|
|
concurrent repeats conflict."
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
datasetId:
|
|
type: string
|
|
experimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentRunId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metrics:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
startedAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
- config
|
|
- executionMode
|
|
- datasetId
|
|
- experimentId
|
|
- parentRunId
|
|
- status
|
|
- targetAgentId
|
|
- name
|
|
- metrics
|
|
- startedAt
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
/api/v1/eval/runs/{id}/status:
|
|
patch:
|
|
operationId: patchApiV1EvalRunsByIdStatus
|
|
summary: setStatus
|
|
tags:
|
|
- eval
|
|
description: "Claim: one pending worker succeeds, others receive 409. Reports:
|
|
identical replays succeed; different results conflict. Batches are
|
|
atomic. External workers can supply testCaseId to associate their own
|
|
topic with a dataset case on first report. Retry: only terminal runs,
|
|
concurrent repeats conflict."
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
updatedAt:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
executionMode:
|
|
type: string
|
|
enum:
|
|
- internal
|
|
- external
|
|
datasetId:
|
|
type: string
|
|
experimentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentRunId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
status:
|
|
type: string
|
|
enum:
|
|
- idle
|
|
- pending
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
targetAgentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metrics:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
startedAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
required:
|
|
- id
|
|
- createdAt
|
|
- updatedAt
|
|
- config
|
|
- executionMode
|
|
- datasetId
|
|
- experimentId
|
|
- parentRunId
|
|
- status
|
|
- targetAgentId
|
|
- name
|
|
- metrics
|
|
- startedAt
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
enum:
|
|
- running
|
|
- external
|
|
- completed
|
|
- failed
|
|
- aborted
|
|
required:
|
|
- status
|
|
additionalProperties: false
|
|
/api/v1/eval/runs/{id}/retry-errors:
|
|
post:
|
|
operationId: postApiV1EvalRunsByIdRetryErrors
|
|
summary: retryErrors
|
|
tags:
|
|
- eval
|
|
description: "Claim: one pending worker succeeds, others receive 409. Reports:
|
|
identical replays succeed; different results conflict. Batches are
|
|
atomic. External workers can supply testCaseId to associate their own
|
|
topic with a dataset case on first report. Retry: only terminal runs,
|
|
concurrent repeats conflict."
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
runId:
|
|
type: string
|
|
retryCount:
|
|
type: number
|
|
required:
|
|
- runId
|
|
- retryCount
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
/api/v1/eval/runs/{runId}/topics/{topicId}/result:
|
|
put:
|
|
operationId: putApiV1EvalRunsByRunIdTopicsByTopicIdResult
|
|
summary: report
|
|
tags:
|
|
- eval
|
|
description: "Claim: one pending worker succeeds, others receive 409. Reports:
|
|
identical replays succeed; different results conflict. Batches are
|
|
atomic. External workers can supply testCaseId to associate their own
|
|
topic with a dataset case on first report. Retry: only terminal runs,
|
|
concurrent repeats conflict."
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$schema: https://json-schema.org/draft/2020-12/schema
|
|
type: object
|
|
properties:
|
|
idempotent:
|
|
type: boolean
|
|
reportedThreads:
|
|
type: number
|
|
runId:
|
|
type: string
|
|
runStatus:
|
|
type: string
|
|
success:
|
|
type: boolean
|
|
threadId:
|
|
type: string
|
|
topicFinalized:
|
|
type: boolean
|
|
topicId:
|
|
type: string
|
|
totalThreads:
|
|
type: number
|
|
required:
|
|
- idempotent
|
|
- reportedThreads
|
|
- runId
|
|
- success
|
|
- topicFinalized
|
|
- topicId
|
|
- totalThreads
|
|
additionalProperties: false
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: runId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
- in: path
|
|
name: topicId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
testCaseId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
correct:
|
|
type: boolean
|
|
score:
|
|
type: number
|
|
result:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
threadId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 128
|
|
required:
|
|
- correct
|
|
- score
|
|
additionalProperties: false
|
|
/api/v1/plugins:
|
|
get:
|
|
operationId: getApiV1Plugins
|
|
summary: List installed plugins in the current workspace or personal scope
|
|
tags:
|
|
- plugins
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
type: object
|
|
properties:
|
|
plugins:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
identifier:
|
|
type: string
|
|
type:
|
|
type: string
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
total:
|
|
type: integer
|
|
required:
|
|
- plugins
|
|
- total
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
/api/v1/files:
|
|
get:
|
|
operationId: getApiV1Files
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: fileType
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: knowledgeBaseId
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: queryAll
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: updatedAtEnd
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- in: query
|
|
name: updatedAtStart
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- in: query
|
|
name: userId
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
files:
|
|
items:
|
|
$ref: "#/components/schemas/File"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- files
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
post:
|
|
operationId: postApiV1Files
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
properties:
|
|
agentId:
|
|
type: string
|
|
directory:
|
|
type: string
|
|
file:
|
|
format: binary
|
|
type: string
|
|
knowledgeBaseId:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
skipCheckFileType:
|
|
type: boolean
|
|
skipDeduplication:
|
|
type: boolean
|
|
required:
|
|
- file
|
|
type: object
|
|
required: true
|
|
summary: Upload a file and return the corresponding file record
|
|
tags:
|
|
- files
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/File"
|
|
parsed:
|
|
type: object
|
|
required:
|
|
- file
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
/api/v1/files/{id}:
|
|
get:
|
|
operationId: getApiV1FilesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/File"
|
|
parsed:
|
|
type: object
|
|
required:
|
|
- file
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
patch:
|
|
operationId: patchApiV1FilesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
knowledgeBaseId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/File"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
delete:
|
|
operationId: deleteApiV1FilesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
/api/v1/files/{id}/url:
|
|
get:
|
|
operationId: getApiV1FilesByIdUrl
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
- in: query
|
|
name: expiresIn
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
/api/v1/files/{id}/parses:
|
|
post:
|
|
operationId: postApiV1FilesByIdParses
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
- in: query
|
|
name: skipExist
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
/api/v1/files/{id}/chunks:
|
|
post:
|
|
operationId: postApiV1FilesByIdChunks
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
autoEmbedding:
|
|
type: boolean
|
|
skipExist:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
get:
|
|
operationId: getApiV1FilesByIdChunks
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
/api/v1/files/batches:
|
|
post:
|
|
operationId: postApiV1FilesBatches
|
|
requestBody:
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
properties:
|
|
agentId:
|
|
type: string
|
|
directory:
|
|
type: string
|
|
files:
|
|
items:
|
|
format: binary
|
|
type: string
|
|
maxItems: 20
|
|
minItems: 1
|
|
type: array
|
|
knowledgeBaseId:
|
|
type: string
|
|
sessionId:
|
|
type: string
|
|
skipCheckFileType:
|
|
type: boolean
|
|
required:
|
|
- files
|
|
type: object
|
|
required: true
|
|
summary: Batch file upload
|
|
tags:
|
|
- files
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
failed:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
error:
|
|
type: string
|
|
name:
|
|
type: string
|
|
required:
|
|
- error
|
|
- name
|
|
type: object
|
|
type: array
|
|
successful:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/File"
|
|
parsed:
|
|
type: object
|
|
required:
|
|
- file
|
|
type: object
|
|
type: array
|
|
summary:
|
|
additionalProperties: false
|
|
properties:
|
|
failed:
|
|
minimum: 0
|
|
type: integer
|
|
successful:
|
|
minimum: 0
|
|
type: integer
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- failed
|
|
- successful
|
|
- total
|
|
type: object
|
|
required:
|
|
- failed
|
|
- successful
|
|
- summary
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
/api/v1/files/queries:
|
|
post:
|
|
operationId: postApiV1FilesQueries
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileIds:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- fileIds
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
failed:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
error:
|
|
type: string
|
|
fileId:
|
|
type: string
|
|
required:
|
|
- error
|
|
- fileId
|
|
type: object
|
|
type: array
|
|
files:
|
|
items:
|
|
additionalProperties: false
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/File"
|
|
parsed:
|
|
type: object
|
|
required:
|
|
- file
|
|
type: object
|
|
type: array
|
|
success:
|
|
minimum: 0
|
|
type: integer
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- failed
|
|
- files
|
|
- success
|
|
- total
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- files
|
|
/api/v1/knowledge-bases:
|
|
get:
|
|
operationId: getApiV1KnowledgeBases
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
knowledgeBases:
|
|
items:
|
|
$ref: "#/components/schemas/KnowledgeBase"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- knowledgeBases
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
post:
|
|
operationId: postApiV1KnowledgeBases
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
format: uri
|
|
description:
|
|
type: string
|
|
maxLength: 1000
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
required:
|
|
- name
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/KnowledgeBase"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
/api/v1/knowledge-bases/{id}:
|
|
get:
|
|
operationId: getApiV1KnowledgeBasesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/KnowledgeBase"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
patch:
|
|
operationId: patchApiV1KnowledgeBasesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
avatar:
|
|
type: string
|
|
format: uri
|
|
description:
|
|
type: string
|
|
maxLength: 1000
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/KnowledgeBase"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
delete:
|
|
operationId: deleteApiV1KnowledgeBasesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
/api/v1/knowledge-bases/{id}/files:
|
|
get:
|
|
operationId: getApiV1KnowledgeBasesByIdFiles
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: fileType
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
/api/v1/knowledge-bases/{id}/files/batch:
|
|
post:
|
|
operationId: postApiV1KnowledgeBasesByIdFilesBatch
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileIds:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- fileIds
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
delete:
|
|
operationId: deleteApiV1KnowledgeBasesByIdFilesBatch
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileIds:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- fileIds
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
/api/v1/knowledge-bases/{id}/files/move:
|
|
post:
|
|
operationId: postApiV1KnowledgeBasesByIdFilesMove
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
fileIds:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
targetKnowledgeBaseId:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- fileIds
|
|
- targetKnowledgeBaseId
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- knowledge-bases
|
|
/api/v1/mcp-servers:
|
|
get:
|
|
operationId: getApiV1McpServers
|
|
summary: List remote MCP servers
|
|
tags:
|
|
- mcp-servers
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
items:
|
|
$ref: "#/components/schemas/McpServer"
|
|
type: array
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
post:
|
|
operationId: postApiV1McpServers
|
|
summary: Add a remote MCP server
|
|
tags:
|
|
- mcp-servers
|
|
responses:
|
|
"201":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/McpServer"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
credentials:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: bearer
|
|
required:
|
|
- token
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
apiKey:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: apikey
|
|
required:
|
|
- apiKey
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
headers:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 256
|
|
additionalProperties:
|
|
type: string
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: header
|
|
required:
|
|
- headers
|
|
- type
|
|
additionalProperties: false
|
|
description:
|
|
type: string
|
|
maxLength: 2000
|
|
identifier:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
pattern: ^[a-z\d](?:[\w-]*[a-z\d])?$
|
|
isEnabled:
|
|
default: true
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
serverUrl:
|
|
type: string
|
|
maxLength: 2048
|
|
format: uri
|
|
required:
|
|
- identifier
|
|
- name
|
|
- serverUrl
|
|
additionalProperties: false
|
|
/api/v1/mcp-servers/{id}:
|
|
get:
|
|
operationId: getApiV1McpServersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/McpServer"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- mcp-servers
|
|
patch:
|
|
operationId: patchApiV1McpServersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
credentials:
|
|
anyOf:
|
|
- oneOf:
|
|
- type: object
|
|
properties:
|
|
token:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: bearer
|
|
required:
|
|
- token
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
apiKey:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: apikey
|
|
required:
|
|
- apiKey
|
|
- type
|
|
additionalProperties: false
|
|
- type: object
|
|
properties:
|
|
headers:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 256
|
|
additionalProperties:
|
|
type: string
|
|
maxLength: 10000
|
|
type:
|
|
type: string
|
|
const: header
|
|
required:
|
|
- headers
|
|
- type
|
|
additionalProperties: false
|
|
- type: "null"
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 2000
|
|
- type: "null"
|
|
isEnabled:
|
|
type: boolean
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
serverUrl:
|
|
type: string
|
|
maxLength: 2048
|
|
format: uri
|
|
additionalProperties: false
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/McpServer"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- mcp-servers
|
|
delete:
|
|
operationId: deleteApiV1McpServersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- mcp-servers
|
|
/api/v1/mcp-servers/{id}/sync:
|
|
post:
|
|
operationId: postApiV1McpServersByIdSync
|
|
summary: Discover and sync MCP tools
|
|
tags:
|
|
- mcp-servers
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
id:
|
|
format: uuid
|
|
type: string
|
|
status:
|
|
const: connected
|
|
type: string
|
|
toolCount:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- id
|
|
- status
|
|
- toolCount
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
|
|
required: true
|
|
/api/v1/message-translations/{messageId}:
|
|
post:
|
|
operationId: postApiV1MessageTranslationsByMessageId
|
|
parameters:
|
|
- in: path
|
|
name: messageId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
from:
|
|
type: string
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
to:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- to
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- message-translations
|
|
get:
|
|
operationId: getApiV1MessageTranslationsByMessageId
|
|
parameters:
|
|
- in: path
|
|
name: messageId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- message-translations
|
|
patch:
|
|
operationId: patchApiV1MessageTranslationsByMessageId
|
|
parameters:
|
|
- in: path
|
|
name: messageId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
from:
|
|
type: string
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
to:
|
|
type: string
|
|
minLength: 1
|
|
content:
|
|
type: string
|
|
required:
|
|
- to
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- message-translations
|
|
delete:
|
|
operationId: deleteApiV1MessageTranslationsByMessageId
|
|
parameters:
|
|
- in: path
|
|
name: messageId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- message-translations
|
|
/api/v1/messages/count:
|
|
get:
|
|
operationId: getApiV1MessagesCount
|
|
parameters:
|
|
- in: query
|
|
name: topicId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
- in: query
|
|
name: threadId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
- in: query
|
|
name: topicIds
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: userId
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: false
|
|
properties:
|
|
count:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- count
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
/api/v1/messages:
|
|
get:
|
|
operationId: getApiV1Messages
|
|
parameters:
|
|
- in: query
|
|
name: threadId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
- in: query
|
|
name: topicId
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: userId
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: role
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- user
|
|
- system
|
|
- assistant
|
|
- tool
|
|
- type: "null"
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
messages:
|
|
items:
|
|
$ref: "#/components/schemas/Message"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- messages
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
post:
|
|
operationId: postApiV1Messages
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
minLength: 1
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- system
|
|
- assistant
|
|
- tool
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
topicId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
threadId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
quotaId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
agentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
clientId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
reasoning:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
search:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
tools:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
traceId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
observationId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
files:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
- type: "null"
|
|
favorite:
|
|
default: false
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
required:
|
|
- content
|
|
- role
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Message"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
delete:
|
|
operationId: deleteApiV1Messages
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
messageIds:
|
|
minItems: 1
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- messageIds
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
/api/v1/messages/{id}:
|
|
get:
|
|
operationId: getApiV1MessagesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Message"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
delete:
|
|
operationId: deleteApiV1MessagesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
/api/v1/messages/replies:
|
|
post:
|
|
operationId: postApiV1MessagesReplies
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
content:
|
|
type: string
|
|
minLength: 1
|
|
role:
|
|
type: string
|
|
const: user
|
|
model:
|
|
type:
|
|
- string
|
|
- "null"
|
|
provider:
|
|
type:
|
|
- string
|
|
- "null"
|
|
topicId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
threadId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
quotaId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
agentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
clientId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
metadata:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
reasoning:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
search:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
tools:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
traceId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
observationId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
files:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
- type: "null"
|
|
favorite:
|
|
default: false
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
required:
|
|
- content
|
|
- role
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
anyOf:
|
|
- $ref: "#/components/schemas/Message"
|
|
- type: "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- messages
|
|
/api/v1/models:
|
|
get:
|
|
operationId: getApiV1Models
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: enabled
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: provider
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
- type: "null"
|
|
- in: query
|
|
name: type
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- embedding
|
|
- tts
|
|
- asr
|
|
- image
|
|
- text2video
|
|
- text2music
|
|
- realtime
|
|
- stt
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
models:
|
|
items:
|
|
$ref: "#/components/schemas/Model"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- models
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- models
|
|
post:
|
|
operationId: postApiV1Models
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
abilities:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
contextWindowTokens:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type: string
|
|
minLength: 1
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
organization:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parameters:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
pricing:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
releasedAt:
|
|
type:
|
|
- string
|
|
- "null"
|
|
sort:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
source:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- remote
|
|
- custom
|
|
- builtin
|
|
- type: "null"
|
|
type:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- embedding
|
|
- tts
|
|
- asr
|
|
- image
|
|
- text2video
|
|
- text2music
|
|
- realtime
|
|
- stt
|
|
- type: "null"
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
providerId:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required:
|
|
- displayName
|
|
- id
|
|
- providerId
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Model"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- models
|
|
/api/v1/models/{providerId}/{modelId}:
|
|
get:
|
|
operationId: getApiV1ModelsByProviderIdByModelId
|
|
parameters:
|
|
- in: path
|
|
name: modelId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
required: true
|
|
- in: path
|
|
name: providerId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- models
|
|
patch:
|
|
operationId: patchApiV1ModelsByProviderIdByModelId
|
|
parameters:
|
|
- in: path
|
|
name: modelId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 150
|
|
required: true
|
|
- in: path
|
|
name: providerId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
abilities:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
config:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
contextWindowTokens:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type: string
|
|
minLength: 1
|
|
enabled:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
organization:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parameters:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
pricing:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
- type: "null"
|
|
releasedAt:
|
|
type:
|
|
- string
|
|
- "null"
|
|
sort:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
source:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- remote
|
|
- custom
|
|
- builtin
|
|
- type: "null"
|
|
type:
|
|
anyOf:
|
|
- type: string
|
|
enum:
|
|
- chat
|
|
- embedding
|
|
- tts
|
|
- asr
|
|
- image
|
|
- text2video
|
|
- text2music
|
|
- realtime
|
|
- stt
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- models
|
|
/api/v1/permissions:
|
|
get:
|
|
operationId: getApiV1Permissions
|
|
parameters:
|
|
- in: query
|
|
name: active
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: category
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
permissions:
|
|
items:
|
|
$ref: "#/components/schemas/Permission"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- permissions
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- permissions
|
|
post:
|
|
operationId: postApiV1Permissions
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
category:
|
|
type: string
|
|
minLength: 1
|
|
code:
|
|
type: string
|
|
minLength: 1
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
isActive:
|
|
default: true
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- category
|
|
- code
|
|
- name
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Permission"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- permissions
|
|
/api/v1/permissions/{id}:
|
|
get:
|
|
operationId: getApiV1PermissionsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Permission"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- permissions
|
|
patch:
|
|
operationId: patchApiV1PermissionsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
category:
|
|
type: string
|
|
minLength: 1
|
|
code:
|
|
type: string
|
|
minLength: 1
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
isActive:
|
|
default: true
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Permission"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- permissions
|
|
delete:
|
|
operationId: deleteApiV1PermissionsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 16
|
|
maxLength: 16
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- permissions
|
|
/api/v1/providers:
|
|
get:
|
|
operationId: getApiV1Providers
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: enabled
|
|
schema:
|
|
type: boolean
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
providers:
|
|
items:
|
|
$ref: "#/components/schemas/Provider"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- providers
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- providers
|
|
post:
|
|
operationId: postApiV1Providers
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
checkModel:
|
|
type:
|
|
- string
|
|
- "null"
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
enabled:
|
|
type: boolean
|
|
fetchOnClient:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
keyVaults:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: string
|
|
logo:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
settings:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
sort:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
source:
|
|
type: string
|
|
enum:
|
|
- builtin
|
|
- custom
|
|
id:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- id
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Provider"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- providers
|
|
/api/v1/providers/{id}:
|
|
get:
|
|
operationId: getApiV1ProvidersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Provider"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- providers
|
|
patch:
|
|
operationId: patchApiV1ProvidersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
checkModel:
|
|
type:
|
|
- string
|
|
- "null"
|
|
config:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
enabled:
|
|
type: boolean
|
|
fetchOnClient:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
keyVaults:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: string
|
|
- type: "null"
|
|
logo:
|
|
type:
|
|
- string
|
|
- "null"
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
settings:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
sort:
|
|
anyOf:
|
|
- type: integer
|
|
minimum: -9007199254740991
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
source:
|
|
type: string
|
|
enum:
|
|
- builtin
|
|
- custom
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Provider"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- providers
|
|
delete:
|
|
operationId: deleteApiV1ProvidersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 64
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- providers
|
|
/api/v1/responses:
|
|
post:
|
|
operationId: postApiV1Responses
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
input:
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
items:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
content:
|
|
anyOf:
|
|
- type: string
|
|
- type: array
|
|
items:
|
|
oneOf:
|
|
- type: object
|
|
properties:
|
|
text:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: input_text
|
|
required:
|
|
- text
|
|
- type
|
|
- type: object
|
|
properties:
|
|
annotations:
|
|
type: array
|
|
items: {}
|
|
logprobs:
|
|
type: array
|
|
items: {}
|
|
text:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: output_text
|
|
required:
|
|
- text
|
|
- type
|
|
- type: object
|
|
properties:
|
|
detail:
|
|
type: string
|
|
enum:
|
|
- auto
|
|
- low
|
|
- high
|
|
image_url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: input_image
|
|
required:
|
|
- type
|
|
- type: object
|
|
properties:
|
|
file_data:
|
|
type: string
|
|
file_id:
|
|
type: string
|
|
filename:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: input_file
|
|
required:
|
|
- type
|
|
id:
|
|
type: string
|
|
role:
|
|
type: string
|
|
enum:
|
|
- user
|
|
- assistant
|
|
- system
|
|
- developer
|
|
status:
|
|
type: string
|
|
enum:
|
|
- completed
|
|
- in_progress
|
|
type:
|
|
type: string
|
|
const: message
|
|
required:
|
|
- content
|
|
- role
|
|
- type
|
|
additionalProperties: {}
|
|
- type: object
|
|
properties:
|
|
arguments:
|
|
type: string
|
|
call_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum:
|
|
- completed
|
|
- in_progress
|
|
type:
|
|
type: string
|
|
const: function_call
|
|
required:
|
|
- arguments
|
|
- name
|
|
- type
|
|
- type: object
|
|
properties:
|
|
call_id:
|
|
type: string
|
|
id:
|
|
type: string
|
|
output:
|
|
type: string
|
|
status:
|
|
type: string
|
|
enum:
|
|
- completed
|
|
- in_progress
|
|
- incomplete
|
|
type:
|
|
type: string
|
|
const: function_call_output
|
|
required:
|
|
- call_id
|
|
- output
|
|
- type
|
|
instructions:
|
|
type:
|
|
- string
|
|
- "null"
|
|
max_output_tokens:
|
|
anyOf:
|
|
- type: integer
|
|
exclusiveMinimum: 0
|
|
maximum: 9007199254740991
|
|
- type: "null"
|
|
metadata:
|
|
anyOf:
|
|
- type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties:
|
|
type: string
|
|
- type: "null"
|
|
model:
|
|
type: string
|
|
parallel_tool_calls:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
previous_response_id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
reasoning:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
effort:
|
|
type: string
|
|
enum:
|
|
- low
|
|
- medium
|
|
- high
|
|
- type: "null"
|
|
stream:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
temperature:
|
|
anyOf:
|
|
- type: number
|
|
minimum: 0
|
|
maximum: 2
|
|
- type: "null"
|
|
tool_choice:
|
|
anyOf:
|
|
- anyOf:
|
|
- type: string
|
|
enum:
|
|
- auto
|
|
- required
|
|
- none
|
|
- type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
const: function
|
|
required:
|
|
- name
|
|
- type
|
|
- type: "null"
|
|
tools:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
description:
|
|
type: string
|
|
name:
|
|
type: string
|
|
parameters:
|
|
type: object
|
|
propertyNames:
|
|
type: string
|
|
additionalProperties: {}
|
|
strict:
|
|
type: boolean
|
|
type:
|
|
type: string
|
|
const: function
|
|
required:
|
|
- name
|
|
- type
|
|
- type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
format: starts_with
|
|
pattern: ^lobe-.*
|
|
required:
|
|
- type
|
|
- type: "null"
|
|
top_p:
|
|
anyOf:
|
|
- type: number
|
|
minimum: 0
|
|
maximum: 1
|
|
- type: "null"
|
|
truncation:
|
|
anyOf:
|
|
- type: object
|
|
properties:
|
|
type:
|
|
default: disabled
|
|
type: string
|
|
enum:
|
|
- auto
|
|
- disabled
|
|
- type: "null"
|
|
user:
|
|
type:
|
|
- string
|
|
- "null"
|
|
required:
|
|
- input
|
|
- model
|
|
additionalProperties: {}
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: true
|
|
properties:
|
|
id:
|
|
type: string
|
|
object:
|
|
const: response
|
|
type: string
|
|
output:
|
|
items:
|
|
type: object
|
|
type: array
|
|
status:
|
|
type: string
|
|
usage:
|
|
type:
|
|
- object
|
|
- "null"
|
|
required:
|
|
- id
|
|
- object
|
|
- output
|
|
- status
|
|
type: object
|
|
text/event-stream:
|
|
schema:
|
|
type: string
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- responses
|
|
/api/v1/roles:
|
|
get:
|
|
operationId: getApiV1Roles
|
|
parameters:
|
|
- in: query
|
|
name: active
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: system
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
roles:
|
|
items:
|
|
$ref: "#/components/schemas/Role"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- roles
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
post:
|
|
operationId: postApiV1Roles
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type: string
|
|
minLength: 1
|
|
isActive:
|
|
default: true
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
isSystem:
|
|
default: false
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- displayName
|
|
- name
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Role"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
/api/v1/roles/{id}:
|
|
get:
|
|
operationId: getApiV1RolesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Role"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
patch:
|
|
operationId: patchApiV1RolesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
description:
|
|
type:
|
|
- string
|
|
- "null"
|
|
displayName:
|
|
type: string
|
|
minLength: 1
|
|
isActive:
|
|
default: true
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
isSystem:
|
|
default: false
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
name:
|
|
type: string
|
|
minLength: 1
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Role"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
delete:
|
|
operationId: deleteApiV1RolesById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
/api/v1/roles/{id}/permissions:
|
|
get:
|
|
operationId: getApiV1RolesByIdPermissions
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
patch:
|
|
operationId: patchApiV1RolesByIdPermissions
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
grant:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
revoke:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
delete:
|
|
operationId: deleteApiV1RolesByIdPermissions
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- roles
|
|
/api/v1/topics:
|
|
get:
|
|
operationId: getApiV1Topics
|
|
parameters:
|
|
- in: query
|
|
name: agentId
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: excludeTriggers
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
- in: query
|
|
name: groupId
|
|
schema:
|
|
type:
|
|
- string
|
|
- "null"
|
|
- in: query
|
|
name: includeTriggers
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
- in: query
|
|
name: isInbox
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
topics:
|
|
items:
|
|
$ref: "#/components/schemas/Topic"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- topics
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- topics
|
|
post:
|
|
operationId: postApiV1Topics
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
agentId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
clientId:
|
|
type: string
|
|
favorite:
|
|
type: boolean
|
|
groupId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
title:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- title
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Topic"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- topics
|
|
/api/v1/topics/{id}:
|
|
get:
|
|
operationId: getApiV1TopicsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Topic"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- topics
|
|
patch:
|
|
operationId: patchApiV1TopicsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
favorite:
|
|
type: boolean
|
|
historySummary:
|
|
type: string
|
|
metadata:
|
|
type: object
|
|
properties:
|
|
model:
|
|
type: string
|
|
provider:
|
|
type: string
|
|
boundDeviceId:
|
|
type: string
|
|
workingDirectory:
|
|
type: string
|
|
title:
|
|
type: string
|
|
minLength: 1
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Topic"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- topics
|
|
delete:
|
|
operationId: deleteApiV1TopicsById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- topics
|
|
/api/v1/topics/{topicId}/threads:
|
|
get:
|
|
operationId: getApiV1TopicsByTopicIdThreads
|
|
summary: List topic threads
|
|
tags:
|
|
- topics
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
type: object
|
|
properties:
|
|
threads:
|
|
type: array
|
|
items:
|
|
type: object
|
|
additionalProperties: false
|
|
properties:
|
|
id:
|
|
type: string
|
|
topicId:
|
|
type: string
|
|
title:
|
|
type:
|
|
- string
|
|
- "null"
|
|
type:
|
|
type: string
|
|
status:
|
|
type:
|
|
- string
|
|
- "null"
|
|
parentThreadId:
|
|
type:
|
|
- string
|
|
- "null"
|
|
createdAt:
|
|
format: date-time
|
|
type: string
|
|
updatedAt:
|
|
format: date-time
|
|
type: string
|
|
total:
|
|
type: integer
|
|
required:
|
|
- threads
|
|
- total
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
parameters:
|
|
- in: path
|
|
name: topicId
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
- in: query
|
|
name: limit
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
- in: query
|
|
name: offset
|
|
schema:
|
|
type: integer
|
|
minimum: 0
|
|
maximum: 1000000
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 1000000
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: integer
|
|
minimum: 1
|
|
maximum: 100
|
|
/api/v1/users/me:
|
|
get:
|
|
operationId: getApiV1UsersMe
|
|
summary: Get current authenticated user
|
|
tags:
|
|
- users
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
anyOf:
|
|
- $ref: "#/components/schemas/User"
|
|
- additionalProperties: false
|
|
properties:
|
|
id:
|
|
type: string
|
|
required:
|
|
- id
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
/api/v1/users:
|
|
get:
|
|
operationId: getApiV1Users
|
|
parameters:
|
|
- in: query
|
|
name: keyword
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: page
|
|
schema:
|
|
type: string
|
|
- in: query
|
|
name: pageSize
|
|
schema:
|
|
type: string
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
properties:
|
|
users:
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
type: array
|
|
total:
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- users
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
post:
|
|
operationId: postApiV1Users
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
email:
|
|
anyOf:
|
|
- type: string
|
|
format: email
|
|
pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
|
|
- type: "null"
|
|
firstName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
fullName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
id:
|
|
type:
|
|
- string
|
|
- "null"
|
|
lastName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
phone:
|
|
type:
|
|
- string
|
|
- "null"
|
|
roleIds:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
username:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/User"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
/api/v1/users/{id}:
|
|
get:
|
|
operationId: getApiV1UsersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/User"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
patch:
|
|
operationId: patchApiV1UsersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
avatar:
|
|
type:
|
|
- string
|
|
- "null"
|
|
email:
|
|
anyOf:
|
|
- type: string
|
|
format: email
|
|
pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
|
|
- type: "null"
|
|
firstName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
fullName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
isOnboarded:
|
|
type:
|
|
- boolean
|
|
- "null"
|
|
lastName:
|
|
type:
|
|
- string
|
|
- "null"
|
|
phone:
|
|
type:
|
|
- string
|
|
- "null"
|
|
preference:
|
|
anyOf:
|
|
- {}
|
|
- type: "null"
|
|
roleIds:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
username:
|
|
anyOf:
|
|
- type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/User"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
delete:
|
|
operationId: deleteApiV1UsersById
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
/api/v1/users/{id}/roles:
|
|
get:
|
|
operationId: getApiV1UsersByIdRoles
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
patch:
|
|
operationId: patchApiV1UsersByIdRoles
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
addRoles:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
expiresAt:
|
|
anyOf:
|
|
- type: string
|
|
format: date-time
|
|
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
|
|
- type: "null"
|
|
roleId:
|
|
type: string
|
|
minLength: 1
|
|
required:
|
|
- roleId
|
|
- type: "null"
|
|
removeRoles:
|
|
anyOf:
|
|
- type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
- type: "null"
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type: object
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
delete:
|
|
operationId: deleteApiV1UsersByIdRoles
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: string
|
|
minLength: 1
|
|
required: true
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
additionalProperties: true
|
|
type:
|
|
- object
|
|
- "null"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
enum:
|
|
- false
|
|
error:
|
|
type: array
|
|
items: {}
|
|
data: {}
|
|
required:
|
|
- success
|
|
- error
|
|
- data
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|
|
tags:
|
|
- users
|
|
/api/v1/usage:
|
|
get:
|
|
operationId: getApiV1Usage
|
|
summary: Get usage and quota summary
|
|
tags:
|
|
- usage
|
|
responses:
|
|
"200":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties: false
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/Usage"
|
|
message:
|
|
type: string
|
|
success:
|
|
const: true
|
|
type: boolean
|
|
timestamp:
|
|
format: date-time
|
|
type: string
|
|
required:
|
|
- success
|
|
- timestamp
|
|
type: object
|
|
description: Successful response
|
|
"400":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Invalid request
|
|
"401":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Authentication required
|
|
"403":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Insufficient permission
|
|
"404":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource not found
|
|
"409":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Resource conflict
|
|
"429":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Rate limit exceeded
|
|
"500":
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ApiError"
|
|
description: Internal server error
|