docs(api): 更新Swagger文档以包含助理工具类型
更新了Swagger API文档,以包含新的“assistant_tool_type”定义。这定义了助理工具类型,包括ID、助理和工具的ID、创建和更新时间等属性。此外,调整了若干API路径的响应和参数部分,以更准确地反映当前的API行为。
This commit is contained in:
parent
1a70561f7c
commit
4bdb33ba19
625
api/swagger.yaml
625
api/swagger.yaml
@ -29,6 +29,23 @@ definitions:
|
||||
updated_at:
|
||||
type: string
|
||||
type: object
|
||||
rag-new_internal_entity.AssistantToolType:
|
||||
properties:
|
||||
assistant:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Assistant'
|
||||
assistant_id:
|
||||
type: integer
|
||||
created_at:
|
||||
type: string
|
||||
id:
|
||||
type: integer
|
||||
tool:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Tool'
|
||||
tool_id:
|
||||
type: integer
|
||||
updated_at:
|
||||
type: string
|
||||
type: object
|
||||
rag-new_internal_entity.Chat:
|
||||
properties:
|
||||
assistant_id:
|
||||
@ -72,7 +89,7 @@ definitions:
|
||||
created_at:
|
||||
type: string
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutput"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutput'
|
||||
description:
|
||||
type: string
|
||||
discovery_url:
|
||||
@ -97,8 +114,8 @@ definitions:
|
||||
prompt:
|
||||
type: string
|
||||
required:
|
||||
- description
|
||||
- name
|
||||
- description
|
||||
- name
|
||||
type: object
|
||||
rag-new_internal_schema.ChatCreateRequest:
|
||||
properties:
|
||||
@ -108,8 +125,8 @@ definitions:
|
||||
maxLength: 255
|
||||
type: string
|
||||
required:
|
||||
- assistant_id
|
||||
- name
|
||||
- assistant_id
|
||||
- name
|
||||
type: object
|
||||
rag-new_internal_schema.ChatMessageAddRequest:
|
||||
properties:
|
||||
@ -117,7 +134,7 @@ definitions:
|
||||
maxLength: 255
|
||||
type: string
|
||||
required:
|
||||
- message
|
||||
- message
|
||||
type: object
|
||||
rag-new_internal_schema.ChatMessageResponse:
|
||||
properties:
|
||||
@ -160,9 +177,9 @@ definitions:
|
||||
maxLength: 255
|
||||
type: string
|
||||
required:
|
||||
- description
|
||||
- name
|
||||
- url
|
||||
- description
|
||||
- name
|
||||
- url
|
||||
type: object
|
||||
rag-new_internal_schema.ToolDiscoveryOutput:
|
||||
properties:
|
||||
@ -172,7 +189,7 @@ definitions:
|
||||
type: string
|
||||
function:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunctions"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunctions'
|
||||
type: array
|
||||
homepage_url:
|
||||
type: string
|
||||
@ -195,7 +212,7 @@ definitions:
|
||||
properties:
|
||||
function:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunction"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ToolDiscoveryOutputFunction'
|
||||
type: array
|
||||
type:
|
||||
type: string
|
||||
@ -208,594 +225,618 @@ paths:
|
||||
/api/v1/assistants:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Assistant"
|
||||
type: array
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Assistant'
|
||||
type: array
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 获取 Assistant 列表
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant
|
||||
in: body
|
||||
name: assistant
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.AssistantCreateRequest"
|
||||
- description: Assistant
|
||||
in: body
|
||||
name: assistant
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/rag-new_internal_schema.AssistantCreateRequest'
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Assistant"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Assistant'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 创建 Assistant
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
/api/v1/assistants/{id}:
|
||||
delete:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"204":
|
||||
description: No Content
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 删除 Assistant
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Assistant'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
summary: 获取指定的 Assistant
|
||||
tags:
|
||||
- assistant
|
||||
/api/v1/assistants/{id}/tools:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_entity.AssistantTool"
|
||||
type: array
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/rag-new_internal_entity.AssistantToolType'
|
||||
type: array
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 获取 Assistant 所绑定的 Tool
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
/api/v1/assistants/{id}/tools/{tool_id}:
|
||||
delete:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: tool_id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: tool_id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_entity.AssistantTool"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.AssistantTool'
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 解绑 Tool
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
description: get string by ID
|
||||
- application/json
|
||||
parameters:
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: tool_id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Assistant ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: tool_id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_entity.AssistantTool"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.AssistantTool'
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 绑定 Tool
|
||||
tags:
|
||||
- assistant
|
||||
- assistant
|
||||
/api/v1/chats:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Chat"
|
||||
type: array
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Chat'
|
||||
type: array
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
summary: 获取所有 Chat
|
||||
tags:
|
||||
- chat
|
||||
- chat
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
parameters:
|
||||
- description: Chat
|
||||
in: body
|
||||
name: chat
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatCreateRequest"
|
||||
- description: Chat
|
||||
in: body
|
||||
name: chat
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatCreateRequest'
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Chat"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Chat'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
summary: Create Chat
|
||||
tags:
|
||||
- chat
|
||||
- chat
|
||||
/api/v1/chats/{id}:
|
||||
delete:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
parameters:
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: Delete Chat
|
||||
tags:
|
||||
- chat
|
||||
- chat
|
||||
/api/v1/chats/{id}/messages:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
parameters:
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_entity.ChatMessage"
|
||||
type: array
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/rag-new_internal_entity.ChatMessage'
|
||||
type: array
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 查看聊天记录
|
||||
tags:
|
||||
- chat_message
|
||||
- chat_message
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
parameters:
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Message
|
||||
in: body
|
||||
name: message
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatMessageAddRequest"
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Message
|
||||
in: body
|
||||
name: message
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatMessageAddRequest'
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"409":
|
||||
description: Conflict
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse'
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: 添加聊天记录
|
||||
tags:
|
||||
- chat_message
|
||||
- chat_message
|
||||
/api/v1/ping:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.CurrentUserResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_schema.CurrentUserResponse'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: Greet
|
||||
tags:
|
||||
- ping
|
||||
- ping
|
||||
/api/v1/stream/{stream_id}:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: get string by ID
|
||||
parameters:
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Chat stream id
|
||||
in: path
|
||||
name: stream_id
|
||||
required: true
|
||||
type: string
|
||||
- description: Chat ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
- description: Chat stream id
|
||||
in: path
|
||||
name: stream_id
|
||||
required: true
|
||||
type: string
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"409":
|
||||
description: Conflict
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ChatMessageResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ChatMessageResponse'
|
||||
type: object
|
||||
"500":
|
||||
description: Internal Server Error
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- none: []
|
||||
- none: []
|
||||
summary: 流式传输聊天内容
|
||||
tags:
|
||||
- chat_message
|
||||
- chat_message
|
||||
/api/v1/tools:
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: List tools
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_schema.CurrentUserResponse"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Tool'
|
||||
type: array
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: List Tool
|
||||
tags:
|
||||
- tool
|
||||
- tool
|
||||
post:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: Create tool
|
||||
parameters:
|
||||
- description: Tool
|
||||
in: body
|
||||
name: tool
|
||||
required: true
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ToolCreateRequest"
|
||||
- description: Tool
|
||||
in: body
|
||||
name: tool
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/rag-new_internal_schema.ToolCreateRequest'
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
items:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Tool"
|
||||
type: array
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Tool'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: Create Tool
|
||||
tags:
|
||||
- tool
|
||||
- tool
|
||||
/api/v1/tools/{id}:
|
||||
delete:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: DeleteTool
|
||||
parameters:
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: DeleteTool
|
||||
tags:
|
||||
- tool
|
||||
- tool
|
||||
get:
|
||||
consumes:
|
||||
- application/json
|
||||
- application/json
|
||||
description: Get tool
|
||||
parameters:
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: string
|
||||
- description: Tool ID
|
||||
in: path
|
||||
name: id
|
||||
required: true
|
||||
type: integer
|
||||
produces:
|
||||
- application/json
|
||||
- application/json
|
||||
responses:
|
||||
"200":
|
||||
description: OK
|
||||
schema:
|
||||
allOf:
|
||||
- $ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
- properties:
|
||||
data:
|
||||
$ref: "#/definitions/rag-new_internal_entity.Tool"
|
||||
type: object
|
||||
- $ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
- properties:
|
||||
data:
|
||||
$ref: '#/definitions/rag-new_internal_entity.Tool'
|
||||
type: object
|
||||
"400":
|
||||
description: Bad Request
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
"404":
|
||||
description: Not Found
|
||||
schema:
|
||||
$ref: "#/definitions/rag-new_internal_schema.ResponseBody"
|
||||
$ref: '#/definitions/rag-new_internal_schema.ResponseBody'
|
||||
security:
|
||||
- ApiKeyAuth: []
|
||||
- ApiKeyAuth: []
|
||||
summary: Get Tool
|
||||
tags:
|
||||
- tool
|
||||
- tool
|
||||
securityDefinitions:
|
||||
ApiKeyAuth:
|
||||
in: header
|
||||
|
@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Welcome to Vuetify 3</title>
|
||||
<title>Leaflow Amber</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
4669
src/api/api.ts
4669
src/api/api.ts
File diff suppressed because it is too large
Load Diff
@ -5,18 +5,19 @@
|
||||
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
import type { Configuration } from "./configuration";
|
||||
|
||||
import type { Configuration } from './configuration';
|
||||
// Some imports not used depending on template conditions
|
||||
// @ts-ignore
|
||||
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from "axios";
|
||||
import globalAxios from "axios";
|
||||
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
|
||||
import globalAxios from 'axios';
|
||||
|
||||
export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
|
||||
|
||||
@ -25,10 +26,10 @@ export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
|
||||
* @export
|
||||
*/
|
||||
export const COLLECTION_FORMATS = {
|
||||
csv: ",",
|
||||
ssv: " ",
|
||||
tsv: "\t",
|
||||
pipes: "|",
|
||||
csv: ",",
|
||||
ssv: " ",
|
||||
tsv: "\t",
|
||||
pipes: "|",
|
||||
};
|
||||
|
||||
/**
|
||||
@ -37,8 +38,8 @@ export const COLLECTION_FORMATS = {
|
||||
* @interface RequestArgs
|
||||
*/
|
||||
export interface RequestArgs {
|
||||
url: string;
|
||||
options: RawAxiosRequestConfig;
|
||||
url: string;
|
||||
options: RawAxiosRequestConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,19 +48,15 @@ export interface RequestArgs {
|
||||
* @class BaseAPI
|
||||
*/
|
||||
export class BaseAPI {
|
||||
protected configuration: Configuration | undefined;
|
||||
protected configuration: Configuration | undefined;
|
||||
|
||||
constructor(
|
||||
configuration?: Configuration,
|
||||
protected basePath: string = BASE_PATH,
|
||||
protected axios: AxiosInstance = globalAxios,
|
||||
) {
|
||||
if (configuration) {
|
||||
this.configuration = configuration;
|
||||
this.basePath = configuration.basePath ?? basePath;
|
||||
constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected axios: AxiosInstance = globalAxios) {
|
||||
if (configuration) {
|
||||
this.configuration = configuration;
|
||||
this.basePath = configuration.basePath ?? basePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
@ -68,24 +65,22 @@ export class BaseAPI {
|
||||
* @extends {Error}
|
||||
*/
|
||||
export class RequiredError extends Error {
|
||||
constructor(
|
||||
public field: string,
|
||||
msg?: string,
|
||||
) {
|
||||
super(msg);
|
||||
this.name = "RequiredError";
|
||||
}
|
||||
constructor(public field: string, msg?: string) {
|
||||
super(msg);
|
||||
this.name = "RequiredError"
|
||||
}
|
||||
}
|
||||
|
||||
interface ServerMap {
|
||||
[key: string]: {
|
||||
url: string;
|
||||
description: string;
|
||||
}[];
|
||||
[key: string]: {
|
||||
url: string,
|
||||
description: string,
|
||||
}[];
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const operationServerMap: ServerMap = {};
|
||||
export const operationServerMap: ServerMap = {
|
||||
}
|
||||
|
@ -5,139 +5,105 @@
|
||||
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
import type { Configuration } from "./configuration";
|
||||
import type { RequestArgs } from "./base";
|
||||
import type { AxiosInstance, AxiosResponse } from "axios";
|
||||
import type { AxiosInstance, AxiosResponse } from 'axios';
|
||||
import { RequiredError } from "./base";
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const DUMMY_BASE_URL = "https://example.com";
|
||||
export const DUMMY_BASE_URL = 'https://example.com'
|
||||
|
||||
/**
|
||||
*
|
||||
* @throws {RequiredError}
|
||||
* @export
|
||||
*/
|
||||
export const assertParamExists = function (
|
||||
functionName: string,
|
||||
paramName: string,
|
||||
paramValue: unknown,
|
||||
) {
|
||||
if (paramValue === null || paramValue === undefined) {
|
||||
throw new RequiredError(
|
||||
paramName,
|
||||
`Required parameter ${paramName} was null or undefined when calling ${functionName}.`,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setApiKeyToObject = async function (
|
||||
object: any,
|
||||
keyParamName: string,
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
if (configuration && configuration.apiKey) {
|
||||
const localVarApiKeyValue =
|
||||
typeof configuration.apiKey === "function"
|
||||
? await configuration.apiKey(keyParamName)
|
||||
: await configuration.apiKey;
|
||||
object[keyParamName] = localVarApiKeyValue;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setBasicAuthToObject = function (
|
||||
object: any,
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
if (configuration && (configuration.username || configuration.password)) {
|
||||
object["auth"] = {
|
||||
username: configuration.username,
|
||||
password: configuration.password,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setBearerAuthToObject = async function (
|
||||
object: any,
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
if (configuration && configuration.accessToken) {
|
||||
const accessToken =
|
||||
typeof configuration.accessToken === "function"
|
||||
? await configuration.accessToken()
|
||||
: await configuration.accessToken;
|
||||
object["Authorization"] = "Bearer " + accessToken;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setOAuthToObject = async function (
|
||||
object: any,
|
||||
name: string,
|
||||
scopes: string[],
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
if (configuration && configuration.accessToken) {
|
||||
const localVarAccessTokenValue =
|
||||
typeof configuration.accessToken === "function"
|
||||
? await configuration.accessToken(name, scopes)
|
||||
: await configuration.accessToken;
|
||||
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
|
||||
}
|
||||
};
|
||||
|
||||
function setFlattenedQueryParams(
|
||||
urlSearchParams: URLSearchParams,
|
||||
parameter: any,
|
||||
key: string = "",
|
||||
): void {
|
||||
if (parameter == null) return;
|
||||
if (typeof parameter === "object") {
|
||||
if (Array.isArray(parameter)) {
|
||||
(parameter as any[]).forEach((item) =>
|
||||
setFlattenedQueryParams(urlSearchParams, item, key),
|
||||
);
|
||||
} else {
|
||||
Object.keys(parameter).forEach((currentKey) =>
|
||||
setFlattenedQueryParams(
|
||||
urlSearchParams,
|
||||
parameter[currentKey],
|
||||
`${key}${key !== "" ? "." : ""}${currentKey}`,
|
||||
),
|
||||
);
|
||||
export const assertParamExists = function (functionName: string, paramName: string, paramValue: unknown) {
|
||||
if (paramValue === null || paramValue === undefined) {
|
||||
throw new RequiredError(paramName, `Required parameter ${paramName} was null or undefined when calling ${functionName}.`);
|
||||
}
|
||||
} else {
|
||||
if (urlSearchParams.has(key)) {
|
||||
urlSearchParams.append(key, parameter);
|
||||
} else {
|
||||
urlSearchParams.set(key, parameter);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setApiKeyToObject = async function (object: any, keyParamName: string, configuration?: Configuration) {
|
||||
if (configuration && configuration.apiKey) {
|
||||
const localVarApiKeyValue = typeof configuration.apiKey === 'function'
|
||||
? await configuration.apiKey(keyParamName)
|
||||
: await configuration.apiKey;
|
||||
object[keyParamName] = localVarApiKeyValue;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setBasicAuthToObject = function (object: any, configuration?: Configuration) {
|
||||
if (configuration && (configuration.username || configuration.password)) {
|
||||
object["auth"] = { username: configuration.username, password: configuration.password };
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setBearerAuthToObject = async function (object: any, configuration?: Configuration) {
|
||||
if (configuration && configuration.accessToken) {
|
||||
const accessToken = typeof configuration.accessToken === 'function'
|
||||
? await configuration.accessToken()
|
||||
: await configuration.accessToken;
|
||||
object["Authorization"] = "Bearer " + accessToken;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const setOAuthToObject = async function (object: any, name: string, scopes: string[], configuration?: Configuration) {
|
||||
if (configuration && configuration.accessToken) {
|
||||
const localVarAccessTokenValue = typeof configuration.accessToken === 'function'
|
||||
? await configuration.accessToken(name, scopes)
|
||||
: await configuration.accessToken;
|
||||
object["Authorization"] = "Bearer " + localVarAccessTokenValue;
|
||||
}
|
||||
}
|
||||
|
||||
function setFlattenedQueryParams(urlSearchParams: URLSearchParams, parameter: any, key: string = ""): void {
|
||||
if (parameter == null) return;
|
||||
if (typeof parameter === "object") {
|
||||
if (Array.isArray(parameter)) {
|
||||
(parameter as any[]).forEach(item => setFlattenedQueryParams(urlSearchParams, item, key));
|
||||
}
|
||||
else {
|
||||
Object.keys(parameter).forEach(currentKey =>
|
||||
setFlattenedQueryParams(urlSearchParams, parameter[currentKey], `${key}${key !== '' ? '.' : ''}${currentKey}`)
|
||||
);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (urlSearchParams.has(key)) {
|
||||
urlSearchParams.append(key, parameter);
|
||||
}
|
||||
else {
|
||||
urlSearchParams.set(key, parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -145,58 +111,40 @@ function setFlattenedQueryParams(
|
||||
* @export
|
||||
*/
|
||||
export const setSearchParams = function (url: URL, ...objects: any[]) {
|
||||
const searchParams = new URLSearchParams(url.search);
|
||||
setFlattenedQueryParams(searchParams, objects);
|
||||
url.search = searchParams.toString();
|
||||
};
|
||||
const searchParams = new URLSearchParams(url.search);
|
||||
setFlattenedQueryParams(searchParams, objects);
|
||||
url.search = searchParams.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const serializeDataIfNeeded = function (
|
||||
value: any,
|
||||
requestOptions: any,
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
const nonString = typeof value !== "string";
|
||||
const needsSerialization =
|
||||
nonString && configuration && configuration.isJsonMime
|
||||
? configuration.isJsonMime(requestOptions.headers["Content-Type"])
|
||||
: nonString;
|
||||
return needsSerialization
|
||||
? JSON.stringify(value !== undefined ? value : {})
|
||||
: value || "";
|
||||
};
|
||||
export const serializeDataIfNeeded = function (value: any, requestOptions: any, configuration?: Configuration) {
|
||||
const nonString = typeof value !== 'string';
|
||||
const needsSerialization = nonString && configuration && configuration.isJsonMime
|
||||
? configuration.isJsonMime(requestOptions.headers['Content-Type'])
|
||||
: nonString;
|
||||
return needsSerialization
|
||||
? JSON.stringify(value !== undefined ? value : {})
|
||||
: (value || "");
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const toPathString = function (url: URL) {
|
||||
return url.pathname + url.search + url.hash;
|
||||
};
|
||||
return url.pathname + url.search + url.hash
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @export
|
||||
*/
|
||||
export const createRequestFunction = function (
|
||||
axiosArgs: RequestArgs,
|
||||
globalAxios: AxiosInstance,
|
||||
BASE_PATH: string,
|
||||
configuration?: Configuration,
|
||||
) {
|
||||
return <T = unknown, R = AxiosResponse<T>>(
|
||||
axios: AxiosInstance = globalAxios,
|
||||
basePath: string = BASE_PATH,
|
||||
) => {
|
||||
const axiosRequestArgs = {
|
||||
...axiosArgs.options,
|
||||
url:
|
||||
(axios.defaults.baseURL ? "" : (configuration?.basePath ?? basePath)) +
|
||||
axiosArgs.url,
|
||||
export const createRequestFunction = function (axiosArgs: RequestArgs, globalAxios: AxiosInstance, BASE_PATH: string, configuration?: Configuration) {
|
||||
return <T = unknown, R = AxiosResponse<T>>(axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
|
||||
const axiosRequestArgs = {...axiosArgs.options, url: (axios.defaults.baseURL ? '' : configuration?.basePath ?? basePath) + axiosArgs.url};
|
||||
return axios.request<T, R>(axiosRequestArgs);
|
||||
};
|
||||
return axios.request<T, R>(axiosRequestArgs);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -5,128 +5,106 @@
|
||||
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
export interface ConfigurationParameters {
|
||||
apiKey?:
|
||||
| string
|
||||
| Promise<string>
|
||||
| ((name: string) => string)
|
||||
| ((name: string) => Promise<string>);
|
||||
username?: string;
|
||||
password?: string;
|
||||
accessToken?:
|
||||
| string
|
||||
| Promise<string>
|
||||
| ((name?: string, scopes?: string[]) => string)
|
||||
| ((name?: string, scopes?: string[]) => Promise<string>);
|
||||
basePath?: string;
|
||||
serverIndex?: number;
|
||||
baseOptions?: any;
|
||||
formDataCtor?: new () => any;
|
||||
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
|
||||
username?: string;
|
||||
password?: string;
|
||||
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
|
||||
basePath?: string;
|
||||
serverIndex?: number;
|
||||
baseOptions?: any;
|
||||
formDataCtor?: new () => any;
|
||||
}
|
||||
|
||||
export class Configuration {
|
||||
/**
|
||||
* parameter for apiKey security
|
||||
* @param name security name
|
||||
* @memberof Configuration
|
||||
*/
|
||||
apiKey?:
|
||||
| string
|
||||
| Promise<string>
|
||||
| ((name: string) => string)
|
||||
| ((name: string) => Promise<string>);
|
||||
/**
|
||||
* parameter for basic security
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
username?: string;
|
||||
/**
|
||||
* parameter for basic security
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
password?: string;
|
||||
/**
|
||||
* parameter for oauth2 security
|
||||
* @param name security name
|
||||
* @param scopes oauth2 scope
|
||||
* @memberof Configuration
|
||||
*/
|
||||
accessToken?:
|
||||
| string
|
||||
| Promise<string>
|
||||
| ((name?: string, scopes?: string[]) => string)
|
||||
| ((name?: string, scopes?: string[]) => Promise<string>);
|
||||
/**
|
||||
* override base path
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
basePath?: string;
|
||||
/**
|
||||
* override server index
|
||||
*
|
||||
* @type {number}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
serverIndex?: number;
|
||||
/**
|
||||
* base options for axios calls
|
||||
*
|
||||
* @type {any}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
baseOptions?: any;
|
||||
/**
|
||||
* The FormData constructor that will be used to create multipart form data
|
||||
* requests. You can inject this here so that execution environments that
|
||||
* do not support the FormData class can still run the generated client.
|
||||
*
|
||||
* @type {new () => FormData}
|
||||
*/
|
||||
formDataCtor?: new () => any;
|
||||
/**
|
||||
* parameter for apiKey security
|
||||
* @param name security name
|
||||
* @memberof Configuration
|
||||
*/
|
||||
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
|
||||
/**
|
||||
* parameter for basic security
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
username?: string;
|
||||
/**
|
||||
* parameter for basic security
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
password?: string;
|
||||
/**
|
||||
* parameter for oauth2 security
|
||||
* @param name security name
|
||||
* @param scopes oauth2 scope
|
||||
* @memberof Configuration
|
||||
*/
|
||||
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
|
||||
/**
|
||||
* override base path
|
||||
*
|
||||
* @type {string}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
basePath?: string;
|
||||
/**
|
||||
* override server index
|
||||
*
|
||||
* @type {number}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
serverIndex?: number;
|
||||
/**
|
||||
* base options for axios calls
|
||||
*
|
||||
* @type {any}
|
||||
* @memberof Configuration
|
||||
*/
|
||||
baseOptions?: any;
|
||||
/**
|
||||
* The FormData constructor that will be used to create multipart form data
|
||||
* requests. You can inject this here so that execution environments that
|
||||
* do not support the FormData class can still run the generated client.
|
||||
*
|
||||
* @type {new () => FormData}
|
||||
*/
|
||||
formDataCtor?: new () => any;
|
||||
|
||||
constructor(param: ConfigurationParameters = {}) {
|
||||
this.apiKey = param.apiKey;
|
||||
this.username = param.username;
|
||||
this.password = param.password;
|
||||
this.accessToken = param.accessToken;
|
||||
this.basePath = param.basePath;
|
||||
this.serverIndex = param.serverIndex;
|
||||
this.baseOptions = param.baseOptions;
|
||||
this.formDataCtor = param.formDataCtor;
|
||||
}
|
||||
constructor(param: ConfigurationParameters = {}) {
|
||||
this.apiKey = param.apiKey;
|
||||
this.username = param.username;
|
||||
this.password = param.password;
|
||||
this.accessToken = param.accessToken;
|
||||
this.basePath = param.basePath;
|
||||
this.serverIndex = param.serverIndex;
|
||||
this.baseOptions = param.baseOptions;
|
||||
this.formDataCtor = param.formDataCtor;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the given MIME is a JSON MIME.
|
||||
* JSON MIME examples:
|
||||
* application/json
|
||||
* application/json; charset=UTF8
|
||||
* APPLICATION/JSON
|
||||
* application/vnd.company+json
|
||||
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
||||
* @return True if the given MIME is JSON, false otherwise.
|
||||
*/
|
||||
public isJsonMime(mime: string): boolean {
|
||||
const jsonMime: RegExp = new RegExp(
|
||||
"^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$",
|
||||
"i",
|
||||
);
|
||||
return (
|
||||
mime !== null &&
|
||||
(jsonMime.test(mime) ||
|
||||
mime.toLowerCase() === "application/json-patch+json")
|
||||
);
|
||||
}
|
||||
/**
|
||||
* Check if the given MIME is a JSON MIME.
|
||||
* JSON MIME examples:
|
||||
* application/json
|
||||
* application/json; charset=UTF8
|
||||
* APPLICATION/JSON
|
||||
* application/vnd.company+json
|
||||
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
||||
* @return True if the given MIME is JSON, false otherwise.
|
||||
*/
|
||||
public isJsonMime(mime: string): boolean {
|
||||
const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
||||
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
||||
}
|
||||
}
|
||||
|
@ -5,12 +5,14 @@
|
||||
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0
|
||||
*
|
||||
*
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
* https://openapi-generator.tech
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
|
||||
|
||||
export * from "./api";
|
||||
export * from "./configuration";
|
||||
|
||||
|
@ -25,6 +25,13 @@
|
||||
to="/assistants"
|
||||
/>
|
||||
|
||||
<v-list-item
|
||||
prepend-icon="mdi-home"
|
||||
rounded="lg"
|
||||
title="工具"
|
||||
to="/tools"
|
||||
/>
|
||||
|
||||
<v-list-item
|
||||
prepend-icon="mdi-home"
|
||||
rounded="lg"
|
||||
|
@ -1,35 +0,0 @@
|
||||
# Components
|
||||
|
||||
Vue template files in this folder are automatically imported.
|
||||
|
||||
## 🚀 Usage
|
||||
|
||||
Importing is handled by [unplugin-vue-components](https://github.com/unplugin/unplugin-vue-components). This plugin automatically imports `.vue` files created in the `src/components` directory, and registers them as global components. This means that you can use any component in your application without having to manually import it.
|
||||
|
||||
The following example assumes a component located at `src/components/MyComponent.vue`:
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<div>
|
||||
<MyComponent />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
//
|
||||
</script>
|
||||
```
|
||||
|
||||
When your template is rendered, the component's import will automatically be inlined, which renders to this:
|
||||
|
||||
```vue
|
||||
<template>
|
||||
<div>
|
||||
<MyComponent />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import MyComponent from "@/components/MyComponent.vue";
|
||||
</script>
|
||||
```
|
112
src/pages/assistants/[id]/tools.vue
Normal file
112
src/pages/assistants/[id]/tools.vue
Normal file
@ -0,0 +1,112 @@
|
||||
<template>
|
||||
<h3>助理 {{ assistant.data?.name }}</h3>
|
||||
|
||||
<div class="mt-3">
|
||||
<p>已经绑定的工具</p>
|
||||
<v-row>
|
||||
<v-col
|
||||
v-for="tool in bindedTools.data"
|
||||
:key="tool.id"
|
||||
cols="12"
|
||||
md="4"
|
||||
sm="6"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title>{{ tool.tool?.name }}</v-card-title>
|
||||
<v-card-text>
|
||||
<p>函数名称: {{ tool.tool?.data?.name }}</p>
|
||||
<p>函数描述:{{ tool.tool?.data?.description }}</p>
|
||||
<p>主页地址: {{ tool.tool?.data?.homepage_url }}</p>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn color="error" @click="unbindTool(tool.tool_id ?? 0)"
|
||||
>解除绑定</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
<div class="mt-4">
|
||||
<p>你创建的工具</p>
|
||||
<v-row>
|
||||
<v-col v-for="tool in tools.data" :key="tool.id" cols="12" md="4" sm="6">
|
||||
<v-card>
|
||||
<v-card-title>{{ tool.name }}</v-card-title>
|
||||
<v-card-text>
|
||||
<p>函数名称: {{ tool.data?.name }}</p>
|
||||
<p>函数描述:{{ tool.data?.description }}</p>
|
||||
<p>主页地址: {{ tool.data?.homepage_url }}</p>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" @click="bindTool(tool.id ?? 0)">绑定</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { api } from "@/plugins/api";
|
||||
import router from "@/router";
|
||||
import {
|
||||
ApiV1AssistantsIdToolsGet200Response,
|
||||
ApiV1AssistantsPost200Response,
|
||||
ApiV1ToolsGet200Response,
|
||||
} from "@/api";
|
||||
|
||||
// @ts-ignore
|
||||
const assistantId = router.currentRoute.value.params.id as number;
|
||||
const assistant: Ref<ApiV1AssistantsPost200Response> = ref({});
|
||||
const tools: Ref<ApiV1ToolsGet200Response> = ref({});
|
||||
|
||||
const bindedTools: Ref<ApiV1AssistantsIdToolsGet200Response> = ref({});
|
||||
|
||||
function getAssistant() {
|
||||
api.Assistant.apiV1AssistantsIdGet(assistantId).then((res) => {
|
||||
assistant.value = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
function getBindedTools() {
|
||||
api.Assistant.apiV1AssistantsIdToolsGet(assistantId).then((res) => {
|
||||
bindedTools.value = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
function getTools() {
|
||||
api.Tool.apiV1ToolsGet().then((res) => {
|
||||
tools.value = res.data;
|
||||
});
|
||||
}
|
||||
|
||||
function unbindTool(toolId: number) {
|
||||
api.Assistant.apiV1AssistantsIdToolsToolIdDelete(assistantId, toolId)
|
||||
.then(() => {
|
||||
refresh();
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
function refresh() {
|
||||
getAssistant();
|
||||
getTools();
|
||||
getBindedTools();
|
||||
}
|
||||
|
||||
function bindTool(toolId: number) {
|
||||
api.Assistant.apiV1AssistantsIdToolsToolIdPost(assistantId, toolId)
|
||||
.then(() => {
|
||||
refresh();
|
||||
})
|
||||
.catch((e) => {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
refresh();
|
||||
</script>
|
0
src/pages/assistants/binds.vue
Normal file
0
src/pages/assistants/binds.vue
Normal file
@ -20,12 +20,13 @@
|
||||
<p>Phone: {{ assistant.phone }}</p> -->
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-btn color="primary" @click="openDialog(assistant.id ?? 0)"
|
||||
<!-- <v-btn color="primary" @click="openDialog(assistant.id ?? 0)"
|
||||
>对话</v-btn
|
||||
> -->
|
||||
|
||||
<v-btn color="primary" @click="editTool(assistant.id ?? 0)"
|
||||
>工具</v-btn
|
||||
>
|
||||
<!-- <v-btn color="primary" @click="editAssistant(assistant)"
|
||||
>编辑</v-btn
|
||||
> -->
|
||||
<v-btn color="error" @click="deleteAssistant(assistant.id ?? 0)"
|
||||
>删除</v-btn
|
||||
>
|
||||
@ -61,7 +62,6 @@ const assistants: Ref<ApiV1AssistantsGet200Response> = ref({});
|
||||
function refresh() {
|
||||
api.Assistant.apiV1AssistantsGet().then((res) => {
|
||||
assistants.value = res.data;
|
||||
console.log(assistants.value);
|
||||
});
|
||||
}
|
||||
refresh();
|
||||
@ -87,6 +87,10 @@ function deleteAssistantConfirmed() {
|
||||
refresh();
|
||||
}
|
||||
|
||||
function editTool(assistantId: number) {
|
||||
router.push(`/assistants/${assistantId}/tools`);
|
||||
}
|
||||
|
||||
function to(path: string) {
|
||||
router.push(path);
|
||||
}
|
||||
|
58
src/pages/tools/create.vue
Normal file
58
src/pages/tools/create.vue
Normal file
@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<div>
|
||||
<h3>创建工具</h3>
|
||||
<v-text-field v-model="toolName" label="工具名称" required></v-text-field>
|
||||
<v-textarea
|
||||
v-model="toolDescription"
|
||||
label="工具描述"
|
||||
required
|
||||
></v-textarea>
|
||||
<v-text-field v-model="toolUrl" label="发现地址" required></v-text-field>
|
||||
<v-text-field v-model="toolApiKey" label="认证密钥" required></v-text-field>
|
||||
<v-btn color="primary" @click="createTool">创建</v-btn>
|
||||
<v-dialog v-model="failedDialog.show" max-width="290" persistent>
|
||||
<v-card>
|
||||
<v-card-title class="headline">创建失败</v-card-title>
|
||||
<v-card-text>{{ failedDialog.message }}</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="green darken-1" @click="failedDialog.show = false"
|
||||
>关闭</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { api } from "@/plugins/api";
|
||||
import router from "@/router";
|
||||
|
||||
const toolName = ref("");
|
||||
const toolDescription = ref("");
|
||||
const toolUrl = ref("");
|
||||
const toolApiKey = ref("");
|
||||
|
||||
function createTool() {
|
||||
api.Tool.apiV1ToolsPost({
|
||||
name: toolName.value,
|
||||
description: toolDescription.value,
|
||||
url: toolUrl.value,
|
||||
api_key: toolApiKey.value,
|
||||
})
|
||||
.then((r) => {
|
||||
router.push("/tools");
|
||||
})
|
||||
.catch((e) => {
|
||||
failedDialog.value.show = true;
|
||||
failedDialog.value.message = e.response?.data?.error ?? "未知错误";
|
||||
});
|
||||
}
|
||||
|
||||
const failedDialog = ref({
|
||||
show: false,
|
||||
message: "",
|
||||
});
|
||||
</script>
|
105
src/pages/tools/index.vue
Normal file
105
src/pages/tools/index.vue
Normal file
@ -0,0 +1,105 @@
|
||||
<template>
|
||||
<h3>工具</h3>
|
||||
|
||||
<v-btn color="primary" @click="to('/tools/create')">创建工具</v-btn>
|
||||
|
||||
<div class="mt-3">
|
||||
<v-row
|
||||
><v-slide-x-transition group>
|
||||
<v-col
|
||||
v-for="tool in tools.data"
|
||||
:key="tool.id"
|
||||
cols="12"
|
||||
md="4"
|
||||
sm="6"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-title>{{ tool.name }}</v-card-title>
|
||||
<v-card-text>
|
||||
<p>函数名称: {{ tool.data?.name }}</p>
|
||||
<p>函数描述:{{ tool.data?.description }}</p>
|
||||
<p>主页地址: {{ tool.data?.homepage_url }}</p>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<!-- <v-btn color="primary" @click="editAssistant(assistant)"
|
||||
>编辑</v-btn
|
||||
> -->
|
||||
<v-btn color="error" @click="deleteTool(tool.id ?? 0)"
|
||||
>删除</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-col>
|
||||
</v-slide-x-transition></v-row
|
||||
>
|
||||
</div>
|
||||
|
||||
<v-dialog v-model="dialog" max-width="290" persistent>
|
||||
<v-card>
|
||||
<v-card-title class="headline">确认删除</v-card-title>
|
||||
<v-card-text>您确定要删除这个工具吗?</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="green darken-1" @click="dialog = false">取消</v-btn>
|
||||
<v-btn color="red darken-1" @click="deleteId">删除</v-btn>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
|
||||
<v-dialog v-model="failedDialog.show" max-width="290" persistent>
|
||||
<v-card>
|
||||
<v-card-title class="headline">创建失败</v-card-title>
|
||||
<v-card-text>{{ failedDialog.message }}</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<v-btn color="green darken-1" @click="failedDialog.show = false"
|
||||
>关闭</v-btn
|
||||
>
|
||||
</v-card-actions>
|
||||
</v-card>
|
||||
</v-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ApiV1ToolsGet200Response } from "@/api";
|
||||
import { api } from "@/plugins/api";
|
||||
import router from "@/router";
|
||||
|
||||
const tools: Ref<ApiV1ToolsGet200Response> = ref({});
|
||||
|
||||
function refresh() {
|
||||
api.Tool.apiV1ToolsGet().then((res) => {
|
||||
tools.value = res.data;
|
||||
console.log(tools.value);
|
||||
});
|
||||
}
|
||||
refresh();
|
||||
|
||||
const dialog = ref(false);
|
||||
const failedDialog = ref({
|
||||
show: false,
|
||||
message: "创建失败",
|
||||
});
|
||||
const selectedId = ref(0);
|
||||
|
||||
function deleteTool(id: number) {
|
||||
selectedId.value = id;
|
||||
dialog.value = true;
|
||||
}
|
||||
|
||||
function deleteId() {
|
||||
api.Tool.apiV1ToolsIdDelete(selectedId.value)
|
||||
.then(() => {
|
||||
refresh();
|
||||
})
|
||||
.catch((r) => {
|
||||
failedDialog.value.show = true;
|
||||
failedDialog.value.message = r.response.data.error;
|
||||
});
|
||||
dialog.value = false;
|
||||
}
|
||||
|
||||
function to(path: string) {
|
||||
router.push(path);
|
||||
}
|
||||
</script>
|
4
src/typed-router.d.ts
vendored
4
src/typed-router.d.ts
vendored
@ -20,9 +20,13 @@ declare module 'vue-router/auto-routes' {
|
||||
export interface RouteNamedMap {
|
||||
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
|
||||
'/assistants/': RouteRecordInfo<'/assistants/', '/assistants', Record<never, never>, Record<never, never>>,
|
||||
'/assistants/[id]/tools': RouteRecordInfo<'/assistants/[id]/tools', '/assistants/:id/tools', { id: ParamValue<true> }, { id: ParamValue<false> }>,
|
||||
'/assistants/binds': RouteRecordInfo<'/assistants/binds', '/assistants/binds', Record<never, never>, Record<never, never>>,
|
||||
'/assistants/create': RouteRecordInfo<'/assistants/create', '/assistants/create', Record<never, never>, Record<never, never>>,
|
||||
'/auth/callback': RouteRecordInfo<'/auth/callback', '/auth/callback', Record<never, never>, Record<never, never>>,
|
||||
'/auth/login': RouteRecordInfo<'/auth/login', '/auth/login', Record<never, never>, Record<never, never>>,
|
||||
'/ping/': RouteRecordInfo<'/ping/', '/ping', Record<never, never>, Record<never, never>>,
|
||||
'/tools/': RouteRecordInfo<'/tools/', '/tools', Record<never, never>, Record<never, never>>,
|
||||
'/tools/create': RouteRecordInfo<'/tools/create', '/tools/create', Record<never, never>, Record<never, never>>,
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user