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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file airtrain-0.1.31.tar.gz.
File metadata
- Download URL: airtrain-0.1.31.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5da702b57b4db0bb92887fd2068a86c5bc55f69d5fc4e2a084337f698c472d9f
|
|
| MD5 |
e0a0f6a36d854d2fa204329af2b19187
|
|
| BLAKE2b-256 |
824c9eb7109a860c3f2ceb46a9128357b578001797a14c2db50deeba821b85fe
|
File details
Details for the file airtrain-0.1.31-py3-none-any.whl.
File metadata
- Download URL: airtrain-0.1.31-py3-none-any.whl
- Upload date:
- Size: 64.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e166775285a29885ae578cce4ed8610f333f4d3891df2b33bf0077d089ba60ce
|
|
| MD5 |
19ba92d8eb00c1e9b2f04d5464259ddd
|
|
| BLAKE2b-256 |
1f0f1e0d7b33859ffb5d0a191d8a364f299ee07a5f5b2ce75d3072f65633d323
|