Skip to main content

A platform for building and deploying AI agents with structured skills

Project description

Airtrain

A powerful platform for building and deploying AI agents with structured skills and capabilities.

Features

  • Structured Skills: Build modular AI skills with defined input/output schemas
  • Multiple LLM Integrations: Built-in support for OpenAI and Anthropic models
  • Structured Outputs: Parse LLM responses into structured Pydantic models
  • Credential Management: Secure handling of API keys and credentials
  • Type Safety: Full type hints and Pydantic model support
  • Image Support: Handle image inputs for multimodal models
  • Error Handling: Robust error handling and logging

Installation

pip install airtrain

Quick Start

1. Basic OpenAI Chat

from airtrain.integrations.openai.skills import OpenAIChatSkill, OpenAIInput

# Initialize the skill
skill = OpenAIChatSkill()

# Create input
input_data = OpenAIInput(
    user_input="Explain quantum computing in simple terms.",
    system_prompt="You are a helpful teacher.",
    max_tokens=500,
    temperature=0.7
)

# Get response
result = skill.process(input_data)
print(result.response)
print(f"Tokens Used: {result.usage['total_tokens']}")

2. Anthropic Claude Integration

from airtrain.integrations.anthropic.skills import AnthropicChatSkill, AnthropicInput

# Initialize the skill
skill = AnthropicChatSkill()

# Create input
input_data = AnthropicInput(
    user_input="Explain the theory of relativity.",
    system_prompt="You are a physics expert.",
    model="claude-3-opus-20240229",
    temperature=0.3
)

# Get response
result = skill.process(input_data)
print(result.response)
print(f"Usage: {result.usage}")

3. Structured Output with OpenAI

from pydantic import BaseModel
from typing import List
from airtrain.integrations.openai.skills import OpenAIParserSkill, OpenAIParserInput

# Define your response model
class PersonInfo(BaseModel):
    name: str
    age: int
    occupation: str
    skills: List[str]

# Initialize the parser skill
parser_skill = OpenAIParserSkill()

# Create input with response model
input_data = OpenAIParserInput(
    user_input="Tell me about John Doe, a 30-year-old software engineer who specializes in Python and AI",
    system_prompt="Extract structured information about the person.",
    response_model=PersonInfo
)

# Get structured response
result = parser_skill.process(input_data)
person_info = result.parsed_response
print(f"Name: {person_info.name}")
print(f"Skills: {', '.join(person_info.skills)}")

Error Handling

All skills include built-in error handling:

from airtrain.core.skills import ProcessingError

try:
    result = skill.process(input_data)
except ProcessingError as e:
    print(f"Processing failed: {e}")

Advanced Features

  • Image Analysis Support
  • Function Calling
  • Custom Validators
  • Async Processing
  • Token Usage Tracking

For more examples and detailed documentation, visit our documentation.

Documentation

For detailed documentation, visit our documentation site.

Telemetry

Airtrain collects telemetry data to help improve the library. The data collected includes:

  • Agent run information (model used, task description, environment settings)
  • Agent steps and actions (full action details and reasoning)
  • Performance metrics (token usage, execution time, CPU and memory usage)
  • System information (OS, Python version, machine details)
  • Error information (complete stack traces and context)
  • Model usage details (prompts, responses, parameters)

The telemetry helps us identify usage patterns, troubleshoot issues, and improve the library based on real-world usage. The user ID is stored at ~/.cache/airtrain/telemetry_user_id.

Disabling Telemetry

Telemetry is enabled by default, but you can disable it if needed:

  1. Set an environment variable:
export AIRTRAIN_TELEMETRY_ENABLED=false
  1. In your Python code:
import os
os.environ["AIRTRAIN_TELEMETRY_ENABLED"] = "false"

Viewing Telemetry Debug Information

To see what telemetry data is being sent:

os.environ["AIRTRAIN_LOGGING_LEVEL"] = "debug"

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airtrain-0.1.58.tar.gz (77.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airtrain-0.1.58-py3-none-any.whl (127.4 kB view details)

Uploaded Python 3

File details

Details for the file airtrain-0.1.58.tar.gz.

File metadata

  • Download URL: airtrain-0.1.58.tar.gz
  • Upload date:
  • Size: 77.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for airtrain-0.1.58.tar.gz
Algorithm Hash digest
SHA256 b4b5e3ced0d9326a1e7b68a2dc7a486ab09591360960e96cd257a271e2f71b77
MD5 d6f96e80bd744f79e9b07354413cbbc2
BLAKE2b-256 c7b6b4c6f038cb4ff6a2745ae3751b8ac44a330a6cfb54c49d2582d9e936a66b

See more details on using hashes here.

File details

Details for the file airtrain-0.1.58-py3-none-any.whl.

File metadata

  • Download URL: airtrain-0.1.58-py3-none-any.whl
  • Upload date:
  • Size: 127.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for airtrain-0.1.58-py3-none-any.whl
Algorithm Hash digest
SHA256 4692b3dd486a658eb350db164b4a2216773bc4e8ff9b438e20bdd3600fa6fd54
MD5 def24b42fe1471d0fe52f9362167ca66
BLAKE2b-256 14fa0146d25d275c7d3ac1378907df09c7820f59943a3aa68f9e1175faf68969

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page