Skip to main content

AI Agent Functions for ETL/Data Processing

Project description

FleetFluid

AI Agent Functions for Data Processing with Dual-Mode Support

FleetFluid is a Python library that simplifies data transformation by letting you use AI-powered functions without writing them from scratch. Instead of building functions, you invoke ready-made, agent-based functions that handle tasks like text cleaning, information extraction, translation, labeling, anonymization, and more—just by specifying what you need in natural language.

🚀 Dual-Mode Architecture

FleetFluid supports two execution modes:

  • 🔓 Open Source Mode: Uses PydanticAI agents directly on your machine
  • ☁️ Cloud Mode: Uses cloud computation for enterprise-grade performance and reliability

The same Python interface works in both modes - just change the initialization to switch between them!

Installation

pip install fleetfluid

Quick Start

Open Source Mode

from fleetfluid.core import FleetFluid

# Initialize with PydanticAI (open source mode)
ff = FleetFluid(
    model="openai:gpt-4",
    temperature=0.7,
    max_tokens=1000
)

# AI Transformation
result = ff.ai("Rewrite this in a more technical tone", "The data processing pipeline needs optimization.")
print(result)

# Multi-label Classification
result = ff.label("Database query is slow", ["Performance Issue", "Feature Request", "Bug Report"], multiple=True)
print(f"Labels: {result.labels}")
print(f"Confidence: {result.confidence_scores}")

Cloud Mode

from fleetfluid.core import FleetFluid

# Initialize with API key (cloud mode)
# A key with free tier could be obtained on https://fleetfluid.io
ff = FleetFluid(
    api_key="your_fleetfluid_api_key",
    api_endpoint="https://api.fleetfluid.io"
)

# Same interface, different backend!
result = ff.label("Database query is slow", ["Performance Issue", "Feature Request", "Bug Report"])
print(f"Label: {result.label}")

Environment-Based Configuration

# Set environment variables
export FLEETFLUID-API-KEY="your_api_key"
export FLEETFLUID_API_ENDPOINT="https://api.fleetfluid.io"
# Automatically detects cloud mode
ff = FleetFluid()  # No parameters needed!

🔄 Mode Switching

You can switch between modes at runtime:

# Start in open source mode
ff = FleetFluid(model="openai:gpt-4")

# Switch to cloud mode
ff.switch_to_cloud_mode("new_api_key", "https://api.fleetfluid.io")

# Switch back to open source mode
ff.switch_to_open_source_mode("anthropic:claude-3-sonnet", temperature=0.3)

📋 Complete Function Reference

Initialization

Open Source Mode

# Basic initialization
ff = FleetFluid()

# Custom model and parameters
ff = FleetFluid(
    model="anthropic:claude-3-sonnet",
    temperature=0.7,
    max_tokens=1000,
    top_p=0.9
)

Cloud Mode

# Explicit configuration
ff = FleetFluid(
    api_key="your_api_key",
    api_endpoint="https://api.fleetfluid.io"
)

# Environment-based
ff = FleetFluid()  # Uses FLEETFLUID-API-KEY env var

Core Methods

All methods work identically in both modes:

ff.label(text, labels, multiple=False)

Label text using AI with structured output.

# Single label
result = ff.label("Hello world", ["greeting", "statement", "question"])
print(f"Label: {result.label}")
print(f"Confidence: {result.confidence}")

# Multiple labels
result = ff.label("Hello world", ["greeting", "statement", "question"], multiple=True)
print(f"Labels: {result.labels}")
print(f"Confidence Scores: {result.confidence_scores}")

ff.ai(prompt, data)

Apply AI transformation to data.

result = ff.ai("Make this more formal", "hey there, what's up?")
print(result)  # "Hello, how are you doing?"

ff.extract(extraction_type, text)

Extract specific information from text.

skills = ff.extract("skills", "Python developer with ML experience")
print(skills)  # ["Python", "machine learning"]

ff.anonymize(text)

Anonymize personal information.

anonymized = ff.anonymize("My name is John, email: john@example.com")
print(anonymized)  # "My name is [NAME], email: [EMAIL]"

ff.describe(features, style="natural")

Generate descriptions from features.

description = ff.describe(
    {"color": "blue", "size": "large"}, 
    style="marketing"
)
print(description)  # "A stunning large blue item..."

Async Versions

All methods have async counterparts:

# Async versions for use in async contexts
result = await ff.label_async("Hello world", ["greeting", "statement"])
result = await ff.ai_async("Make formal", "hey there")
result = await ff.extract_async("skills", "Python developer")

🔧 Configuration

Environment Variables

Variable Description Default
FLEETFLUID-API-KEY API key for cloud mode None
FLEETFLUID_API_ENDPOINT API endpoint for cloud mode https://api.fleetfluid.io

Open Source Mode Parameters

All PydanticAI parameters are supported:

  • model: Model identifier
  • temperature: Creativity level (0.0-1.0)
  • max_tokens: Maximum response length
  • top_p: Nucleus sampling parameter
  • frequency_penalty: Frequency penalty
  • presence_penalty: Presence penalty

Cloud Mode Parameters

  • api_key: Your fleetfluid cloud API key
  • api_endpoint: Custom API endpoint (optional)

🔒 Security

  • Open Source Mode: API keys stay on your machine
  • Cloud Mode: Uses Bearer token authentication
  • HTTPS: All API communications are encrypted
  • No Data Logging: Your data is not stored or logged
  • OpenAI Integration: In Cloud mode, OpenAI GPT-4 model is used via OpenAI API Platform and FleetFluid inherits all the terms and conditions and privacy policy of OpenAI at https://openai.com/en-GB/policies/row-privacy-policy/

📦 Requirements

  • Python 3.8+
  • PydanticAI (for open source mode)
  • httpx (for cloud mode)
  • API key for your chosen model provider (open source mode) or FleetFluid (cloud mode)

🚀 Quick Reference

Initialization Cheat Sheet

Mode Code Use Case
Open Source FleetFluid(model="gpt-4") Development, open source
Open Source FleetFluid(model="claude-3", temperature=0.7) Custom AI parameters
Cloud FleetFluid(api_key="key") Production, enterprise
Cloud FleetFluid(api_key="key", api_endpoint="https://api.fleetfluid.io") Custom API endpoint
Auto FleetFluid() Uses environment variables

Function Quick Reference

Function Description Example
ff.label(text, labels) Single label classification ff.label("Hello", ["greeting", "statement"])
ff.label(text, labels, multiple=True) Multiple label classification ff.label("Hello", ["greeting", "statement"], multiple=True)
ff.ai(prompt, data) AI transformation ff.ai("Make formal", "hey there")
ff.extract(type, text) Information extraction ff.extract("skills", "Python developer")
ff.anonymize(text) Text anonymization ff.anonymize("My name is John")
ff.describe(features, style) Feature description ff.describe({"color": "blue"}, "marketing")

Environment Variables

# For cloud mode
export FLEETFLUID-API-KEY="your_key"
export FLEETFLUID_API_ENDPOINT="https://api.fleetfluid.io"

# For open source mode (standard AI provider keys)
export OPENAI_API_KEY="your_openai_key"
export ANTHROPIC_API_KEY="your_anthropic_key"

Mode Detection Priority

  1. Constructor Parameters (highest)
  2. Environment Variables
  3. Default Values (lowest)

Pro Tip: api_key parameter always wins over model parameter!

📄 License

MIT License. See 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

fleetfluid-0.1.6.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

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

fleetfluid-0.1.6-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file fleetfluid-0.1.6.tar.gz.

File metadata

  • Download URL: fleetfluid-0.1.6.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for fleetfluid-0.1.6.tar.gz
Algorithm Hash digest
SHA256 8d11b9410541ab2008061cb6caf4f3eae11b0d3bf605dbe7997f6b80a951d22b
MD5 c49119c2e14f67bfd6fb274e6b8164c2
BLAKE2b-256 8606823cbd828982c7317a94758eb4e108225217aea844c694b834f18a209f9b

See more details on using hashes here.

File details

Details for the file fleetfluid-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: fleetfluid-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for fleetfluid-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 83b94cec5a7018c4edc0f9e22be1a7fefd1030adfb2a3e15b5a64382d8b0dc4c
MD5 24cef92620ddc390f0a7d4f1788f02c5
BLAKE2b-256 76a88b8970ef6fa80044d04c1d80aa3555c68f83fe3ec35a6ee2ba009c41551d

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