Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion providers/common/ai/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ PIP package Version required
``apache-airflow`` ``>=3.0.0``
``apache-airflow-providers-common-compat`` ``>=1.15.0``
``apache-airflow-providers-standard`` ``>=1.12.1``
``pydantic-ai-slim`` ``>=2.23.0``
``pydantic-ai-slim`` ``>=2.33.0``
========================================== ==================

Optional cross provider package dependencies
Expand Down
14 changes: 7 additions & 7 deletions providers/common/ai/docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ PIP package Version required
``apache-airflow`` ``>=3.0.0``
``apache-airflow-providers-common-compat`` ``>=1.15.0``
``apache-airflow-providers-standard`` ``>=1.12.1``
``pydantic-ai-slim`` ``>=2.23.0``
``pydantic-ai-slim`` ``>=2.33.0``
========================================== ==================

Optional cross provider package dependencies
Expand Down Expand Up @@ -284,12 +284,12 @@ Install them when installing from PyPI. For example:
============== =======================================================================================================================================
Extra Dependencies
============== =======================================================================================================================================
``anthropic`` ``pydantic-ai-slim[anthropic]>=2.23.0``, ``anthropic>=1.0.0``
``bedrock`` ``pydantic-ai-slim[bedrock]>=2.23.0``
``google`` ``pydantic-ai-slim[google]>=2.23.0``
``openai`` ``pydantic-ai-slim[openai]>=2.23.0``, ``openai>=2.45.0``
``anthropic`` ``pydantic-ai-slim[anthropic]>=2.33.0``, ``anthropic>=1.0.0``
``bedrock`` ``pydantic-ai-slim[bedrock]>=2.33.0``
``google`` ``pydantic-ai-slim[google]>=2.33.0``
``openai`` ``pydantic-ai-slim[openai]>=2.33.0``, ``openai>=2.47.0``
``typesafe`` ``typesafe-sdk>=0.6.0``
``mcp`` ``pydantic-ai-slim[mcp]>=2.23.0``
``mcp`` ``pydantic-ai-slim[mcp]>=2.33.0``
``modal`` ``modal>=1.5.0``
``code-mode`` ``pydantic-ai-harness[codemode]>=0.3.0``
``shields`` ``pydantic-ai-shields>=0.3.4``
Expand All @@ -299,7 +299,7 @@ Extra Dependencies
``sql`` ``apache-airflow-providers-common-sql>=1.33.0``, ``sqlglot>=30.0.0``
``common.sql`` ``apache-airflow-providers-common-sql>=1.33.0``
``langchain`` ``langchain>=1.0.0``
``llamaindex`` ``dataclasses-json>=0.6.7``, ``llama-index-core>=0.13.0``, ``llama-index-embeddings-openai>=0.6.0``, ``llama-index-llms-openai>=0.6.0``
``llamaindex`` ``dataclasses-json>=0.6.7``, ``llama-index-core>=0.14.5``, ``llama-index-embeddings-openai>=0.6.0``, ``llama-index-llms-openai>=0.6.8``
``pdf`` ``pypdf>=4.0.0``
``docx`` ``python-docx>=1.0.0``
``git`` ``apache-airflow-providers-git``
Expand Down
44 changes: 25 additions & 19 deletions providers/common/ai/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,32 +70,35 @@ dependencies = [
"apache-airflow>=3.0.0",
"apache-airflow-providers-common-compat>=1.15.0",
"apache-airflow-providers-standard>=1.12.1", # use next version
# Requires the pydantic-ai cost API (RunUsage.cost, UsageLimits.cost_limit),
# landed in 2.23.0 via https://github.com/pydantic/pydantic-ai/pull/2684.
"pydantic-ai-slim>=2.23.0",
# 2.33.0 is the first release that works with anthropic>=1: it moved to httpx2 alongside
# the SDK and stopped passing temperature/top_p/top_k as messages.create() kwargs, both
# of which raise TypeError on 2.31 and earlier. The cost API this provider relies on
# (RunUsage.cost, UsageLimits.cost_limit) landed earlier, in 2.23.0.
"pydantic-ai-slim>=2.33.0",
]

# The optional dependencies should be modified in place in the generated file
# Any change in the dependencies is preserved when the file is regenerated
[project.optional-dependencies]
# @task.llm_batch talks to the provider batch APIs through the vendor SDKs directly, since
# pydantic-ai has no batch abstraction. anthropic 1.0.0 is the first stable major; openai
# 2.45.0 is the floor pydantic-ai-slim[openai]>=2.23.0 already imposes.
"anthropic" = ["pydantic-ai-slim[anthropic]>=2.23.0", "anthropic>=1.0.0"]
"bedrock" = ["pydantic-ai-slim[bedrock]>=2.23.0"]
"google" = ["pydantic-ai-slim[google]>=2.23.0"]
"openai" = ["pydantic-ai-slim[openai]>=2.23.0", "openai>=2.45.0"]
# pydantic-ai has no batch abstraction. anthropic 1.0.0 is the first stable major. openai
# 2.47.0 is the first release that accepts the httpx2 client pydantic-ai-slim>=2.33 hands it
# (2.45 and 2.46 raise TypeError on it); pydantic-ai-slim[openai]>=2.33.0 itself asks for
# openai>=3, so this floor only matters where that requirement is overridden, as in this
# repository's lock.
"anthropic" = ["pydantic-ai-slim[anthropic]>=2.33.0", "anthropic>=1.0.0"]
"bedrock" = ["pydantic-ai-slim[bedrock]>=2.33.0"]
"google" = ["pydantic-ai-slim[google]>=2.33.0"]
"openai" = ["pydantic-ai-slim[openai]>=2.33.0", "openai>=2.47.0"]
# TypeSafe Jev: answers typed questions (pick one of N, a bounded score, a yes/no
# probability) and cannot emit text, so it fits a branch or a classification but not a
# summary. It arrives through pydantic-ai's own ``typesafe:`` provider, so the hook needs
# no changes -- setting ``model_id`` or the connection's Model field is the integration.
# The adapter itself ships inside pydantic-ai-slim from 2.45.0 (pydantic/pydantic-ai#8450);
# this extra only adds the pre-1.0 typesafe-sdk it talks to, which is why it is opt-in. It
# deliberately does not raise the pydantic-ai-slim floor: from 2.31 the ``openai`` extra
# needs openai>=3.8 while llama-index-llms-openai and the Google provider's litellm need
# openai<3, so a higher floor makes the workspace unsatisfiable. The guide says 2.45+.
# deliberately does not raise the pydantic-ai-slim floor to 2.45; the guide says 2.45+.
"typesafe" = ["typesafe-sdk>=0.6.0"]
"mcp" = ["pydantic-ai-slim[mcp]>=2.23.0"]
"mcp" = ["pydantic-ai-slim[mcp]>=2.33.0"]
# Modal-hosted sandboxes for SandboxToolset, the backend to use where the worker host
# cannot run microVMs -- Kubernetes, most notably. Needs no host-level installation,
# only Modal credentials.
Expand Down Expand Up @@ -133,11 +136,14 @@ dependencies = [
"langchain" = [
"langchain>=1.0.0",
]
# llama-index-llms-openai 0.6.8 is the first release that works with openai 2.x and whose
# metadata matches its imports (0.6.0 declares llama-index-core>=0.13.0 but needs the
# ThinkingBlock type core only gained in 0.14); it requires llama-index-core>=0.14.5.
"llamaindex" = [
"dataclasses-json>=0.6.7",
"llama-index-core>=0.13.0",
"llama-index-core>=0.14.5",
"llama-index-embeddings-openai>=0.6.0",
"llama-index-llms-openai>=0.6.0",
"llama-index-llms-openai>=0.6.8",
]
"pdf" = ["pypdf>=4.0.0"]
"docx" = ["python-docx>=1.0.0"]
Expand All @@ -156,16 +162,16 @@ dev = [
"apache-airflow-providers-standard",
# Additional devel dependencies (do not remove this line and add extra development dependencies)
"sqlglot>=30.0.0",
"pydantic-ai-slim[mcp]>=2.23.0",
"pydantic-ai-slim[mcp]>=2.33.0",
"pydantic-ai-skills>=1.2.0",
"apache-airflow-providers-common-sql[datafusion]",
"langchain>=1.0.0",
"llama-index-core>=0.13.0",
"llama-index-core>=0.14.5",
"llama-index-embeddings-openai>=0.6.0",
"llama-index-llms-openai>=0.6.0",
"llama-index-llms-openai>=0.6.8",
# @task.llm_batch's OpenAI/Anthropic adapters call these SDKs directly. The dev group
# needs them so the adapter tests, which build real SDK models, run instead of skipping.
"openai>=2.45.0",
"openai>=2.47.0",
"anthropic>=1.0.0",
]

Expand Down
11 changes: 11 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1442,6 +1442,17 @@ ci-image = [
# floor; `scripts/ci/prek/upgrade_important_versions.py` deliberately skips it.
required-version = ">=0.11.8"
no-build-isolation-package = ["sphinx-redoc"]
# pydantic-ai-slim[openai]>=2.33 declares openai>=3 (>=3.8 from 2.39), while
# llama-index-llms-openai (<=0.8.1) and litellm (<=1.102.0, pulled in by the Google provider's
# google-cloud-aiplatform[evaluation]) still cap openai below 3. Without this override the
# workspace lock cannot move pydantic-ai-slim past 2.31, which is incompatible with anthropic
# 1.x, so the Anthropic path could not run in the CI image at all. Holding openai on 2.x is the
# pairing constraints-main already ships and the one `pip check` in the image build accepts
# (pip ignores extra-gated requirements, but not llama-index's unconditional cap). pydantic-ai's
# OpenAI model works against openai 2.x at runtime; the declared floor tracks the SDK's httpx2
# move. Published wheels are unaffected: overrides only shape uv.lock and the CI image. Drop this
# once run-llama/llama_index#22939 and BerriAI/litellm#40317 land and both allow openai 3.
override-dependencies = ["openai>=2.47.0,<3"]
# Synchroonize with scripts/ci/prek/upgrade_important_versions.py
exclude-newer = "4 days"

Expand Down
42 changes: 21 additions & 21 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading