Metadata-Version: 2.2
Name: airtrain
Version: 0.1.0
Summary: A platform for building and deploying AI agents with structured skills
Home-page: https://github.com/rosaboyle/airtrain.dev
Author: Dheeraj Pai
Author-email: helloworldcmu@gmail.com
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: pydantic>=2.0.0
Requires-Dist: openai>=1.0.0
Requires-Dist: python-dotenv>=0.19.0
Requires-Dist: PyYAML>=5.4.1
Requires-Dist: firebase-admin>=5.0.0
Requires-Dist: loguru>=0.5.3
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# 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
- **OpenAI Integration**: Built-in support for OpenAI's GPT models with structured outputs
- **Credential Management**: Secure handling of API keys and credentials
- **Type Safety**: Full type hints and Pydantic model support
- **Async Support**: Both synchronous and asynchronous API implementations

## Installation

```bash
pip install airtrain
```

## Quick Start

### Creating a Structured OpenAI Skill

```python
from airtrain.core.skills import Skill
from airtrain.core.schemas import InputSchema, OutputSchema
from pydantic import BaseModel
from typing import List

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

# Create a skill
class OpenAIParserSkill(Skill):
    def process(self, input_data):
        # Implementation
        return parsed_response

# Use the skill
skill = OpenAIParserSkill()
result = skill.process(input_data)
```

### Managing Credentials

```python
from airtrain.core.credentials import OpenAICredentials
from pathlib import Path

# Load credentials
creds = OpenAICredentials(
    api_key="your-api-key",
    organization_id="optional-org-id"
)

# Save to environment
creds.load_to_env()
```

## Documentation

For detailed documentation, visit [our documentation site](https://airtrain.readthedocs.io/).

## 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. 
