Files
gooseek/api-1.json
home 06fe57c765 feat: Go backend, enhanced search, new widgets, Docker deploy
Major changes:
- Add Go backend (backend/) with microservices architecture
- Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler,
  proxy-manager, media-search, fastClassifier, language detection
- New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard,
  UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions
- Improved discover-svc with discover-db integration
- Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md)
- Library-svc: project_id schema migration
- Remove deprecated finance-svc and travel-svc
- Localization improvements across services

Made-with: Cursor
2026-02-27 04:15:32 +03:00

2896 lines
83 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"openapi": "3.0.0",
"paths": {
"/api/v1/cloud-ai/agents/{agent_access_id}/call": {
"post": {
"operationId": "CloudAiAgentsClientController_callAgent",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent access ID",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"required": true,
"in": "header",
"description": "Bearer token",
"schema": {
"type": "string",
"example": "Bearer <token>"
}
},
{
"name": "x-proxy-source",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentCallDto"
}
}
}
},
"responses": {
"200": {
"description": "Agent response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AgentCallResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"summary": "Call AI agent",
"tags": [
"ai-agents-client"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/chat/completions": {
"post": {
"description": "\nThis endpoint supports both simple text messages and multimodal content:\n\n**Simple text message:**\n```json\n{\n \"model\": \"gpt-4\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, how are you?\"\n }\n ]\n}\n```\n\n**Multimodal message with text and image:**\n```json\n{\n \"model\": \"gpt-4\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n { \"type\": \"text\", \"text\": \"What is in this image?\" },\n { \"type\": \"image_url\", \"image_url\": { \"url\": \"https://example.com/image.jpg\" } }\n ]\n }\n ]\n}\n```\n\n**Message with audio input:**\n```json\n{\n \"model\": \"gpt-4\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": [\n { \"type\": \"text\", \"text\": \"Please transcribe this audio:\" },\n { \"type\": \"input_audio\", \"input_audio\": { \"data\": \"base64_encoded_audio_data\", \"format\": \"wav\" } }\n ]\n }\n ]\n}\n```\n ",
"operationId": "CloudAiAgentsClientController_chatCompletions",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent access ID",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"required": true,
"in": "header",
"description": "Bearer token",
"schema": {
"type": "string",
"example": "Bearer <token>"
}
},
{
"name": "x-proxy-source",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChatCompletionCreateParamsDto"
}
}
}
},
"responses": {
"200": {
"description": "Chat completion response (non-streaming)",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiChatCompletionResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"security": [
{
"bearer": []
}
],
"summary": "OpenAI-compatible chat completions endpoint for AI agent",
"tags": [
"ai-agents-client"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/completions": {
"post": {
"deprecated": true,
"operationId": "CloudAiAgentsClientController_textCompletions",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent access ID",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"required": true,
"in": "header",
"description": "Bearer token",
"schema": {
"type": "string",
"example": "Bearer <token>"
}
},
{
"name": "x-proxy-source",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiTextCompletionRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "Text completion response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiTextCompletionResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"summary": "OpenAI-compatible text completions endpoint for AI agent (legacy)",
"tags": [
"ai-agents-client"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/models": {
"get": {
"operationId": "CloudAiAgentsClientController_getModels",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent access ID",
"schema": {
"type": "string"
}
},
{
"name": "Authorization",
"required": true,
"in": "header",
"description": "Bearer token",
"schema": {
"type": "string",
"example": "Bearer <token>"
}
}
],
"responses": {
"200": {
"description": "List of available models",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiModelsResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"summary": "OpenAI-compatible models endpoint for AI agent",
"tags": [
"ai-agents-client"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/embed.js": {
"get": {
"operationId": "CloudAiAgentsClientController_getAgentEmbedCode",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "collapsed",
"required": false,
"in": "query",
"description": "Start widget in collapsed mode (default: true)",
"schema": {
"default": true,
"type": "boolean"
}
},
{
"name": "referer",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
},
{
"name": "origin",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "JavaScript code for embedding the chat widget",
"content": {
"application/javascript": {
"schema": {
"type": "string"
}
}
}
},
"403": {
"description": "Domain not whitelisted or agent suspended"
},
"404": {
"description": "Agent not found"
}
},
"summary": "Get widget embed JavaScript code",
"tags": [
"ai-agents-client"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/responses": {
"post": {
"operationId": "CloudAiAgentsResponsesController_createResponse",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "ID доступа агента",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"in": "header",
"description": "Токен для приватных агентов",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateResponseDto"
}
}
}
},
"responses": {
"200": {
"description": "Ответ создан успешно",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiResponseDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"summary": "OpenAI-compatible create a response",
"tags": [
"ai-agents-responses"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/responses/{response_id}": {
"get": {
"operationId": "CloudAiAgentsResponsesController_getResponse",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "response_id",
"required": true,
"in": "path",
"description": "Response ID",
"schema": {
"type": "string"
}
},
{
"name": "include",
"required": false,
"in": "query",
"description": "Дополнительные поля для включения в ответ",
"schema": {
"example": [
"web_search_call.action.sources",
"code_interpreter_call.outputs"
],
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "include_obfuscation",
"required": false,
"in": "query",
"description": "Включить обфускацию потока для защиты от атак по побочным каналам",
"schema": {
"example": true,
"type": "boolean"
}
},
{
"name": "starting_after",
"required": false,
"in": "query",
"description": "Номер последовательности события, после которого начать потоковую передачу",
"schema": {
"minimum": 0,
"example": 0,
"type": "number"
}
},
{
"name": "stream",
"required": false,
"in": "query",
"description": "Потоковая передача данных ответа модели",
"schema": {
"example": false,
"type": "boolean"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Response retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiResponseDto"
}
}
}
},
"404": {
"description": "Response not found"
}
},
"summary": "OpenAI-compatible get a response",
"tags": [
"ai-agents-responses"
]
},
"delete": {
"operationId": "CloudAiAgentsResponsesController_deleteResponse",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "response_id",
"required": true,
"in": "path",
"description": "Response ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "Ответ удален успешно"
},
"404": {
"description": "Response not found"
}
},
"summary": "OpenAI-compatible delete a response",
"tags": [
"ai-agents-responses"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/responses/{response_id}/cancel": {
"post": {
"operationId": "CloudAiAgentsResponsesController_cancelResponse",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "response_id",
"required": true,
"in": "path",
"description": "Response ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Отмена ответа выполнена успешно",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OpenAiResponseDto"
}
}
}
},
"404": {
"description": "Response not found"
}
},
"summary": "OpenAI-compatible cancel a response",
"tags": [
"ai-agents-responses"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/conversations": {
"post": {
"operationId": "CloudAiAgentsConversationsController_createConversation",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateConversationDto"
}
}
}
},
"responses": {
"200": {
"description": "Conversation created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationDto"
}
}
}
},
"401": {
"description": "Unauthorized"
},
"404": {
"description": "Agent not found"
}
},
"summary": "OpenAI-compatible create a conversation",
"tags": [
"ai-agents-conversations"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/conversations/{conversation_id}": {
"get": {
"operationId": "CloudAiAgentsConversationsController_getConversation",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Conversation retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationDto"
}
}
}
},
"404": {
"description": "Conversation not found"
}
},
"summary": "OpenAI-compatible get a conversation",
"tags": [
"ai-agents-conversations"
]
},
"post": {
"operationId": "CloudAiAgentsConversationsController_updateConversation",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateConversationDto"
}
}
}
},
"responses": {
"200": {
"description": "Conversation updated successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationDto"
}
}
}
},
"404": {
"description": "Conversation not found"
}
},
"summary": "OpenAI-compatible update a conversation",
"tags": [
"ai-agents-conversations"
]
},
"delete": {
"operationId": "CloudAiAgentsConversationsController_deleteConversation",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Conversation deleted successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationDeletedDto"
}
}
}
},
"404": {
"description": "Conversation not found"
}
},
"summary": "OpenAI-compatible delete a conversation",
"tags": [
"ai-agents-conversations"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/conversations/{conversation_id}/items": {
"get": {
"operationId": "CloudAiAgentsConversationsController_listItems",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "after",
"required": false,
"in": "query",
"description": "An item ID to list items after, used in pagination",
"schema": {
"type": "string"
}
},
{
"name": "include",
"required": false,
"in": "query",
"description": "Specify additional output data to include in the model response",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "limit",
"required": false,
"in": "query",
"description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20",
"schema": {
"minimum": 1,
"maximum": 100,
"default": 20,
"type": "number"
}
},
{
"name": "order",
"required": false,
"in": "query",
"description": "The order to return the input items in",
"schema": {
"default": "desc",
"enum": [
"asc",
"desc"
],
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Items retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationItemListDto"
}
}
}
},
"404": {
"description": "Conversation not found"
}
},
"summary": "OpenAI-compatible list items in a conversation",
"tags": [
"ai-agents-conversations"
]
},
"post": {
"operationId": "CloudAiAgentsConversationsController_createItems",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "include",
"required": false,
"in": "query",
"description": "Additional fields to include in the response",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateItemsDto"
}
}
}
},
"responses": {
"200": {
"description": "Items created successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationItemListDto"
}
}
}
},
"404": {
"description": "Conversation not found"
}
},
"summary": "OpenAI-compatible create items in a conversation",
"tags": [
"ai-agents-conversations"
]
}
},
"/api/v1/cloud-ai/agents/{agent_access_id}/v1/conversations/{conversation_id}/items/{item_id}": {
"get": {
"operationId": "CloudAiAgentsConversationsController_getItem",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "item_id",
"required": true,
"in": "path",
"description": "Item ID",
"schema": {
"type": "string"
}
},
{
"name": "include",
"required": false,
"in": "query",
"description": "Specify additional output data to include in the model response",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Item retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationItemDto"
}
}
}
},
"404": {
"description": "Item not found"
}
},
"summary": "OpenAI-compatible get a conversation item",
"tags": [
"ai-agents-conversations"
]
},
"delete": {
"operationId": "CloudAiAgentsConversationsController_deleteItem",
"parameters": [
{
"name": "agent_access_id",
"required": true,
"in": "path",
"description": "Agent Access ID",
"schema": {
"type": "string"
}
},
{
"name": "conversation_id",
"required": true,
"in": "path",
"description": "Conversation ID",
"schema": {
"type": "string"
}
},
{
"name": "item_id",
"required": true,
"in": "path",
"description": "Item ID",
"schema": {
"type": "string"
}
},
{
"name": "authorization",
"required": true,
"in": "header",
"description": "Bearer token for private agents",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Item deleted successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConversationDto"
}
}
}
},
"404": {
"description": "Item not found"
}
},
"summary": "OpenAI-compatible delete a conversation item",
"tags": [
"ai-agents-conversations"
]
}
}
},
"info": {
"title": "Cloud AI API",
"description": "API docs for Cloud AI",
"version": "1.0",
"contact": {}
},
"tags": [
{
"name": "ai-agents-client",
"description": "API for working with AI agents"
},
{
"name": "ai-agents-responses",
"description": "API for managing AI agents responses"
},
{
"name": "ai-agents-conversations",
"description": "API for managing AI agents conversations"
}
],
"servers": [
{
"url": "https://agent.timeweb.cloud",
"description": "Timeweb Cloud AI API"
}
],
"components": {
"securitySchemes": {
"JWT-auth": {
"scheme": "bearer",
"bearerFormat": "JWT",
"type": "http",
"name": "JWT",
"description": "Enter JWT token",
"in": "header"
}
},
"schemas": {
"AgentCallDto": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The message to send to the agent (can be empty if files are provided)",
"default": ""
},
"parent_message_id": {
"type": "string",
"description": "Optional parent message ID for conversation context"
},
"file_ids": {
"description": "Optional array of file IDs to attach to the message",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"AgentCallResponseDto": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The response message from the agent"
},
"id": {
"type": "string",
"description": "Unique ID of the message"
},
"finish_reason": {
"type": "object",
"description": "The reason why the response was finished"
}
},
"required": [
"message",
"id",
"finish_reason"
]
},
"OpenAiChatCompletionMessageDto": {
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "The role of the author of this message"
},
"content": {
"type": "string",
"description": "The contents of the message"
}
},
"required": [
"role",
"content"
]
},
"OpenAiChatCompletionChoiceDto": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "The index of the choice in the list of choices"
},
"message": {
"description": "A chat completion message generated by the model",
"allOf": [
{
"$ref": "#/components/schemas/OpenAiChatCompletionMessageDto"
}
]
},
"finish_reason": {
"type": "string",
"description": "The reason the model stopped generating tokens",
"enum": [
"stop",
"length",
"content_filter",
"tool_calls"
]
}
},
"required": [
"index",
"message",
"finish_reason"
]
},
"OpenAiUsageDto": {
"type": "object",
"properties": {
"prompt_tokens": {
"type": "number",
"description": "Number of tokens in the prompt"
},
"completion_tokens": {
"type": "number",
"description": "Number of tokens in the generated completion"
},
"total_tokens": {
"type": "number",
"description": "Total number of tokens used in the request (prompt + completion)"
}
},
"required": [
"prompt_tokens",
"completion_tokens",
"total_tokens"
]
},
"OpenAiChatCompletionResponseDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A unique identifier for the chat completion"
},
"object": {
"type": "string",
"description": "The object type, which is always \"chat.completion\"",
"example": "chat.completion"
},
"created": {
"type": "number",
"description": "The Unix timestamp (in seconds) of when the chat completion was created"
},
"model": {
"type": "string",
"description": "The model used for the chat completion"
},
"choices": {
"description": "A list of chat completion choices",
"type": "array",
"items": {
"$ref": "#/components/schemas/OpenAiChatCompletionChoiceDto"
}
},
"usage": {
"description": "Usage statistics for the completion request",
"allOf": [
{
"$ref": "#/components/schemas/OpenAiUsageDto"
}
]
},
"system_fingerprint": {
"type": "string",
"description": "System fingerprint"
}
},
"required": [
"id",
"object",
"created",
"model",
"choices",
"usage"
]
},
"OpenAiStreamDeltaDto": {
"type": "object",
"properties": {
"content": {
"type": "string",
"description": "The content delta for the message"
},
"role": {
"type": "string",
"description": "The role of the message author (only in first chunk)"
}
}
},
"OpenAiStreamChoiceDto": {
"type": "object",
"properties": {
"index": {
"type": "number",
"description": "The index of the choice in the list of choices"
},
"delta": {
"description": "A chat completion delta generated by the model",
"allOf": [
{
"$ref": "#/components/schemas/OpenAiStreamDeltaDto"
}
]
},
"finish_reason": {
"type": "string",
"description": "The reason the model stopped generating tokens",
"enum": [
"stop",
"length",
"content_filter",
"tool_calls",
null
]
}
},
"required": [
"index",
"delta"
]
},
"OpenAiChatCompletionStreamResponseDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "A unique identifier for the chat completion"
},
"object": {
"type": "string",
"description": "The object type, which is always \"chat.completion.chunk\"",
"example": "chat.completion.chunk"
},
"created": {
"type": "number",
"description": "The Unix timestamp (in seconds) of when the chat completion was created"
},
"model": {
"type": "string",
"description": "The model used for the chat completion"
},
"choices": {
"description": "A list of chat completion choices",
"type": "array",
"items": {
"$ref": "#/components/schemas/OpenAiStreamChoiceDto"
}
},
"system_fingerprint": {
"type": "string",
"description": "System fingerprint"
}
},
"required": [
"id",
"object",
"created",
"model",
"choices"
]
},
"OpenAiModelDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Model identifier",
"example": "gpt-4o-2024-08-06"
},
"object": {
"type": "string",
"description": "Object type, always \"model\"",
"example": "model"
},
"created": {
"type": "number",
"description": "Unix timestamp when the model was created",
"example": 1692901427
},
"owned_by": {
"type": "string",
"description": "Organization that owns the model",
"example": "openai"
}
},
"required": [
"id",
"object",
"created",
"owned_by"
]
},
"OpenAiModelsResponseDto": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "Object type, always \"list\"",
"example": "list"
},
"data": {
"description": "Array of available models",
"type": "array",
"items": {
"$ref": "#/components/schemas/OpenAiModelDto"
}
}
},
"required": [
"object",
"data"
]
},
"OpenAiTextCompletionRequestDto": {
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "The prompt to generate completions for",
"example": "Write a short story about a robot"
},
"model": {
"type": "string",
"description": "The model to use for completion",
"example": "gpt-3.5-turbo-instruct",
"default": "gpt-3.5-turbo-instruct"
},
"max_tokens": {
"type": "number",
"description": "The maximum number of tokens to generate",
"example": 100,
"minimum": 1,
"maximum": 4096,
"default": 16
},
"temperature": {
"type": "number",
"description": "Controls randomness in the output",
"example": 0.7,
"minimum": 0,
"maximum": 2,
"default": 1
},
"top_p": {
"type": "number",
"description": "Controls diversity via nucleus sampling",
"example": 0.9,
"minimum": 0,
"maximum": 1,
"default": 1
},
"n": {
"type": "number",
"description": "How many completions to generate",
"example": 1,
"minimum": 1,
"maximum": 128,
"default": 1
},
"stream": {
"type": "boolean",
"description": "Whether to stream back partial progress",
"example": false,
"default": false
},
"logprobs": {
"type": "number",
"description": "Include the log probabilities on the logprobs most likely tokens",
"example": null,
"minimum": 0,
"maximum": 5
},
"echo": {
"type": "boolean",
"description": "Echo back the prompt in addition to the completion",
"example": false,
"default": false
},
"stop": {
"description": "Up to 4 sequences where the API will stop generating further tokens",
"example": [
"\n"
],
"type": "array",
"items": {
"type": "string"
}
},
"presence_penalty": {
"type": "number",
"description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far",
"example": 0,
"minimum": -2,
"maximum": 2,
"default": 0
},
"frequency_penalty": {
"type": "number",
"description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far",
"example": 0,
"minimum": -2,
"maximum": 2,
"default": 0
},
"best_of": {
"type": "number",
"description": "Generates best_of completions server-side and returns the \"best\"",
"example": 1,
"minimum": 1,
"maximum": 20,
"default": 1
},
"user": {
"type": "string",
"description": "A unique identifier representing your end-user",
"example": "user-123"
}
},
"required": [
"prompt"
]
},
"TextCompletionLogprobs": {
"type": "object",
"properties": {
"tokens": {
"description": "The tokens chosen by the model",
"type": "array",
"items": {
"type": "string"
}
},
"token_logprobs": {
"description": "The log probability of each token",
"type": "array",
"items": {
"type": "number"
}
},
"top_logprobs": {
"type": "object",
"description": "The top logprobs for each token",
"additionalProperties": true
},
"text_offset": {
"description": "The character offsets for each token",
"type": "array",
"items": {
"type": "number"
}
}
}
},
"TextCompletionChoice": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The generated text",
"example": "Once upon a time, there was a robot named R2D2..."
},
"index": {
"type": "number",
"description": "The index of this choice",
"example": 0
},
"logprobs": {
"description": "Log probability information for the choice",
"allOf": [
{
"$ref": "#/components/schemas/TextCompletionLogprobs"
}
]
},
"finish_reason": {
"type": "string",
"description": "The reason the model stopped generating tokens",
"example": "stop",
"enum": [
"stop",
"length",
"content_filter"
]
}
},
"required": [
"text",
"index",
"finish_reason"
]
},
"TextCompletionUsage": {
"type": "object",
"properties": {
"prompt_tokens": {
"type": "number",
"description": "Number of tokens in the prompt",
"example": 10
},
"completion_tokens": {
"type": "number",
"description": "Number of tokens in the generated completion",
"example": 50
},
"total_tokens": {
"type": "number",
"description": "Total number of tokens used",
"example": 60
}
},
"required": [
"prompt_tokens",
"completion_tokens",
"total_tokens"
]
},
"OpenAiTextCompletionResponseDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the completion",
"example": "cmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW"
},
"object": {
"type": "string",
"description": "The object type, always \"text_completion\"",
"example": "text_completion"
},
"created": {
"type": "number",
"description": "Unix timestamp when the completion was created",
"example": 1692901427
},
"model": {
"type": "string",
"description": "The model used for completion",
"example": "gpt-3.5-turbo-instruct"
},
"choices": {
"description": "Array of completion choices",
"type": "array",
"items": {
"$ref": "#/components/schemas/TextCompletionChoice"
}
},
"usage": {
"description": "Usage statistics for the completion",
"allOf": [
{
"$ref": "#/components/schemas/TextCompletionUsage"
}
]
}
},
"required": [
"id",
"object",
"created",
"model",
"choices",
"usage"
]
},
"FunctionCallDto": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the function to call",
"example": "get_weather"
}
},
"required": [
"name"
]
},
"ChatMessageDto": {
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"system",
"user",
"assistant",
"tool",
"function",
"developer"
],
"description": "The role of the message author"
},
"content": {
"description": "The contents of the message - can be a string or array of content items",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/TextContentDto"
},
{
"$ref": "#/components/schemas/ImageUrlContentDto"
},
{
"$ref": "#/components/schemas/InputAudioContentDto"
},
{
"$ref": "#/components/schemas/FileContentDto"
},
{
"$ref": "#/components/schemas/RefusalContentDto"
}
]
}
}
],
"examples": [
"Simple text message",
[
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg"
}
}
]
]
},
"name": {
"type": "object",
"description": "The name of the author of this message (required for function role)",
"example": "user123"
},
"function_call": {
"description": "The name and arguments of a function that should be called",
"allOf": [
{
"$ref": "#/components/schemas/FunctionCallDto"
}
]
},
"tool_calls": {
"type": "object",
"description": "Tool call information"
},
"tool_call_id": {
"type": "object",
"description": "Tool call ID (required for tool role messages)",
"example": "call_abc123"
}
},
"required": [
"role",
"content"
]
},
"StreamOptionsDto": {
"type": "object",
"properties": {
"include_usage": {
"type": "boolean",
"description": "Whether to include usage information in streaming responses",
"example": true
}
}
},
"ChatCompletionCreateParamsDto": {
"type": "object",
"properties": {
"model": {
"type": "object",
"description": "ID of the model to use. This field is ignored as the agent has its own model configuration.",
"example": "gpt-4"
},
"messages": {
"description": "A list of messages comprising the conversation so far",
"type": "array",
"items": {
"$ref": "#/components/schemas/ChatMessageDto"
}
},
"temperature": {
"type": "object",
"description": "What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
"example": 0.7,
"minimum": 0,
"maximum": 2
},
"top_p": {
"type": "object",
"description": "An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.",
"example": 1,
"minimum": 0,
"maximum": 1
},
"n": {
"type": "object",
"description": "How many chat completion choices to generate for each input message",
"example": 1,
"minimum": 1,
"maximum": 128
},
"stream": {
"type": "object",
"description": "Whether to stream back partial responses",
"example": false,
"default": false
},
"stop": {
"description": "Up to 4 sequences where the API will stop generating further tokens",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
],
"example": [
"\n",
"Human:"
]
},
"max_tokens": {
"type": "object",
"deprecated": true,
"description": "The maximum number of tokens to generate in the chat completion",
"example": 100,
"minimum": 1
},
"max_completion_tokens": {
"type": "object",
"description": "The maximum number of tokens to generate in the chat completion (alternative to max_tokens)",
"example": 100,
"minimum": 1
},
"presence_penalty": {
"type": "object",
"description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
"example": 0,
"minimum": -2,
"maximum": 2
},
"frequency_penalty": {
"type": "object",
"description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
"example": 0,
"minimum": -2,
"maximum": 2
},
"logit_bias": {
"type": "object",
"description": "Modify the likelihood of specified tokens appearing in the completion",
"additionalProperties": {
"type": "number"
},
"example": {
"50256": -100
}
},
"user": {
"type": "string",
"description": "A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse",
"example": "user-1234"
},
"response_format": {
"oneOf": [
{
"$ref": "#/components/schemas/ResponseFormatTextDto"
},
{
"$ref": "#/components/schemas/ResponseFormatJsonObjectDto"
},
{
"$ref": "#/components/schemas/ResponseFormatJsonSchemaDto"
}
],
"description": "An object specifying the format that the model must output"
},
"tools": {
"oneOf": [
{
"$ref": "#/components/schemas/FunctionToolDto"
},
{
"$ref": "#/components/schemas/CustomToolDto"
}
],
"description": "A list of tools the model may call"
},
"tool_choice": {
"description": "Controls which (if any) tool is called by the model",
"oneOf": [
{
"type": "string",
"enum": [
"none",
"auto",
"required"
]
},
{
"type": "object"
}
],
"example": "auto"
},
"stream_options": {
"description": "Options for streaming response",
"allOf": [
{
"$ref": "#/components/schemas/StreamOptionsDto"
}
]
},
"logprobs": {
"type": "object",
"description": "Whether to return log probabilities of the output tokens",
"example": false
},
"top_logprobs": {
"type": "object",
"description": "An integer between 0 and 5 specifying the number of most likely tokens to return at each token position",
"example": 0,
"minimum": 0,
"maximum": 5
}
},
"required": [
"messages"
]
},
"ResponseFormatTextDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text"
],
"description": "The type of response format",
"example": "text"
}
},
"required": [
"type"
]
},
"ResponseFormatJsonObjectDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"json_object"
],
"description": "The type of response format",
"example": "json_object"
}
},
"required": [
"type"
]
},
"ResponseFormatJsonSchemaDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"json_schema"
],
"description": "The type of response format",
"example": "json_schema"
},
"json_schema": {
"type": "object",
"description": "JSON schema for json_schema type",
"additionalProperties": true
}
},
"required": [
"type",
"json_schema"
]
},
"FunctionToolDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"function"
],
"description": "The type of tool",
"example": "function"
},
"function": {
"type": "object",
"description": "The function definition",
"additionalProperties": true
}
},
"required": [
"type",
"function"
]
},
"CustomToolDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"custom"
],
"description": "The type of tool",
"example": "custom"
},
"custom": {
"type": "object",
"description": "Custom tool definition",
"additionalProperties": true
}
},
"required": [
"type",
"custom"
]
},
"TextContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"text"
],
"description": "Content type - always \"text\"",
"example": "text"
},
"text": {
"type": "string",
"description": "The text content",
"example": "What is in this image?"
}
},
"required": [
"type",
"text"
]
},
"ImageUrlDto": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The URL of the image",
"example": "https://example.com/image.jpg"
},
"detail": {
"type": "string",
"description": "The detail level of the image",
"enum": [
"low",
"high",
"auto"
],
"example": "auto"
}
},
"required": [
"url"
]
},
"ImageUrlContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"image_url"
],
"description": "Content type - always \"image_url\"",
"example": "image_url"
},
"image_url": {
"description": "Image URL object",
"example": {
"url": "https://example.com/image.jpg",
"detail": "auto"
},
"allOf": [
{
"$ref": "#/components/schemas/ImageUrlDto"
}
]
}
},
"required": [
"type",
"image_url"
]
},
"InputAudioDto": {
"type": "object",
"properties": {
"data": {
"type": "string",
"description": "Base64 encoded audio data",
"example": "UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhBSuBzvLZiTYIG2m98OScTgwOUarm7bllHgU7jdXzzn0uBSF+zO/eizEIHWq+8+OWT"
},
"format": {
"type": "string",
"description": "Audio format",
"enum": [
"wav",
"mp3",
"m4a",
"ogg",
"flac",
"webm"
],
"example": "wav"
}
},
"required": [
"data",
"format"
]
},
"InputAudioContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"input_audio"
],
"description": "Content type - always \"input_audio\"",
"example": "input_audio"
},
"input_audio": {
"description": "Input audio object",
"example": {
"data": "UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1fdJivrJBhNjVgodDbq2EcBj+a2/LDciUFLIHO8tiJNwgZaLvt559NEAxQp+PwtmMcBjiR1/LMeSwFJHfH8N2QQAoUXrTp66hVFApGn+DyvmwhBSuBzvLZiTYIG2m98OScTgwOUarm7bllHgU7jdXzzn0uBSF+zO/eizEIHWq+8+OWT",
"format": "wav"
},
"allOf": [
{
"$ref": "#/components/schemas/InputAudioDto"
}
]
}
},
"required": [
"type",
"input_audio"
]
},
"FileContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"file"
],
"description": "Content type - always \"file\"",
"example": "file"
},
"file": {
"type": "object",
"description": "File object (OpenAI File type)",
"additionalProperties": true
}
},
"required": [
"type",
"file"
]
},
"RefusalContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"refusal"
],
"description": "Content type - always \"refusal\"",
"example": "refusal"
},
"refusal": {
"type": "string",
"description": "Refusal message",
"example": "I cannot help with that request"
}
},
"required": [
"type",
"refusal"
]
},
"CreateResponseDto": {
"type": "object",
"properties": {
"model": {
"type": "string",
"description": "Модель для использования в ответе. Это поле игнорируется, так как агент имеет свою конфигурацию модели.",
"example": "gpt-4"
},
"instructions": {
"type": "string",
"description": "Инструкции для генерации ответа",
"example": "Ты - полезный помощник."
},
"input": {
"description": "Входной текст или сообщения для ответа",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "object"
}
}
]
},
"max_output_tokens": {
"type": "number",
"description": "Максимальное количество токенов для генерации в ответе",
"example": 1000,
"minimum": 1
},
"temperature": {
"type": "number",
"description": "Температура для генерации ответа",
"example": 0.7,
"minimum": 0,
"maximum": 2
},
"metadata": {
"type": "object",
"description": "Дополнительные метаданные для ответа",
"additionalProperties": true
},
"tools": {
"type": "array",
"description": "Инструменты, доступные для модели"
},
"stream": {
"type": "boolean",
"description": "Флаг, указывающий на то, что ответ нужно передавать по частям",
"example": false,
"default": false
},
"stream_options": {
"type": "object",
"description": "Опции для потоковой передачи. Устанавливается только при stream: true",
"additionalProperties": true
},
"background": {
"type": "boolean",
"description": "Запуск модели в фоновом режиме",
"example": false,
"default": false
},
"text": {
"type": "object",
"description": "Конфигурация для текстового ответа от модели",
"additionalProperties": true
},
"tool_choice": {
"description": "Как модель должна выбирать инструменты при генерации ответа",
"oneOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"parallel_tool_calls": {
"type": "boolean",
"description": "Разрешить модели выполнять вызовы инструментов параллельно",
"example": true,
"default": true
},
"max_tool_calls": {
"type": "number",
"description": "Максимальное количество вызовов встроенных инструментов",
"example": 10
},
"previous_response_id": {
"type": "string",
"description": "ID предыдущего ответа для создания многоходовых диалогов",
"example": "resp_abc123"
},
"conversation": {
"description": "Диалог, к которому принадлежит этот ответ",
"oneOf": [
{
"type": "string"
},
{
"type": "object"
}
]
},
"include": {
"type": "array",
"description": "Дополнительные выходные данные для включения в ответ модели",
"items": {
"type": "string"
},
"example": [
"web_search_call.action.sources",
"code_interpreter_call.outputs"
]
},
"store": {
"type": "boolean",
"description": "Хранить ли сгенерированный ответ модели для последующего получения через API",
"example": true,
"default": true
},
"top_p": {
"type": "number",
"description": "Альтернатива temperature. Модель рассматривает токены с top_p вероятностной массой",
"example": 1,
"minimum": 0,
"maximum": 1,
"default": 1
},
"top_logprobs": {
"type": "number",
"description": "Количество наиболее вероятных токенов для возврата на каждой позиции токена",
"example": 5,
"minimum": 0,
"maximum": 20
},
"truncation": {
"type": "string",
"description": "Стратегия усечения для ответа модели",
"enum": [
"auto",
"disabled"
],
"default": "disabled"
},
"service_tier": {
"type": "string",
"description": "Уровень обслуживания для обработки запроса",
"enum": [
"auto",
"default",
"flex",
"priority"
],
"default": "auto"
},
"safety_identifier": {
"type": "string",
"description": "Стабильный идентификатор для обнаружения пользователей, нарушающих политику использования",
"example": "user-hash-12345"
},
"prompt_cache_key": {
"type": "string",
"description": "Используется OpenAI для кэширования ответов на похожие запросы",
"example": "cache-key-12345"
},
"prompt": {
"type": "object",
"description": "Ссылка на шаблон промпта и его переменные",
"additionalProperties": true
},
"reasoning": {
"type": "object",
"description": "Конфигурация для reasoning моделей (gpt-5 и o-series)",
"additionalProperties": true
},
"user": {
"type": "string",
"description": "Устарело. Используйте safety_identifier или prompt_cache_key",
"example": "user-12345",
"deprecated": true
}
}
},
"GetResponseQueryDto": {
"type": "object",
"properties": {
"include": {
"description": "Дополнительные поля для включения в ответ",
"example": [
"web_search_call.action.sources",
"code_interpreter_call.outputs"
],
"type": "array",
"items": {
"type": "string"
}
},
"include_obfuscation": {
"type": "boolean",
"description": "Включить обфускацию потока для защиты от атак по побочным каналам",
"example": true
},
"starting_after": {
"type": "number",
"description": "Номер последовательности события, после которого начать потоковую передачу",
"example": 0,
"minimum": 0
},
"stream": {
"type": "boolean",
"description": "Потоковая передача данных ответа модели",
"example": false
}
}
},
"ResponseUsageDto": {
"type": "object",
"properties": {
"prompt_tokens": {
"type": "number",
"description": "Количество токенов в промпте",
"example": 150
},
"completion_tokens": {
"type": "number",
"description": "Количество токенов в ответе",
"example": 300
},
"total_tokens": {
"type": "number",
"description": "Общее количество токенов",
"example": 450
}
},
"required": [
"prompt_tokens",
"completion_tokens",
"total_tokens"
]
},
"OpenAiResponseDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Уникальный идентификатор ответа",
"example": "resp_abc123"
},
"object": {
"type": "string",
"description": "Тип объекта",
"example": "response"
},
"created_at": {
"type": "number",
"description": "Временная метка создания",
"example": 1234567890
},
"model": {
"type": "string",
"description": "Идентификатор модели",
"example": "gpt-4"
},
"status": {
"type": "string",
"description": "Статус ответа",
"example": "completed"
},
"usage": {
"description": "Информация об использовании токенов",
"allOf": [
{
"$ref": "#/components/schemas/ResponseUsageDto"
}
]
}
},
"required": [
"id",
"object",
"created_at",
"model",
"status"
]
},
"ConversationItemContentInputText": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Content type",
"example": "input_text"
},
"text": {
"type": "string",
"description": "Text content",
"example": "Hello!"
}
},
"required": [
"type",
"text"
]
},
"ConversationItemMessage": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Item type",
"example": "message"
},
"role": {
"type": "string",
"description": "Role of the message",
"example": "user",
"enum": [
"user",
"assistant"
]
},
"content": {
"description": "Content of the message",
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversationItemContentInputText"
}
}
},
"required": [
"type",
"role"
]
},
"CreateConversationDto": {
"type": "object",
"properties": {
"items": {
"description": "Initial items to include in the conversation context. You may add up to 20 items at a time.",
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversationItemMessage"
}
},
"metadata": {
"type": "object",
"description": "Set of 16 key-value pairs that can be attached to an object",
"example": {
"topic": "demo"
},
"nullable": true
}
}
},
"UpdateConversationDto": {
"type": "object",
"properties": {
"metadata": {
"type": "object",
"description": "Set of 16 key-value pairs that can be attached to an object",
"example": {
"topic": "project-x"
}
}
},
"required": [
"metadata"
]
},
"ConversationDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique ID of the conversation",
"example": "conv_123"
},
"object": {
"type": "string",
"description": "The object type, which is always conversation",
"example": "conversation"
},
"created_at": {
"type": "number",
"description": "The time at which the conversation was created, measured in seconds since the Unix epoch",
"example": 1741900000
},
"metadata": {
"type": "object",
"description": "Set of 16 key-value pairs that can be attached to an object",
"example": {
"topic": "demo"
},
"nullable": true
}
},
"required": [
"id",
"object",
"created_at"
]
},
"ConversationDeletedDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the deleted conversation",
"example": "conv_123"
},
"object": {
"type": "string",
"description": "The object type",
"example": "conversation.deleted"
},
"deleted": {
"type": "boolean",
"description": "Whether the conversation was deleted",
"example": true
}
},
"required": [
"id",
"object",
"deleted"
]
},
"ConversationItemContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Content type",
"example": "input_text"
},
"text": {
"type": "string",
"description": "Text content",
"example": "Hello!"
}
},
"required": [
"type"
]
},
"ConversationItemDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Item type",
"example": "message"
},
"id": {
"type": "string",
"description": "The unique ID of the item",
"example": "msg_abc"
},
"status": {
"type": "string",
"description": "Status of the item",
"example": "completed"
},
"role": {
"type": "string",
"description": "Role of the message",
"example": "user"
},
"content": {
"description": "Content of the item",
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversationItemContentDto"
}
}
},
"required": [
"type",
"id",
"status"
]
},
"ConversationItemListDto": {
"type": "object",
"properties": {
"object": {
"type": "string",
"description": "The type of object returned",
"example": "list"
},
"data": {
"description": "A list of conversation items",
"type": "array",
"items": {
"$ref": "#/components/schemas/ConversationItemDto"
}
},
"first_id": {
"type": "string",
"description": "The ID of the first item in the list",
"example": "msg_abc"
},
"last_id": {
"type": "string",
"description": "The ID of the last item in the list",
"example": "msg_abc"
},
"has_more": {
"type": "boolean",
"description": "Whether there are more items available",
"example": false
}
},
"required": [
"object",
"data",
"first_id",
"last_id",
"has_more"
]
},
"ListItemsQueryDto": {
"type": "object",
"properties": {
"after": {
"type": "string",
"description": "An item ID to list items after, used in pagination"
},
"include": {
"description": "Specify additional output data to include in the model response",
"type": "array",
"items": {
"type": "string"
}
},
"limit": {
"type": "number",
"description": "A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20",
"default": 20,
"minimum": 1,
"maximum": 100
},
"order": {
"type": "string",
"description": "The order to return the input items in",
"enum": [
"asc",
"desc"
],
"default": "desc"
}
}
},
"GetItemQueryDto": {
"type": "object",
"properties": {
"include": {
"description": "Specify additional output data to include in the model response",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"ItemContentDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Content type",
"example": "input_text"
},
"text": {
"type": "string",
"description": "Text content",
"example": "Hello!"
}
},
"required": [
"type",
"text"
]
},
"CreateItemDto": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Item type",
"example": "message"
},
"role": {
"type": "string",
"description": "Role of the message",
"example": "user",
"enum": [
"user",
"assistant"
]
},
"content": {
"description": "Content of the message",
"type": "array",
"items": {
"$ref": "#/components/schemas/ItemContentDto"
}
}
},
"required": [
"type",
"role",
"content"
]
},
"CreateItemsDto": {
"type": "object",
"properties": {
"items": {
"description": "The items to add to the conversation. You may add up to 20 items at a time",
"type": "array",
"items": {
"$ref": "#/components/schemas/CreateItemDto"
}
}
},
"required": [
"items"
]
},
"CreateItemsQueryDto": {
"type": "object",
"properties": {
"include": {
"description": "Additional fields to include in the response",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}