mirror of
https://github.com/langgenius/dify.git
synced 2026-02-23 03:17:57 +08:00
2231 lines
58 KiB
JSON
2231 lines
58 KiB
JSON
{
|
|
"openapi": "3.0.1",
|
|
"info": {
|
|
"title": "Web API",
|
|
"description": "Public APIs for web applications including file uploads, chat interactions, and app management",
|
|
"version": "1.0"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "/api"
|
|
}
|
|
],
|
|
"security": [
|
|
{
|
|
"Bearer": []
|
|
}
|
|
],
|
|
"tags": [
|
|
{
|
|
"name": "web",
|
|
"description": "Web application API operations"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/audio-to-text": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Convert audio to text",
|
|
"description": "Convert audio file to text using speech-to-text service.",
|
|
"operationId": "Audio to Text",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"413": {
|
|
"description": "Audio file too large",
|
|
"content": {}
|
|
},
|
|
"415": {
|
|
"description": "Unsupported audio type",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/chat-messages": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Create a chat message for conversational applications.",
|
|
"operationId": "Create Chat Message",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessagePayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/chat-messages/{task_id}/stop": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Stop a running chat message task.",
|
|
"operationId": "Stop Chat Message",
|
|
"parameters": [
|
|
{
|
|
"name": "task_id",
|
|
"in": "path",
|
|
"description": "Task ID to stop",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Task Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/completion-messages": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Create a completion message for text generation applications.",
|
|
"operationId": "Create Completion Message",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CompletionMessagePayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/completion-messages/{task_id}/stop": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Stop a running completion message task.",
|
|
"operationId": "Stop Completion Message",
|
|
"parameters": [
|
|
{
|
|
"name": "task_id",
|
|
"in": "path",
|
|
"description": "Task ID to stop",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Task Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/conversations": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Retrieve paginated list of conversations for a chat application.",
|
|
"operationId": "Get Conversation List",
|
|
"parameters": [
|
|
{
|
|
"name": "last_id",
|
|
"in": "query",
|
|
"description": "Last conversation ID for pagination",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Number of conversations to return (1-100)",
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
}
|
|
},
|
|
{
|
|
"name": "pinned",
|
|
"in": "query",
|
|
"description": "Filter by pinned status",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"true",
|
|
"false"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "sort_by",
|
|
"in": "query",
|
|
"description": "Sort order",
|
|
"schema": {
|
|
"type": "string",
|
|
"default": "-updated_at",
|
|
"enum": [
|
|
"created_at",
|
|
"-created_at",
|
|
"updated_at",
|
|
"-updated_at"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/conversations/{c_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Delete a specific conversation.",
|
|
"operationId": "Delete Conversation",
|
|
"parameters": [
|
|
{
|
|
"name": "c_id",
|
|
"in": "path",
|
|
"description": "Conversation UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Conversation deleted successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Conversation Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/conversations/{c_id}/name": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Rename a specific conversation with a custom name or auto-generate one.",
|
|
"operationId": "Rename Conversation",
|
|
"parameters": [
|
|
{
|
|
"name": "c_id",
|
|
"in": "path",
|
|
"description": "Conversation UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "name",
|
|
"in": "query",
|
|
"description": "New conversation name",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "auto_generate",
|
|
"in": "query",
|
|
"description": "Auto-generate conversation name",
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation renamed successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Conversation Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/conversations/{c_id}/pin": {
|
|
"patch": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Pin a specific conversation to keep it at the top of the list.",
|
|
"operationId": "Pin Conversation",
|
|
"parameters": [
|
|
{
|
|
"name": "c_id",
|
|
"in": "path",
|
|
"description": "Conversation UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation pinned successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Conversation Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/conversations/{c_id}/unpin": {
|
|
"patch": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Unpin a specific conversation to remove it from the top of the list.",
|
|
"operationId": "Unpin Conversation",
|
|
"parameters": [
|
|
{
|
|
"name": "c_id",
|
|
"in": "path",
|
|
"description": "Conversation UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Conversation unpinned successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Conversation Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/email-code-login": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Send email verification code for login",
|
|
"operationId": "send_email_code_login",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailCodeLoginSendPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Email code sent successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid email format",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Account not found",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/email-code-login/validity": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Verify email code and complete login",
|
|
"operationId": "verify_email_code_login",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailCodeLoginVerifyPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Email code verified and login successful",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid code or token",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Invalid token or expired code",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Account not found",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/files/upload": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Upload a file for use in web applications",
|
|
"description": "Upload a file for use in web applications\nAccepts file uploads for use within web applications, supporting\nmultiple file types with automatic validation and storage.\n\nArgs:\n app_model: The associated application model\n end_user: The end user uploading the file\n\nForm Parameters:\n file: The file to upload (required)\n source: Optional source type (datasets or None)\n\nReturns:\n dict: File information including ID, URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n NoFileUploadedError: No file provided in request\n TooManyFilesError: Multiple files provided (only one allowed)\n FilenameNotExistsError: File has no filename\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported",
|
|
"operationId": "upload_file",
|
|
"responses": {
|
|
"201": {
|
|
"description": "File uploaded successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid file or parameters",
|
|
"content": {}
|
|
},
|
|
"413": {
|
|
"description": "File too large",
|
|
"content": {}
|
|
},
|
|
"415": {
|
|
"description": "Unsupported file type",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/forgot-password": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Send password reset email",
|
|
"operationId": "send_forgot_password_email",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ForgotPasswordSendPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Password reset email sent successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid email format",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Account not found",
|
|
"content": {}
|
|
},
|
|
"429": {
|
|
"description": "Too many requests - rate limit exceeded",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/forgot-password/resets": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Reset user password with verification token",
|
|
"operationId": "reset_password",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ForgotPasswordResetPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Password reset successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid parameters or password mismatch",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Invalid or expired token",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Account not found",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/forgot-password/validity": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Verify password reset token validity",
|
|
"operationId": "check_forgot_password_token",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ForgotPasswordCheckPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Token is valid",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid token format",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Invalid or expired token",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/login": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Authenticate user and login",
|
|
"description": "Authenticate user for web application access",
|
|
"operationId": "web_app_login",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Authentication successful",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid email or password format",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Authentication failed - email or password mismatch",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Account banned or login disabled",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Account not found",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/login/status": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Check login status",
|
|
"operationId": "web_app_login_status",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Login status",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Login status",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/logout": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Logout user from web application",
|
|
"operationId": "web_app_logout",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Logout successful",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/messages": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Retrieve paginated list of messages from a conversation in a chat application.",
|
|
"operationId": "Get Message List",
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "query",
|
|
"description": "Conversation UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "first_id",
|
|
"in": "query",
|
|
"description": "First message ID for pagination",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Number of messages to return (1-100)",
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Conversation Not Found or Not a Chat App",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/messages/{message_id}/feedbacks": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Submit feedback (like/dislike) for a specific message.",
|
|
"operationId": "Create Message Feedback",
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"description": "Message UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "rating",
|
|
"in": "query",
|
|
"description": "Feedback rating",
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"like",
|
|
"dislike"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "content",
|
|
"in": "query",
|
|
"description": "Feedback content",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Feedback submitted successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Message Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/messages/{message_id}/more-like-this": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Generate a new completion similar to an existing message (completion apps only).",
|
|
"operationId": "Generate More Like This",
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MessageMoreLikeThisQuery"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request - Not a completion app or feature disabled",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Message Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/messages/{message_id}/suggested-questions": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Get suggested follow-up questions after a message (chat apps only).",
|
|
"operationId": "Get Suggested Questions",
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"description": "Message UUID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request - Not a chat app or feature disabled",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Message Not Found or Conversation Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/meta": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Get app meta",
|
|
"description": "Retrieve the metadata for a specific app.",
|
|
"operationId": "Get App Meta",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/parameters": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Retrieve app parameters",
|
|
"description": "Retrieve the parameters for a specific app.",
|
|
"operationId": "Get App Parameters",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/passport": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Get authentication passport for web application access",
|
|
"operationId": "get_passport",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Passport retrieved successfully",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized - missing app code or invalid authentication",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Application or user not found",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/remote-files/upload": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Upload a file from a remote URL",
|
|
"description": "Upload a file from a remote URL\nDownloads a file from the provided remote URL and uploads it\nto the platform storage for use in web applications.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n\nJSON Parameters:\n url: The remote URL to download the file from (required)\n\nReturns:\n dict: File information including ID, signed URL, and metadata\n int: HTTP status code 201 for success\n\nRaises:\n RemoteFileUploadError: Failed to fetch file from remote URL\n FileTooLargeError: File exceeds size limit\n UnsupportedFileTypeError: File type not supported",
|
|
"operationId": "upload_remote_file",
|
|
"responses": {
|
|
"201": {
|
|
"description": "Remote file uploaded successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FileWithSignedUrl"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid URL or parameters",
|
|
"content": {}
|
|
},
|
|
"413": {
|
|
"description": "File too large",
|
|
"content": {}
|
|
},
|
|
"415": {
|
|
"description": "Unsupported file type",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Failed to fetch remote file",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/remote-files/{url}": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Get information about a remote file",
|
|
"description": "Get information about a remote file\nRetrieves basic information about a file located at a remote URL,\nincluding content type and content length.\n\nArgs:\n app_model: The associated application model\n end_user: The end user making the request\n url: URL-encoded path to the remote file\n\nReturns:\n dict: Remote file information including type and length\n\nRaises:\n HTTPException: If the remote file cannot be accessed",
|
|
"operationId": "get_remote_file_info",
|
|
"parameters": [
|
|
{
|
|
"name": "url",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Remote file information retrieved successfully",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RemoteFileInfo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Bad request - invalid URL",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Remote file not found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Failed to fetch remote file",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/saved-messages": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Retrieve paginated list of saved messages for a completion application.",
|
|
"operationId": "Get Saved Messages",
|
|
"parameters": [
|
|
{
|
|
"name": "last_id",
|
|
"in": "query",
|
|
"description": "Last message ID for pagination",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Number of messages to return (1-100)",
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request - Not a completion app",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Save a specific message for later reference.",
|
|
"operationId": "Save Message",
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "query",
|
|
"description": "Message UUID to save",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Message saved successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request - Not a completion app",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Message Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/saved-messages/{message_id}": {
|
|
"delete": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Remove a message from saved messages.",
|
|
"operationId": "Delete Saved Message",
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"description": "Message UUID to delete",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Message removed successfully",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request - Not a completion app",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Message Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/site": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Retrieve app site info",
|
|
"description": "Retrieve app site information and configuration.",
|
|
"operationId": "Get App Site Info",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/system-features": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Get system feature flags and configuration",
|
|
"description": "Get system feature flags and configuration\nReturns the current system feature flags and configuration\nthat control various functionalities across the platform.\n\nReturns:\n dict: System feature configuration object\n\nThis endpoint is akin to the `SystemFeatureApi` endpoint in api/controllers/console/feature.py,\nexcept it is intended for use by the web app, instead of the console dashboard.\n\nNOTE: This endpoint is unauthenticated by design, as it provides system features\ndata required for webapp initialization.\n\nAuthentication would create circular dependency (can't authenticate without webapp loading).\n\nOnly non-sensitive configuration data should be returned by this endpoint.",
|
|
"operationId": "get_system_features",
|
|
"responses": {
|
|
"200": {
|
|
"description": "System features retrieved successfully",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal server error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/text-to-audio": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Convert text to audio",
|
|
"description": "Convert text to audio using text-to-speech service.",
|
|
"operationId": "Text to Audio",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TextToAudioPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/webapp/access-mode": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Retrieve the access mode for a web application (public or restricted).",
|
|
"operationId": "Get App Access Mode",
|
|
"parameters": [
|
|
{
|
|
"name": "appId",
|
|
"in": "query",
|
|
"description": "Application ID",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"name": "appCode",
|
|
"in": "query",
|
|
"description": "Application code",
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/webapp/permission": {
|
|
"get": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"description": "Check if user has permission to access a web application.",
|
|
"operationId": "Check App Permission",
|
|
"parameters": [
|
|
{
|
|
"name": "appId",
|
|
"in": "query",
|
|
"description": "Application ID",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/workflows/run": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Run workflow",
|
|
"description": "Execute a workflow with provided inputs and files.",
|
|
"operationId": "Run Workflow",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowRunPayload"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "App Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
},
|
|
"x-codegen-request-body-name": "payload"
|
|
}
|
|
},
|
|
"/workflows/tasks/{task_id}/stop": {
|
|
"post": {
|
|
"tags": [
|
|
"web"
|
|
],
|
|
"summary": "Stop workflow task",
|
|
"description": "Stop a running workflow task.",
|
|
"operationId": "Stop Workflow Task",
|
|
"parameters": [
|
|
{
|
|
"name": "task_id",
|
|
"in": "path",
|
|
"description": "Task ID to stop",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Success",
|
|
"content": {}
|
|
},
|
|
"400": {
|
|
"description": "Bad Request",
|
|
"content": {}
|
|
},
|
|
"401": {
|
|
"description": "Unauthorized",
|
|
"content": {}
|
|
},
|
|
"403": {
|
|
"description": "Forbidden",
|
|
"content": {}
|
|
},
|
|
"404": {
|
|
"description": "Task Not Found",
|
|
"content": {}
|
|
},
|
|
"500": {
|
|
"description": "Internal Server Error",
|
|
"content": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"TextToAudioPayload": {
|
|
"title": "TextToAudioPayload",
|
|
"type": "object",
|
|
"properties": {
|
|
"message_id": {
|
|
"title": "Message Id",
|
|
"type": "object"
|
|
},
|
|
"voice": {
|
|
"title": "Voice",
|
|
"type": "object"
|
|
},
|
|
"text": {
|
|
"title": "Text",
|
|
"type": "object"
|
|
},
|
|
"streaming": {
|
|
"title": "Streaming",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"CompletionMessagePayload": {
|
|
"title": "CompletionMessagePayload",
|
|
"required": [
|
|
"inputs"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"inputs": {
|
|
"title": "Inputs",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"description": "Input variables for the completion"
|
|
},
|
|
"query": {
|
|
"title": "Query",
|
|
"type": "string",
|
|
"description": "Query text for completion",
|
|
"default": ""
|
|
},
|
|
"files": {
|
|
"title": "Files",
|
|
"type": "object",
|
|
"description": "Files to be processed"
|
|
},
|
|
"response_mode": {
|
|
"title": "Response Mode",
|
|
"type": "object",
|
|
"description": "Response mode: blocking or streaming"
|
|
},
|
|
"retriever_from": {
|
|
"title": "Retriever From",
|
|
"type": "string",
|
|
"description": "Source of retriever",
|
|
"default": "web_app"
|
|
}
|
|
}
|
|
},
|
|
"ChatMessagePayload": {
|
|
"title": "ChatMessagePayload",
|
|
"required": [
|
|
"inputs",
|
|
"query"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"inputs": {
|
|
"title": "Inputs",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"description": "Input variables for the chat"
|
|
},
|
|
"query": {
|
|
"title": "Query",
|
|
"type": "string",
|
|
"description": "User query/message"
|
|
},
|
|
"files": {
|
|
"title": "Files",
|
|
"type": "object",
|
|
"description": "Files to be processed"
|
|
},
|
|
"response_mode": {
|
|
"title": "Response Mode",
|
|
"type": "object",
|
|
"description": "Response mode: blocking or streaming"
|
|
},
|
|
"conversation_id": {
|
|
"title": "Conversation Id",
|
|
"type": "object",
|
|
"description": "Conversation ID"
|
|
},
|
|
"parent_message_id": {
|
|
"title": "Parent Message Id",
|
|
"type": "object",
|
|
"description": "Parent message ID"
|
|
},
|
|
"retriever_from": {
|
|
"title": "Retriever From",
|
|
"type": "string",
|
|
"description": "Source of retriever",
|
|
"default": "web_app"
|
|
}
|
|
}
|
|
},
|
|
"FileResponse": {
|
|
"title": "FileResponse",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"size"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"title": "Size",
|
|
"type": "integer"
|
|
},
|
|
"extension": {
|
|
"title": "Extension",
|
|
"type": "object"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "object"
|
|
},
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "object"
|
|
},
|
|
"created_at": {
|
|
"title": "Created At",
|
|
"type": "object"
|
|
},
|
|
"preview_url": {
|
|
"title": "Preview Url",
|
|
"type": "object"
|
|
},
|
|
"source_url": {
|
|
"title": "Source Url",
|
|
"type": "object"
|
|
},
|
|
"original_url": {
|
|
"title": "Original Url",
|
|
"type": "object"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "object"
|
|
},
|
|
"tenant_id": {
|
|
"title": "Tenant Id",
|
|
"type": "object"
|
|
},
|
|
"conversation_id": {
|
|
"title": "Conversation Id",
|
|
"type": "object"
|
|
},
|
|
"file_key": {
|
|
"title": "File Key",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"ForgotPasswordSendPayload": {
|
|
"title": "ForgotPasswordSendPayload",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"title": "Email",
|
|
"type": "string"
|
|
},
|
|
"language": {
|
|
"title": "Language",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"ForgotPasswordCheckPayload": {
|
|
"title": "ForgotPasswordCheckPayload",
|
|
"required": [
|
|
"code",
|
|
"email",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"title": "Email",
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"title": "Code",
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"title": "Token",
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ForgotPasswordResetPayload": {
|
|
"title": "ForgotPasswordResetPayload",
|
|
"required": [
|
|
"new_password",
|
|
"password_confirm",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"token": {
|
|
"title": "Token",
|
|
"minLength": 1,
|
|
"type": "string"
|
|
},
|
|
"new_password": {
|
|
"title": "New Password",
|
|
"type": "string"
|
|
},
|
|
"password_confirm": {
|
|
"title": "Password Confirm",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"LoginPayload": {
|
|
"title": "LoginPayload",
|
|
"required": [
|
|
"email",
|
|
"password"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"title": "Email",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"title": "Password",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"EmailCodeLoginSendPayload": {
|
|
"title": "EmailCodeLoginSendPayload",
|
|
"required": [
|
|
"email"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"title": "Email",
|
|
"type": "string"
|
|
},
|
|
"language": {
|
|
"title": "Language",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"EmailCodeLoginVerifyPayload": {
|
|
"title": "EmailCodeLoginVerifyPayload",
|
|
"required": [
|
|
"code",
|
|
"email",
|
|
"token"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"email": {
|
|
"title": "Email",
|
|
"type": "string"
|
|
},
|
|
"code": {
|
|
"title": "Code",
|
|
"type": "string"
|
|
},
|
|
"token": {
|
|
"title": "Token",
|
|
"minLength": 1,
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MessageMoreLikeThisQuery": {
|
|
"title": "MessageMoreLikeThisQuery",
|
|
"required": [
|
|
"response_mode"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"response_mode": {
|
|
"title": "Response Mode",
|
|
"type": "string",
|
|
"description": "Response mode",
|
|
"enum": [
|
|
"blocking",
|
|
"streaming"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"RemoteFileInfo": {
|
|
"title": "RemoteFileInfo",
|
|
"required": [
|
|
"file_length",
|
|
"file_type"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"file_type": {
|
|
"title": "File Type",
|
|
"type": "string"
|
|
},
|
|
"file_length": {
|
|
"title": "File Length",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"FileWithSignedUrl": {
|
|
"title": "FileWithSignedUrl",
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"size"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"size": {
|
|
"title": "Size",
|
|
"type": "integer"
|
|
},
|
|
"extension": {
|
|
"title": "Extension",
|
|
"type": "object"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "object"
|
|
},
|
|
"mime_type": {
|
|
"title": "Mime Type",
|
|
"type": "object"
|
|
},
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "object"
|
|
},
|
|
"created_at": {
|
|
"title": "Created At",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"WorkflowRunPayload": {
|
|
"title": "WorkflowRunPayload",
|
|
"required": [
|
|
"inputs"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"inputs": {
|
|
"title": "Inputs",
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"description": "Input variables for the workflow"
|
|
},
|
|
"files": {
|
|
"title": "Files",
|
|
"type": "object",
|
|
"description": "Files to be processed by the workflow"
|
|
}
|
|
}
|
|
},
|
|
"AppAccessModeQuery": {
|
|
"title": "AppAccessModeQuery",
|
|
"type": "object",
|
|
"properties": {
|
|
"appId": {
|
|
"title": "Appid",
|
|
"type": "object",
|
|
"description": "Application ID"
|
|
},
|
|
"appCode": {
|
|
"title": "Appcode",
|
|
"type": "object",
|
|
"description": "Application code"
|
|
}
|
|
}
|
|
},
|
|
"ConversationListQuery": {
|
|
"title": "ConversationListQuery",
|
|
"type": "object",
|
|
"properties": {
|
|
"last_id": {
|
|
"title": "Last Id",
|
|
"type": "object"
|
|
},
|
|
"limit": {
|
|
"title": "Limit",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"pinned": {
|
|
"title": "Pinned",
|
|
"type": "object"
|
|
},
|
|
"sort_by": {
|
|
"title": "Sort By",
|
|
"type": "string",
|
|
"default": "-updated_at",
|
|
"enum": [
|
|
"created_at",
|
|
"-created_at",
|
|
"updated_at",
|
|
"-updated_at"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"ConversationRenamePayload": {
|
|
"title": "ConversationRenamePayload",
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "object"
|
|
},
|
|
"auto_generate": {
|
|
"title": "Auto Generate",
|
|
"type": "boolean",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"MessageListQuery": {
|
|
"title": "MessageListQuery",
|
|
"required": [
|
|
"conversation_id"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"conversation_id": {
|
|
"title": "Conversation Id",
|
|
"type": "string",
|
|
"description": "Conversation UUID"
|
|
},
|
|
"first_id": {
|
|
"title": "First Id",
|
|
"type": "object",
|
|
"description": "First message ID for pagination"
|
|
},
|
|
"limit": {
|
|
"title": "Limit",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"type": "integer",
|
|
"description": "Number of messages to return (1-100)"
|
|
}
|
|
}
|
|
},
|
|
"MessageFeedbackPayload": {
|
|
"title": "MessageFeedbackPayload",
|
|
"type": "object",
|
|
"properties": {
|
|
"rating": {
|
|
"title": "Rating",
|
|
"type": "object",
|
|
"description": "Feedback rating"
|
|
},
|
|
"content": {
|
|
"title": "Content",
|
|
"type": "object",
|
|
"description": "Feedback content"
|
|
}
|
|
}
|
|
},
|
|
"RemoteFileUploadPayload": {
|
|
"title": "RemoteFileUploadPayload",
|
|
"required": [
|
|
"url"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"url": {
|
|
"title": "Url",
|
|
"maxLength": 2083,
|
|
"minLength": 1,
|
|
"type": "string",
|
|
"description": "Remote file URL",
|
|
"format": "uri"
|
|
}
|
|
}
|
|
},
|
|
"SavedMessageListQuery": {
|
|
"title": "SavedMessageListQuery",
|
|
"type": "object",
|
|
"properties": {
|
|
"last_id": {
|
|
"title": "Last Id",
|
|
"type": "object"
|
|
},
|
|
"limit": {
|
|
"title": "Limit",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
}
|
|
}
|
|
},
|
|
"SavedMessageCreatePayload": {
|
|
"title": "SavedMessageCreatePayload",
|
|
"required": [
|
|
"message_id"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"message_id": {
|
|
"title": "Message Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"ParseError": {
|
|
"description": "When a mask can't be parsed",
|
|
"content": {}
|
|
},
|
|
"MaskError": {
|
|
"description": "When any error occurs on mask",
|
|
"content": {}
|
|
},
|
|
"HTTPException": {
|
|
"content": {}
|
|
},
|
|
"ValueError": {
|
|
"content": {}
|
|
},
|
|
"AppInvokeQuotaExceededError": {
|
|
"content": {}
|
|
},
|
|
"Exception": {
|
|
"content": {}
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"Bearer": {
|
|
"type": "apiKey",
|
|
"description": "Type: Bearer {your-api-key}",
|
|
"name": "Authorization",
|
|
"in": "header"
|
|
}
|
|
}
|
|
},
|
|
"x-original-swagger-version": "2.0"
|
|
}
|