This is an automated email from the ASF dual-hosted git repository.

Lee-W pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 47056fe3804 Add quickstart to Anthropic provider (#69589)
47056fe3804 is described below

commit 47056fe3804efbb51da6b13630044bf11088b6d8
Author: Wei Lee <[email protected]>
AuthorDate: Wed Jul 8 17:53:54 2026 +0800

    Add quickstart to Anthropic provider (#69589)
---
 providers/anthropic/docs/index.rst                 |  1 +
 providers/anthropic/docs/quickstart.rst            | 87 ++++++++++++++++++++++
 .../providers/anthropic/example_dags/__init__.py   | 16 ++++
 .../anthropic/example_dags/example_batch.py        | 57 ++++++++++++++
 4 files changed, 161 insertions(+)

diff --git a/providers/anthropic/docs/index.rst 
b/providers/anthropic/docs/index.rst
index 582dbff0402..4fb3da029fd 100644
--- a/providers/anthropic/docs/index.rst
+++ b/providers/anthropic/docs/index.rst
@@ -34,6 +34,7 @@
     :maxdepth: 1
     :caption: Guides
 
+    Quick start <quickstart>
     Connection types <connections>
     Operators <operators/anthropic>
 
diff --git a/providers/anthropic/docs/quickstart.rst 
b/providers/anthropic/docs/quickstart.rst
new file mode 100644
index 00000000000..215621a7d1f
--- /dev/null
+++ b/providers/anthropic/docs/quickstart.rst
@@ -0,0 +1,87 @@
+ .. Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+ ..   http://www.apache.org/licenses/LICENSE-2.0
+
+ .. Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+.. _howto/quickstart:
+
+Quick start
+===========
+
+Go from zero to a submitted Claude batch in three steps: install the provider,
+configure a connection, and write a Dag around ``AnthropicBatchOperator``. This
+provider is built around the Message Batches API and Managed Agent sessions;
+for interactive, single-call LLM tasks, use 
``apache-airflow-providers-common-ai`` instead.
+
+1. Install
+----------
+
+.. code-block:: bash
+
+    pip install apache-airflow-providers-anthropic
+
+2. Configure the connection
+---------------------------
+
+Batches run through an Anthropic connection (``conn_type`` ``anthropic``,
+default connection id ``anthropic_default``). For the first-party API, put
+your Anthropic API key in the password field. See 
:ref:`howto/connection:anthropic`
+for the full reference, including the ``platform`` extra for running on
+Amazon Bedrock, Google Vertex AI, Claude Platform on AWS or Microsoft Foundry,
+and for keyless auth via Workload Identity Federation.
+
+The quickest way to set one up is an environment variable:
+
+.. code-block:: bash
+
+    export AIRFLOW_CONN_ANTHROPIC_DEFAULT='{"conn_type": "anthropic", 
"password": "sk-ant-..."}'
+
+Or add it through the Airflow UI (``Admin > Connections``) or the CLI 
(``airflow connections add``).
+
+3. Write your first Dag
+-----------------------
+
+``AnthropicBatchOperator`` submits a Message Batch — a list of
+``messages.create`` requests — and waits for it to reach a terminal status.
+A task retry resubmits a **new** batch, so set ``retries=0``:
+
+
+.. exampleinclude:: 
/../../anthropic/src/airflow/providers/anthropic/example_dags/example_batch.py
+    :language: python
+    :start-after: [START quickstart_batch]
+    :end-before: [END quickstart_batch]
+
+
+Run it like any other Dag (``airflow dags test quickstart_batch``). The task
+pushes the batch ID to XCom under key ``batch_id`` as soon as it submits, and
+returns it once the batch reaches ``ended``. Pull the per-request results with
+:meth:`~airflow.providers.anthropic.hooks.anthropic.AnthropicHook.stream_batch_results`
+and write them to object storage — results can be very large and must not be
+pushed to XCom.
+
+Where to go next
+----------------
+
+- :doc:`operators/anthropic` — full parameter reference for
+  ``AnthropicBatchOperator``, ``AnthropicBatchSensor`` (poll an
+  already-submitted batch without resubmitting on retry) and
+  ``AnthropicAgentSessionOperator`` (Anthropic-hosted Managed Agent sessions).
+- :doc:`connections` — the ``platform`` extra (bedrock, vertex, aws, foundry)
+  and Workload Identity Federation for keyless auth.
+- For interactive, single-call or agentic LLM workloads, prefer the
+  vendor-agnostic ``apache-airflow-providers-common-ai`` provider with
+  ``model="anthropic:claude-opus-4-8"``; this provider focuses on the
+  batch/async surface and direct SDK access that the agent abstraction does
+  not model.
diff --git 
a/providers/anthropic/src/airflow/providers/anthropic/example_dags/__init__.py 
b/providers/anthropic/src/airflow/providers/anthropic/example_dags/__init__.py
new file mode 100644
index 00000000000..13a83393a91
--- /dev/null
+++ 
b/providers/anthropic/src/airflow/providers/anthropic/example_dags/__init__.py
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
diff --git 
a/providers/anthropic/src/airflow/providers/anthropic/example_dags/example_batch.py
 
b/providers/anthropic/src/airflow/providers/anthropic/example_dags/example_batch.py
new file mode 100644
index 00000000000..3f3b4117a24
--- /dev/null
+++ 
b/providers/anthropic/src/airflow/providers/anthropic/example_dags/example_batch.py
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# [START quickstart_batch]
+from __future__ import annotations
+
+from airflow.providers.anthropic.operators.batch import AnthropicBatchOperator
+from airflow.sdk import dag
+
+
+@dag(tags=["example"])
+def quickstart_batch():
+    AnthropicBatchOperator(
+        task_id="submit_batch",
+        requests=[
+            {
+                "custom_id": "summary-1",
+                "params": {
+                    "model": "claude-opus-4-8",
+                    "max_tokens": 1024,
+                    "messages": [
+                        {"role": "user", "content": "Summarize the plot of 
Hamlet in two sentences."}
+                    ],
+                },
+            },
+            {
+                "custom_id": "summary-2",
+                "params": {
+                    "model": "claude-opus-4-8",
+                    "max_tokens": 1024,
+                    "messages": [
+                        {"role": "user", "content": "Summarize the plot of 
Macbeth in two sentences."}
+                    ],
+                },
+            },
+        ],
+        wait_for_completion=True,
+        retries=0,
+    )
+
+
+quickstart_batch()
+# [END quickstart_batch]

Reply via email to