Skip to main content

Models

Tower Models provide easy access to Large Language Models (LLMs) through a unified interface. They abstract away the complexity of different inference providers and model APIs, allowing you to work with local and remote models seamlessly.

Overview

Tower offers two main components for working with language models:

  • The Llm class: A wrapper around language models that provides methods for text generation and chat completions
  • The llms helper function: A convenient way to create and configure Llm instances

Instantiating Models

To create a Llm instance, you need to:

  1. Specify the model name (can be a model family name or specific model identifier)
  2. Optionally set the maximum tokens for responses
  3. Use the llms() helper function

Here's a basic example:

import tower

# Create a language model instance
llm = tower.llms("llama3.2", max_tokens=1000)

The returned llm object is of the Tower Llm class, which provides a unified interface for working with different language model providers. Currently, Tower supports Ollama for local inference and Hugging Face Hub for remote inference.

Model Name Resolution

Tower automatically resolves model names based on available inference providers. You can specify either:

  • Model family names (e.g., "llama3.2", "gemma3.2", "deepseek-r1")
  • Specific model identifiers (e.g., "deepseek-r1:14b", "deepseek-ai/DeepSeek-R1-0528")

The system will automatically select the appropriate inference provider and resolve the exact model name. For a list of supported model family names, see the Tower LLM module.

Model Operations

Model Instantiation

The llms helper function creates an Llm instance with these parameters:

Configuration

  • model_name (str): The name of the language model to use
  • max_tokens (int): Maximum number of tokens to generate in responses (defaults to 1000)

Llm Methods

Once you have a language model instance, you can perform these operations:

Chat Completions

  • complete_chat() - Sends a list of messages and returns the generated response (OpenAI Chat Completions API format)

Simple Prompts

  • prompt() - Sends a single prompt string and returns the generated response (legacy OpenAI Completions API format)

Usage Examples

Chat-based Interactions

import tower

# Create a language model
llm = tower.llms("llama3.2", max_tokens=500)

# Use for chat completions
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello, how are you?"}
]
response = llm.complete_chat(messages)
print(response)

Simple Prompt Interactions

import tower

# Create a language model
llm = tower.llms("deepseek-r1", max_tokens=1000)

# Use for simple prompts
response = llm.prompt("What is the capital of France?")
print(response)

Learning More

For a more in-depth review of working with models in Tower, see the Working with Models guide.