Skip to content

Models

Understanding models and how to work with them in multi-llm-ts.

What are Models?

Models are the AI systems that generate responses. Each provider offers different models with varying capabilities, costs, and performance characteristics.

Loading Models

Use loadModels() to fetch available models from a provider:

typescript
import { loadModels } from 'multi-llm-ts'

const config = { apiKey: process.env.OPENAI_API_KEY }
const models = await loadModels('openai', config)

console.log(models.chat)    // Chat models
console.log(models.image)   // Image generation models (if available)

The response includes:

  • chat: Array of chat completion models
  • image: Array of image generation models (provider-dependent)

ChatModel Object

Each model has these properties:

typescript
interface ChatModel {
  id: string              // Model identifier (e.g., "gpt-4")
  name: string            // Display name
  meta?: any              // Provider-specific metadata

  // Capabilities
  capabilities?: {
    tools: boolean        // Supports function calling
    vision: boolean       // Can analyze images
    reasoning: boolean    // Chain-of-thought models (o1 family)
  }
}

Creating an LlmModel

Once you have a model, create an LlmModel instance:

typescript
import { igniteModel } from 'multi-llm-ts'

const model = igniteModel('openai', models.chat[0], config)

Parameters:

  • provider: Provider ID (e.g., 'openai', 'anthropic')
  • model: ChatModel object from loadModels()
  • config: Configuration with API key and options

Usage:

typescript
// Simple API - no need to pass model to each call
await model.complete(messages)

Model Selection

Choose models based on your needs:

By Capability

typescript
// Find a vision model
const visionModel = models.chat.find(m => m.capabilities?.vision)
const model = igniteModel('openai', visionModel, config)

// Find a model with function calling
const toolModel = models.chat.find(m => m.capabilities?.tools)

By Name

typescript
// Use a specific model
const gpt4 = models.chat.find(m => m.id === 'gpt-4')
const model = igniteModel('openai', gpt4, config)

Model Capabilities

Function Calling (Tools)

Models with capabilities.tools = true can invoke functions/plugins:

typescript
if (chatModel.capabilities?.tools) {
  model.addPlugin(new MyPlugin())
}

See Function Calling for details.

Vision

Models with capabilities.vision = true can analyze images:

typescript
if (chatModel.capabilities?.vision) {
  const message = new Message('user', 'What is in this image?')
  message.attach({ url: 'image.jpg', mimeType: 'image/jpeg' })
  await model.complete([message])
}

See Vision for details.

Reasoning

Models with capabilities.reasoning = true (like OpenAI's o1 family) use chain-of-thought reasoning:

typescript
// Reasoning models have different parameter constraints
// - Cannot use system messages
// - Limited temperature/top_p control
const response = await model.complete(messages)

Next Steps

Released under the MIT License.