diff --git a/README.md b/README.md index 125297ec..0eba8034 100644 --- a/README.md +++ b/README.md @@ -53,14 +53,14 @@ BRAINTRUST_API_KEY= braintrust eval tutorial_eval.py | [Anthropic](py/src/braintrust/integrations/anthropic/) | Yes | `anthropic>=0.48.0` | | [LiteLLM](py/src/braintrust/integrations/litellm/) | Yes | `litellm>=1.74.0` | | [Pydantic AI](py/src/braintrust/integrations/pydantic_ai/) | Yes | `pydantic_ai>=1.10.0` | -| [Google GenAI](py/src/braintrust/integrations/google_genai/) | Yes | latest tested in CI | +| [Google GenAI](py/src/braintrust/integrations/google_genai/) | Yes | `google-genai>=1.30.0` | | [Google ADK](py/src/braintrust/integrations/adk/) | Yes | `google-adk>=1.14.1` | | [LangChain](py/src/braintrust/integrations/langchain/) | Yes | `langchain-core>=0.3.28` | | [OpenRouter](py/src/braintrust/integrations/openrouter/) | Yes | `openrouter>=0.6.0` | | [Agno](py/src/braintrust/integrations/agno/) | Yes | `agno>=2.1.0` | | [AgentScope](py/src/braintrust/integrations/agentscope/) | Yes | `agentscope>=1.0.0` | | [Claude Agent SDK](py/src/braintrust/integrations/claude_agent_sdk/) | Yes | `claude_agent_sdk>=0.1.10` | -| [DSPy](py/src/braintrust/integrations/dspy/) | Yes | latest tested in CI | +| [DSPy](py/src/braintrust/integrations/dspy/) | Yes | `dspy>=2.6.0` | | [pytest plugin](py/src/braintrust/wrappers/pytest_plugin/README.md) | No | `pytest>=8` | ## Documentation diff --git a/py/noxfile.py b/py/noxfile.py index 6edec440..05dcf9c1 100644 --- a/py/noxfile.py +++ b/py/noxfile.py @@ -102,8 +102,12 @@ def _pinned_python_version(): PYDANTIC_AI_INTEGRATION_VERSIONS = (LATEST, "1.10.0") AUTOEVALS_VERSIONS = (LATEST, "0.0.129") -GENAI_VERSIONS = (LATEST,) -DSPY_VERSIONS = (LATEST,) +# google-genai 1.29.0 has a broken async streaming path unless aiohttp is installed. +# 1.30.0 is the earliest version that passes our standard integration test session. +GENAI_VERSIONS = (LATEST, "1.30.0") +# dspy 2.6.0 is the earliest version that matches the callback/settings APIs our +# integration and tests rely on. +DSPY_VERSIONS = (LATEST, "2.6.0") GOOGLE_ADK_VERSIONS = (LATEST, "1.14.1") LANGCHAIN_VERSIONS = (LATEST, "0.3.28") OPENROUTER_VERSIONS = (LATEST, "0.6.0") diff --git a/py/src/braintrust/integrations/dspy/integration.py b/py/src/braintrust/integrations/dspy/integration.py index 8129c86c..57c3f4f8 100644 --- a/py/src/braintrust/integrations/dspy/integration.py +++ b/py/src/braintrust/integrations/dspy/integration.py @@ -10,4 +10,5 @@ class DSPyIntegration(BaseIntegration): name = "dspy" import_names = ("dspy",) + min_version = "2.6.0" patchers = (DSPyConfigurePatcher,) diff --git a/py/src/braintrust/integrations/google_genai/integration.py b/py/src/braintrust/integrations/google_genai/integration.py index 48faf088..3b9365e9 100644 --- a/py/src/braintrust/integrations/google_genai/integration.py +++ b/py/src/braintrust/integrations/google_genai/integration.py @@ -24,6 +24,7 @@ class GoogleGenAIIntegration(BaseIntegration): name = "google_genai" import_names = ("google.genai",) + min_version = "1.30.0" patchers = ( ModelsGenerateContentPatcher, ModelsGenerateContentStreamPatcher,