Skip to main content

A modular Python framework for AI agents and LLM interactions

Project description

Flotorch Python

A modular Python framework for AI agents and LLM interactions with support for multiple AI frameworks.

Features

  • Modular Design: Install only what you need
  • SDK Core: Foundation for all AI interactions
  • ADK Integration: Google Agent Development Kit support
  • Future Modules: CrewAI, AutoGen, LangGraph support (coming soon)
  • Flexible Dependencies: Choose your installation level

Installation

Option 1: Install everything (Recommended)

# Install all modules and dependencies
pip install flotorch

Option 2: Install specific modules only

# Install only SDK (core functionality)
pip install flotorch[sdk]

# Install SDK + ADK (Google Agent Development Kit)
pip install flotorch[adk]

Option 3: Development installation

# Install in development mode with all dependencies
pip install -e .

# Install with development tools
pip install -e .[dev]

Option 4: Beta/Pre-release installation

# Install latest beta version
pip install --pre flotorch

# Install specific beta version
pip install flotorch==0.1.0b1

# Install beta with pre-release flag
pip install --pre flotorch==0.1.0b1

# Install beta with ADK
pip install --pre flotorch[adk]

# Install specific beta version with ADK
pip install --pre flotorch[adk]==0.1.0b1

# Install beta with SDK only
pip install --pre flotorch[sdk]

# Install specific beta version with SDK
pip install --pre flotorch[sdk]==0.1.0b1

Note: The --pre flag is required to install beta/pre-release versions. Without it, pip will only install stable releases.

Module Dependencies

SDK (Core) - Always included

  • httpx>=0.24 - HTTP client
  • pydantic>=1.10 - Data validation
  • openai>=1.0.0 - OpenAI API client

ADK Module

  • Requires: SDK dependencies
  • Adds: google-adk>=1.5.0

Development Tools

  • build>=0.10.0 - Package building
  • twine>=4.0.0 - PyPI upload
  • pytest>=7.0.0 - Testing
  • black>=23.0.0 - Code formatting
  • flake8>=6.0.0 - Linting
  • mypy>=1.0.0 - Type checking

Project Structure

flotorch/
├── __init__.py
├── sdk/           # Core SDK functionality
│   ├── __init__.py
│   ├── llm.py     # LLM client
│   └── utils/     # Shared utilities
├── adk/           # Google Agent Development Kit
│   ├── __init__.py
│   ├── agent.py   # ADK agent wrapper
│   └── llm.py     # ADK LLM integration
└── utils/         # Shared utilities
    ├── http_utils.py
    ├── llm_utils.py
    ├── logging_utils.py
    └── memory_utils.py

Development

Easy Building with Makefile

The easiest way to build and manage your package is using the provided Makefile:

Direct Version Specification (Recommended)

# Build with specific version
make build VERSION=0.1.0
make build-beta VERSION=0.1.0b1
make build-prod VERSION=0.1.0

# Test with specific version
make test VERSION=0.1.0

# Publish with specific version
make publish-test VERSION=0.1.0b1
make publish-prod VERSION=0.1.0

# Full workflow with specific version
make all VERSION=0.1.0b1

Interactive Commands (prompts for version)

# Interactive builds (if no VERSION specified)
make build          # Prompts: "Enter version (e.g., 0.1.0):"
make build-beta     # Prompts: "Enter beta version (e.g., 0.1.0b1):"
make build-prod     # Prompts: "Enter production version (e.g., 0.1.0):"

# Interactive testing and publishing
make test           # Prompts: "Enter version to test (e.g., 0.1.0):"
make publish-test   # Prompts: "Enter version to publish (e.g., 0.1.0b1):"
make publish-prod   # Prompts: "Enter version to publish (e.g., 0.1.0):"

Quick Commands (pre-defined versions)

# Quick development builds
make quick-build        # Builds version 0.1.0
make quick-test         # Tests version 0.1.0
make quick-beta         # Builds version 0.1.0b1

# Quick publishing
make quick-publish-test # Publishes 0.1.0b1 to TestPyPI
make quick-publish      # Publishes 0.1.0 to PyPI

Development Setup

# Set up development environment
make install        # Install in development mode
make install-dev    # Install with development dependencies
make dev-setup      # Complete development setup and test

# Other useful commands
make help           # Show all available commands
make clean          # Clean build artifacts

Manual Building (Alternative)

If you prefer to use the build script directly:

# Build with specific version
python build.py --version 0.1.0 --build

# Build beta version
python build.py --version 0.1.0b1 --build

Testing

# Test installation
python build.py --version 0.1.0 --test

# Test specific module installations
python -c "from flotorch.sdk.llm import FlotorchLLM; print('SDK works!')"
python -c "from flotorch.adk.agent import FlotorchADKAgent; print('ADK works!')"

Publishing

# Publish to TestPyPI
python build.py --version 0.1.0b1 --publish-test

# Publish to PyPI
python build.py --version 0.1.0 --publish

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

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

flotorch-2.6.0b1.tar.gz (185.5 kB view details)

Uploaded Source

Built Distribution

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

flotorch-2.6.0b1-py3-none-any.whl (233.4 kB view details)

Uploaded Python 3

File details

Details for the file flotorch-2.6.0b1.tar.gz.

File metadata

  • Download URL: flotorch-2.6.0b1.tar.gz
  • Upload date:
  • Size: 185.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for flotorch-2.6.0b1.tar.gz
Algorithm Hash digest
SHA256 fc0d7286900c756bbe4fdcb6d2fb0f7ab6bef81d9febd515ac63a802841378a5
MD5 c1d525a229339278f3dcfb6af8c5236b
BLAKE2b-256 186e10e88c93bb38f02f63d39e2e2e47d44500e8f4c96071487219f67bda191e

See more details on using hashes here.

File details

Details for the file flotorch-2.6.0b1-py3-none-any.whl.

File metadata

  • Download URL: flotorch-2.6.0b1-py3-none-any.whl
  • Upload date:
  • Size: 233.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.8

File hashes

Hashes for flotorch-2.6.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 ffb9a15ac4ef5f4e6b39bfa6c8ffed4f08cf671f13c135a0e85133aed6ccbaff
MD5 96ce6d7cb5f88dfa654c0239ed8f5ded
BLAKE2b-256 9571ea8f4c4f2c2d6f63ce092ed1c41f8d57da16ff2b396502b17c6efff7ed51

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