Skip to main content

SDK for building LLM workflows and agents using Apache Airflow

Project description

airflow-ai-sdk

A Python SDK for working with LLMs from Apache Airflow. It allows users to call LLMs and orchestrate agent calls directly within their Airflow pipelines using decorator-based tasks.

We find it's often helpful to rely on mature orchestration tooling like Airflow for instrumenting LLM workflows and agents in production, as these LLM workflows follow the same form factor as more traditional workflows like ETL pipelines, operational processes, and ML workflows.

Quick Start

pip install airflow-ai-sdk[openai]

Installing with no optional dependencies will give you the slim version of the package. The available optional dependencies are listed in pyproject.toml.

Features

  • LLM tasks with @task.llm: Define tasks that call language models to process text
  • Agent tasks with @task.agent: Orchestrate multi-step AI reasoning with custom tools
  • Automatic output parsing: Use type hints to automatically parse and validate LLM outputs
  • Branching with @task.llm_branch: Change DAG control flow based on LLM output
  • Model support: All models in the Pydantic AI library (OpenAI, Anthropic, Gemini, etc.)
  • Embedding tasks with @task.embed: Create vector embeddings from text

[!TIP] You can find further information and a full DAG example for each of these decorators in the Airflow AI SDK Decorators & Code Snippets quick notes!

Example

from typing import Literal
import pendulum
from airflow.decorators import dag, task
from airflow.models.dagrun import DagRun


@task.llm(
    model="gpt-4o-mini",
    output_type=Literal["positive", "negative", "neutral"],
    system_prompt="Classify the sentiment of the given text.",
)
def process_with_llm(dag_run: DagRun) -> str:
    input_text = dag_run.conf.get("input_text")

    # can do pre-processing here (e.g. PII redaction)
    return input_text


@dag(
    schedule=None,
    start_date=pendulum.datetime(2025, 1, 1),
    catchup=False,
    params={"input_text": "I'm very happy with the product."},
)
def sentiment_classification():
    process_with_llm()


sentiment_classification()

Examples Repository

To get started with a complete example environment, check out the examples repository, which offers a full local Airflow instance with the AI SDK installed and 5 example pipelines:

git clone https://github.com/astronomer/ai-sdk-examples.git
cd ai-sdk-examples
astro dev start

If you don't have the Astro CLI installed, run brew install astro or see other options here.

Documentation

For detailed documentation, see the docs directory:

License

LICENSE

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

airflow_ai_sdk-0.1.7.tar.gz (234.0 kB view details)

Uploaded Source

Built Distribution

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

airflow_ai_sdk-0.1.7-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file airflow_ai_sdk-0.1.7.tar.gz.

File metadata

  • Download URL: airflow_ai_sdk-0.1.7.tar.gz
  • Upload date:
  • Size: 234.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.10

File hashes

Hashes for airflow_ai_sdk-0.1.7.tar.gz
Algorithm Hash digest
SHA256 8c865acbccbbad7476ebec6f397666014271a3cb8d30abb43b3a6280cf535bc7
MD5 f8d28afd12c680156da7f1267dbb982b
BLAKE2b-256 6e4ae4615ad16aad99c8c55416dc7ef63e87db2f373018f72df7a0e6f351aeeb

See more details on using hashes here.

File details

Details for the file airflow_ai_sdk-0.1.7-py3-none-any.whl.

File metadata

File hashes

Hashes for airflow_ai_sdk-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 1f843c4b41b0000f6102639775c35a07c8d90fe0fc00fb89cf2f3ab0b6b2ef7b
MD5 eba657f0ccd284327de843f2f060aac1
BLAKE2b-256 b454ebcd91278e8b67f48f6f6a857e006e9ddc5292d73d65dc6ff6d1eb526f2f

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