| --- |
| openapi: 3.0.0 |
| info: |
| title: API Reference |
| description: > |
| # Introduction |
| |
| Jan API is compatible with the [OpenAI API](https://platform.openai.com/docs/api-reference). |
| version: 0.1.8 |
| contact: |
| name: Jan Discord |
| url: https://discord.gg/7EcEz7MrvA |
| license: |
| name: AGPLv3 |
| url: https://github.com/janhq/nitro/blob/main/LICENSE |
| servers: |
| - url: /v1 |
| tags: |
| - name: Models |
| description: List and describe the various models available in the API. |
| - name: Chat |
| description: > |
| Given a list of messages comprising a conversation, the model will |
| return a response. |
| - name: Messages |
| description: > |
| Messages capture a conversation's content. This can include the |
| content from LLM responses and other metadata from [chat |
| completions](/specs/chats). |
| - name: Threads |
| - name: Assistants |
| description: Configures and utilizes different AI assistants for varied tasks |
| x-tagGroups: |
| - name: Endpoints |
| tags: |
| - Models |
| - Chat |
| - name: Chat |
| tags: |
| - Assistants |
| - Messages |
| - Threads |
| paths: |
| /chat/completions: |
| post: |
| operationId: createChatCompletion |
| tags: |
| - Chat |
| summary: | |
| Create chat completion |
| description: > |
| Creates a model response for the given chat conversation. <a href |
| = "https://platform.openai.com/docs/api-reference/chat/create"> |
| Equivalent to OpenAI's create chat completion. </a> |
| requestBody: |
| content: |
| application/json: |
| schema: |
| $ref: specs/chat.yaml#/components/schemas/ChatCompletionRequest |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/chat.yaml#/components/schemas/ChatCompletionResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl -X 'POST' \ |
| 'http://localhost:1337/v1/chat/completions' \ |
| -H 'accept: application/json' \ |
| -H 'Content-Type: application/json' \ |
| -d '{ |
| "messages": [ |
| { |
| "content": "You are a helpful assistant.", |
| "role": "system" |
| }, |
| { |
| "content": "Hello!", |
| "role": "user" |
| } |
| ], |
| "model": "tinyllama-1.1b", |
| "stream": true, |
| "max_tokens": 2048, |
| "stop": [ |
| "hello" |
| ], |
| "frequency_penalty": 0, |
| "presence_penalty": 0, |
| "temperature": 0.7, |
| "top_p": 0.95 |
| }' |
| - lang: JavaScript |
| source: |- |
| const data = { |
| messages: [ |
| { |
| content: 'You are a helpful assistant.', |
| role: 'system' |
| }, |
| { |
| content: 'Hello!', |
| role: 'user' |
| } |
| ], |
| model: 'tinyllama-1.1b', |
| stream: true, |
| max_tokens: 2048, |
| stop: ['hello'], |
| frequency_penalty: 0, |
| presence_penalty: 0, |
| temperature: 0.7, |
| top_p: 0.95 |
| }; |
| |
| fetch('http://localhost:1337/v1/chat/completions', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json', |
| 'Accept': 'application/json' |
| }, |
| body: JSON.stringify(data) |
| }) |
| .then(response => response.json()) |
| .then(data => console.log(data)); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const data = { |
| messages: [ |
| { |
| content: 'You are a helpful assistant.', |
| role: 'system' |
| }, |
| { |
| content: 'Hello!', |
| role: 'user' |
| } |
| ], |
| model: 'tinyllama-1.1b', |
| stream: true, |
| max_tokens: 2048, |
| stop: ['hello'], |
| frequency_penalty: 0, |
| presence_penalty: 0, |
| temperature: 0.7, |
| top_p: 0.95 |
| }; |
|
|
| fetch('http://localhost:1337/v1/chat/completions', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json', |
| 'Accept': 'application/json' |
| }, |
| body: JSON.stringify(data) |
| }) |
| .then(response => response.json()) |
| .then(data => console.log(data)); |
| - lang: Python |
| source: >- |
| import requests |
| |
| import json |
|
|
|
|
| data = { |
| "messages": [ |
| { |
| "content": "You are a helpful assistant.", |
| "role": "system" |
| }, |
| { |
| "content": "Hello!", |
| "role": "user" |
| } |
| ], |
| "model": "tinyllama-1.1b", |
| "stream": true, |
| "max_tokens": 2048, |
| "stop": [ |
| "hello" |
| ], |
| "frequency_penalty": 0, |
| "presence_penalty": 0, |
| "temperature": 0.7, |
| "top_p": 0.95 |
| } |
|
|
|
|
| response = requests.post('http://localhost:1337/v1/chat/completions', json=data) |
|
|
| print(response.json()) |
| /models: |
| get: |
| operationId: listModels |
| tags: |
| - Models |
| summary: List models |
| description: > |
| Lists the currently available models, and provides basic |
| information about each one such as the owner and availability. <a href |
| = "https://platform.openai.com/docs/api-reference/models/list"> |
| Equivalent to OpenAI's list model. </a> |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/models.yaml#/components/schemas/ListModelsResponse |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl -X 'GET' \ |
| 'http://localhost:1337/v1/models' \ |
| -H 'accept: application/json' |
| - lang: JavaScript |
| source: |- |
| const response = await fetch('http://localhost:1337/v1/models', { |
| method: 'GET', |
| headers: {Accept: 'application/json'} |
| }); |
| const data = await response.json(); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const url = 'http://localhost:1337/v1/models'; |
| const options = { |
| method: 'GET', |
| headers: { Accept: 'application/json' } |
| }; |
|
|
| fetch(url, options) |
| .then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Python |
| source: |- |
| import requests |
| |
| url = 'http://localhost:1337/v1/models' |
| headers = {'Accept': 'application/json'} |
| response = requests.get(url, headers=headers) |
| data = response.json() |
| '/models/download/{model_id}': |
| get: |
| operationId: downloadModel |
| tags: |
| - Models |
| summary: Download a specific model. |
| description: | |
| Download a model. |
| parameters: |
| - in: path |
| name: model_id |
| required: true |
| schema: |
| type: string |
| example: mistral-ins-7b-q4 |
| description: | |
| The ID of the model to use for this request. |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/models.yaml#/components/schemas/DownloadModelResponse |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl -X 'GET' \ |
| 'http://localhost:1337/v1/models/download/{model_id}' \ |
| -H 'accept: application/json' |
| - lang: JavaScript |
| source: >- |
| const response = await |
| fetch('http://localhost:1337/v1/models/download/{model_id}', { |
| method: 'GET', |
| headers: {accept: 'application/json'} |
| }); |
| |
|
|
| const data = await response.json(); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/models/download/{model_id}', { |
| method: 'GET', |
| headers: {accept: 'application/json'} |
| }) |
| .then(res => res.json()) |
| .then(data => console.log(data)); |
| - lang: Python |
| source: >- |
| import requests |
| |
|
|
| response = requests.get('http://localhost:1337/v1/models/download/{model_id}', headers={'accept': 'application/json'}) |
|
|
| data = response.json() |
| '/models/{model_id}': |
| get: |
| operationId: retrieveModel |
| tags: |
| - Models |
| summary: Retrieve model |
| description: > |
| Get a model instance, providing basic information about the model |
| such as the owner and permissioning. <a href = |
| "https://platform.openai.com/docs/api-reference/models/retrieve"> |
| Equivalent to OpenAI's retrieve model. </a> |
| parameters: |
| - in: path |
| name: model_id |
| required: true |
| schema: |
| type: string |
| example: mistral-ins-7b-q4 |
| description: | |
| The ID of the model to use for this request. |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/models.yaml#/components/schemas/GetModelResponse |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl -X 'GET' \ |
| 'http://localhost:1337/v1/models/{model_id}' \ |
| -H 'accept: application/json' |
| - lang: JavaScript |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const modelId = 'mistral-ins-7b-q4'; |
|
|
| fetch(`http://localhost:1337/v1/models/${modelId}`, { |
| method: 'GET', |
| headers: {'accept': 'application/json'} |
| }) |
| .then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const modelId = 'mistral-ins-7b-q4'; |
|
|
| fetch(`http://localhost:1337/v1/models/${modelId}`, { |
| method: 'GET', |
| headers: {'accept': 'application/json'} |
| }) |
| .then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Python |
| source: >- |
| import requests |
| |
|
|
| model_id = 'mistral-ins-7b-q4' |
|
|
|
|
| response = requests.get(f'http://localhost:1337/v1/models/{model_id}', headers={'accept': 'application/json'}) |
|
|
| print(response.json()) |
| delete: |
| operationId: deleteModel |
| tags: |
| - Models |
| summary: Delete model |
| description: > |
| Delete a model. <a href = |
| "https://platform.openai.com/docs/api-reference/models/delete"> |
| Equivalent to OpenAI's delete model. </a> |
| parameters: |
| - in: path |
| name: model_id |
| required: true |
| schema: |
| type: string |
| example: mistral-ins-7b-q4 |
| description: | |
| The model id to delete |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/models.yaml#/components/schemas/DeleteModelResponse |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl -X 'DELETE' \ |
| 'http://localhost:1337/v1/models/{model_id}' \ |
| -H 'accept: application/json' |
| - lang: JavaScript |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const modelId = 'mistral-ins-7b-q4'; |
|
|
| fetch(`http://localhost:1337/v1/models/${modelId}`, { |
| method: 'DELETE', |
| headers: { 'accept': 'application/json' } |
| }) |
| .then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| const modelId = 'mistral-ins-7b-q4'; |
|
|
| fetch(`http://localhost:1337/v1/models/${modelId}`, { |
| method: 'DELETE', |
| headers: { 'accept': 'application/json' } |
| }) |
| .then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Python |
| source: >- |
| import requests |
| |
|
|
| model_id = 'mistral-ins-7b-q4' |
|
|
|
|
| response = requests.delete(f'http://localhost:1337/v1/models/{model_id}', headers={'accept': 'application/json'}) |
| /threads: |
| post: |
| operationId: createThread |
| tags: |
| - Threads |
| summary: Create thread |
| description: > |
| Create a thread. <a href = |
| "https://platform.openai.com/docs/api-reference/threads/createThread"> |
| Equivalent to OpenAI's create thread. </a> |
| requestBody: |
| required: false |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/CreateThreadObject |
| responses: |
| '200': |
| description: Thread created successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/CreateThreadResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl -X POST http://localhost:1337/v1/threads \ |
| -H "Content-Type: application/json" \ |
| -d '{ |
| "messages": [{ |
| "role": "user", |
| "content": "Hello, what is AI?", |
| "file_ids": ["file-abc123"] |
| }, { |
| "role": "user", |
| "content": "How does AI work? Explain it in simple terms." |
| }] |
| }' |
| - lang: JavaScript |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/threads', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json' |
| }, |
| body: JSON.stringify({ |
| messages: [ |
| { |
| role: 'user', |
| content: 'Hello, what is AI?', |
| file_ids: ['file-abc123'] |
| }, |
| { |
| role: 'user', |
| content: 'How does AI work? Explain it in simple terms.' |
| } |
| ] |
| }) |
| }); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/threads', { |
| method: 'POST', |
| headers: { |
| 'Content-Type': 'application/json' |
| }, |
| body: JSON.stringify({ |
| messages: [ |
| { |
| role: 'user', |
| content: 'Hello, what is AI?', |
| file_ids: ['file-abc123'] |
| }, |
| { |
| role: 'user', |
| content: 'How does AI work? Explain it in simple terms.' |
| } |
| ] |
| }) |
| }); |
| - lang: Python |
| source: |- |
| import requests |
| |
| url = 'http://localhost:1337/v1/threads' |
| payload = { |
| 'messages': [ |
| { |
| 'role': 'user', |
| 'content': 'Hello, what is AI?', |
| 'file_ids': ['file-abc123'] |
| }, |
| { |
| 'role': 'user', |
| 'content': 'How does AI work? Explain it in simple terms.' |
| } |
| ] |
| } |
|
|
| response = requests.post(url, json=payload) |
| print(response.text) |
| get: |
| operationId: listThreads |
| tags: |
| - Threads |
| summary: List threads |
| description: | |
| Retrieves a list of all threads available in the system. |
| responses: |
| '200': |
| description: List of threads retrieved successfully |
| content: |
| application/json: |
| schema: |
| type: array |
| items: |
| $ref: specs/threads.yaml#/components/schemas/ThreadObject |
| example: |
| - id: thread_abc123 |
| object: thread |
| created_at: 1699014083 |
| assistants: |
| - assistant-001 |
| metadata: {} |
| messages: [] |
| - id: thread_abc456 |
| object: thread |
| created_at: 1699014083 |
| assistants: |
| - assistant-002 |
| - assistant-003 |
| metadata: {} |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl http://localhost:1337/v1/threads \ |
| -H "Content-Type: application/json" |
| - lang: JavaScript |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/threads', { |
| method: 'GET', |
| headers: {'Content-Type': 'application/json'} |
| }).then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/threads', { |
| method: 'GET', |
| headers: {'Content-Type': 'application/json'} |
| }).then(res => res.json()) |
| .then(json => console.log(json)); |
| - lang: Python |
| source: |- |
| import requests |
| |
| url = 'http://localhost:1337/v1/threads' |
| headers = {'Content-Type': 'application/json'} |
|
|
| response = requests.get(url, headers=headers) |
| print(response.json()) |
| '/threads/{thread_id}': |
| get: |
| operationId: getThread |
| tags: |
| - Threads |
| summary: Retrieve thread |
| description: > |
| Retrieves detailed information about a specific thread using its |
| thread_id. <a href = |
| "https://platform.openai.com/docs/api-reference/threads/getThread"> |
| Equivalent to OpenAI's retrieve thread. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread to retrieve. |
| responses: |
| '200': |
| description: Thread details retrieved successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/GetThreadResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl http://localhost:1337/v1/threads/{thread_id} |
| patch: |
| operationId: modifyThread |
| tags: |
| - Threads |
| summary: Modify thread |
| description: > |
| Modifies a thread. <a href = |
| "https://platform.openai.com/docs/api-reference/threads/modifyThread"> |
| Equivalent to OpenAI's modify thread. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread to be modified. |
| requestBody: |
| required: true |
| content: |
| application/json: |
| schema: |
| type: object |
| properties: |
| title: |
| type: string |
| description: Set the title of the thread |
| items: |
| $ref: specs/threads.yaml#/components/schemas/ThreadMessageObject |
| responses: |
| '200': |
| description: Thread modified successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/ModifyThreadResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl -X POST http://localhost:1337/v1/threads/{thread_id} \ |
| -H "Content-Type: application/json" \ |
| -d '{ |
| "messages": [{ |
| "role": "user", |
| "content": "Hello, what is AI?", |
| "file_ids": ["file-abc123"] |
| }, { |
| "role": "user", |
| "content": "How does AI work? Explain it in simple terms." |
| }] |
| }' |
| delete: |
| operationId: deleteThread |
| tags: |
| - Threads |
| summary: Delete thread |
| description: > |
| Delete a thread. <a href = |
| "https://platform.openai.com/docs/api-reference/threads/deleteThread"> |
| Equivalent to OpenAI's delete thread. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread to be deleted. |
| responses: |
| '200': |
| description: Thread deleted successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/DeleteThreadResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl -X DELETE http://localhost:1337/v1/threads/{thread_id} |
| /assistants: |
| get: |
| operationId: listAssistants |
| tags: |
| - Assistants |
| summary: List assistants |
| description: > |
| Return a list of assistants. <a href = |
| "https://platform.openai.com/docs/api-reference/assistants/listAssistants"> |
| Equivalent to OpenAI's list assistants. </a> |
| responses: |
| '200': |
| description: List of assistants retrieved successfully |
| content: |
| application/json: |
| schema: |
| type: array |
| example: |
| - id: asst_abc123 |
| object: assistant |
| version: 1 |
| created_at: 1698984975 |
| name: Math Tutor |
| description: null |
| avatar: https://pic.png |
| models: |
| - model_id: model_0 |
| instructions: Be concise |
| events: |
| in: [] |
| out: [] |
| metadata: {} |
| - id: asst_abc456 |
| object: assistant |
| version: 1 |
| created_at: 1698984975 |
| name: Physics Tutor |
| description: null |
| avatar: https://pic.png |
| models: |
| - model_id: model_1 |
| instructions: Be concise! |
| events: |
| in: [] |
| out: [] |
| metadata: {} |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl http://localhost:1337/v1/assistants \ |
| -H "Content-Type: application/json" |
| - lang: JavaScript |
| source: |- |
| fetch('http://localhost:1337/v1/assistants', { |
| method: 'GET', |
| headers: { |
| 'Content-Type': 'application/json' |
| } |
| }) |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| fetch('http://localhost:1337/v1/assistants', { |
| method: 'GET', |
| headers: { |
| 'Content-Type': 'application/json' |
| } |
| }) |
| - lang: Python |
| source: |- |
| import requests |
| |
| url = 'http://localhost:1337/v1/assistants' |
| headers = {'Content-Type': 'application/json'} |
|
|
| response = requests.get(url, headers=headers) |
| '/assistants/{assistant_id}': |
| get: |
| operationId: getAssistant |
| tags: |
| - Assistants |
| summary: Retrieve assistant |
| description: > |
| Retrieves an assistant. <a href = |
| "https://platform.openai.com/docs/api-reference/assistants/getAssistant"> |
| Equivalent to OpenAI's retrieve assistants. </a> |
| parameters: |
| - in: path |
| name: assistant_id |
| required: true |
| schema: |
| type: string |
| example: jan |
| description: | |
| The ID of the assistant to retrieve. |
| responses: |
| '200': |
| description: null |
| content: |
| application/json: |
| schema: |
| $ref: specs/assistants.yaml#/components/schemas/RetrieveAssistantResponse |
| x-codeSamples: |
| - lang: cURL |
| source: |- |
| curl http://localhost:1337/v1/assistants/{assistant_id} \ |
| -H "Content-Type: application/json" |
| - lang: JavaScript |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| let assistantId = 'abc123'; |
|
|
| fetch(`http://localhost:1337/v1/assistants/${assistantId}`, { |
| method: 'GET', |
| headers: { |
| 'Content-Type': 'application/json' |
| } |
| }) |
| - lang: Node.js |
| source: |- |
| const fetch = require('node-fetch'); |
| |
| let assistantId = 'abc123'; |
|
|
| fetch(`http://localhost:1337/v1/assistants/${assistantId}`, { |
| method: 'GET', |
| headers: { |
| 'Content-Type': 'application/json' |
| } |
| }) |
| - lang: Python |
| source: >- |
| import requests |
| |
|
|
| assistant_id = 'abc123' |
|
|
|
|
| response = requests.get(f'http://localhost:1337/v1/assistants/{assistant_id}', headers={'Content-Type': 'application/json'}) |
| '/threads/{thread_id}/messages': |
| get: |
| operationId: listMessages |
| tags: |
| - Messages |
| summary: List messages |
| description: > |
| Retrieves all messages from the given thread. <a href = |
| "https://platform.openai.com/docs/api-reference/messages/listMessages"> |
| Equivalent to OpenAI's list messages. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread from which to retrieve messages. |
| responses: |
| '200': |
| description: List of messages retrieved successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/messages.yaml#/components/schemas/ListMessagesResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl http://localhost:1337/v1/threads/{thread_id}/messages \ |
| -H "Content-Type: application/json" |
| post: |
| operationId: createMessage |
| tags: |
| - Messages |
| summary: Create message |
| description: > |
| Create a message. <a href = |
| "https://platform.openai.com/docs/api-reference/messages/createMessage"> |
| Equivalent to OpenAI's list messages. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread to which the message will be posted. |
| requestBody: |
| required: true |
| content: |
| application/json: |
| schema: |
| type: object |
| properties: |
| role: |
| type: string |
| description: | |
| Role of the sender, either 'user' or 'assistant'. |
| example: user |
| enum: |
| - user |
| - assistant |
| content: |
| type: string |
| description: | |
| Text content of the message. |
| example: How does AI work? Explain it in simple terms. |
| required: |
| - role |
| - content |
| responses: |
| '200': |
| description: Message created successfully |
| content: |
| application/json: |
| schema: |
| $ref: specs/messages.yaml#/components/schemas/CreateMessageResponse |
| x-codeSamples: |
| - lang: cURL |
| source: | |
| curl -X POST http://localhost:1337/v1/threads/{thread_id}/messages \ |
| -H "Content-Type: application/json" \ |
| -d '{ |
| "role": "user", |
| "content": "How does AI work? Explain it in simple terms." |
| }' |
| '/threads/{thread_id}/messages/{message_id}': |
| get: |
| operationId: retrieveMessage |
| tags: |
| - Messages |
| summary: Retrieve message |
| description: > |
| Retrieve a specific message from a thread using its thread_id and |
| message_id. <a href = |
| "https://platform.openai.com/docs/api-reference/messages/getMessage"> |
| Equivalent to OpenAI's retrieve messages. </a> |
| parameters: |
| - in: path |
| name: thread_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the thread containing the message. |
| - in: path |
| name: message_id |
| required: true |
| schema: |
| type: string |
| description: | |
| The ID of the message to retrieve. |
| responses: |
| '200': |
| description: OK |
| content: |
| application/json: |
| schema: |
| $ref: specs/messages.yaml#/components/schemas/GetMessageResponse |
| x-codeSamples: |
| - lang: cURL |
| source: > |
| curl http://localhost:1337/v1/threads/{thread_id}/messages/{message_id} |
| \ |
| -H "Content-Type: application/json" |
| x-webhooks: |
| ModelObject: |
| post: |
| summary: The model object |
| description: > |
| Describe a model offering that can be used with the API. <a href = |
| "https://platform.openai.com/docs/api-reference/models/object"> |
| Equivalent to OpenAI's model object. </a> |
| operationId: ModelObject |
| tags: |
| - Models |
| requestBody: |
| content: |
| application/json: |
| schema: |
| $ref: specs/models.yaml#/components/schemas/ModelObject |
| AssistantObject: |
| post: |
| summary: The assistant object |
| description: > |
| Build assistants that can call models and use tools to perform |
| tasks. <a href = |
| "https://platform.openai.com/docs/api-reference/assistants"> Equivalent |
| to OpenAI's assistants object. </a> |
| operationId: AssistantObjects |
| tags: |
| - Assistants |
| requestBody: |
| content: |
| application/json: |
| schema: |
| $ref: specs/assistants.yaml#/components/schemas/AssistantObject |
| MessageObject: |
| post: |
| summary: The message object |
| description: > |
| Information about a message in the thread. <a href = |
| "https://platform.openai.com/docs/api-reference/messages/object"> |
| Equivalent to OpenAI's message object. </a> |
| operationId: MessageObject |
| tags: |
| - Messages |
| requestBody: |
| content: |
| application/json: |
| schema: |
| $ref: specs/messages.yaml#/components/schemas/MessageObject |
| ThreadObject: |
| post: |
| summary: The thread object |
| description: Represents a thread that contains messages. <a href = |
| "https://platform.openai.com/docs/api-reference/threads/object"> |
| Equivalent to OpenAI's thread object. </a> |
| operationId: ThreadObject |
| tags: |
| - Threads |
| requestBody: |
| content: |
| application/json: |
| schema: |
| $ref: specs/threads.yaml#/components/schemas/ThreadObject |
|
|