Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

AI API

The AI API provides endpoints for managing AI models, inference, training, and advanced AI operations.

Status: Roadmap

This API is on the development roadmap. The endpoints documented below represent the planned interface design.

Base URL

http://localhost:9000/api/v1/ai

Authentication

Uses the standard botserver authentication mechanism with appropriate role-based permissions.

Endpoints

Model Management

MethodEndpointDescription
GET/api/v1/ai/modelsList available models
GET/api/v1/ai/models/{model_id}Get model details
POST/api/v1/ai/models/deployDeploy a new model
DELETE/api/v1/ai/models/{model_id}Remove a model

Inference

MethodEndpointDescription
POST/api/v1/ai/inferenceRun inference on input data
POST/api/v1/ai/chat/completionsChat completion endpoint
POST/api/v1/ai/embeddingsGenerate embeddings

Training

MethodEndpointDescription
POST/api/v1/ai/training/startStart a training job
GET/api/v1/ai/training/{job_id}/statusGet training job status
POST/api/v1/ai/training/{job_id}/cancelCancel training job

Model Configuration

MethodEndpointDescription
GET/api/v1/ai/models/{model_id}/configGet model configuration
PUT/api/v1/ai/models/{model_id}/configUpdate model configuration

Request Examples

List Available Models

models = GET "/api/v1/ai/models"
FOR EACH model IN models
    TALK model.name + " - " + model.status
NEXT

Chat Completion

request = NEW OBJECT
request.model = "gpt-4"
request.messages = NEW ARRAY
request.messages.ADD({"role": "user", "content": "Hello, how are you?"})

response = POST "/api/v1/ai/chat/completions", request
TALK response.choices[0].message.content

Generate Embeddings

request = NEW OBJECT
request.input = "Convert this text to embeddings"
request.model = "text-embedding-3-small"

result = POST "/api/v1/ai/embeddings", request
embedding = result.data[0].embedding

Start Training Job

training_config = NEW OBJECT
training_config.base_model = "llama-2-7b"
training_config.dataset = "my-training-data"
training_config.epochs = 3

job = POST "/api/v1/ai/training/start", training_config
TALK "Training job started: " + job.id

Response Codes

CodeDescription
200Success
201Created
202Accepted (for async operations)
400Bad Request
401Unauthorized
403Forbidden
404Model or resource not found
429Rate limit exceeded
500Internal Server Error

Required Permissions

Endpoint CategoryRequired Role
Model Managementadmin or model_manager
Inferenceuser or higher
Trainingadmin or trainer
Model Configurationadmin