langfun 0.1.2.dev202512150805__tar.gz → 0.1.2.dev202512260805__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of langfun might be problematic. Click here for more details.
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/PKG-INFO +1 -1
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action.py +2 -3
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/checkpointing.py +4 -5
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/experiment.py +16 -4
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/progress.py +16 -11
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/reporting.py +1 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/base.py +1 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/__init__.py +4 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/anthropic.py +59 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/gemini.py +26 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/google_genai.py +6 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/vertexai.py +13 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun.egg-info/PKG-INFO +1 -1
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/LICENSE +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/README.md +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/bounding_box_parser.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/bounding_box_parser_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/drawing.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/drawing_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/location.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/assistant/capabilities/gui/location_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action_eval.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action_eval_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/async_support.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/async_support_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/correction.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/correction_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/execution.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/execution_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/generation.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/generation_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/parsing.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/parsing_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/sandboxing.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/python/sandboxing_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/component.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/component_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/concurrent.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/concurrent_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/console.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/console_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/anthropic.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/gemini.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/gemini_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/openai.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/conversion/openai_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/base.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/base_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/matching.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/matching_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/patching.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/patching_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/scoring.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/scoring_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/checkpointing_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/config_saver.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/config_saver_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/eval_test_helper.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/evaluation.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/evaluation_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/example.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/example_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/experiment_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metric_values.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metric_values_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metrics.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metrics_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/progress_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/progress_tracking.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/reporting_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/beam.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/beam_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/ckpt_monitor.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/ckpt_monitor_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/debug.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/debug_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/parallel.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/parallel_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/sequential.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/sequential_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/langfunc.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/langfunc_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/language_model.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/language_model_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/azure_openai.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/azure_openai_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/base.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/in_memory.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/in_memory_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/compositional.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/compositional_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/deepseek.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/deepseek_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/fake.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/fake_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/gemini_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/google_genai_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/groq.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/groq_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/llama_cpp.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/llama_cpp_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/openai.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/openai_compatible.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/openai_compatible_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/openai_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/rest.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/rest_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/vertexai_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/logging.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/logging_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/client.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/client_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/session.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/session_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/testing/simple_mcp_client.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/testing/simple_mcp_server.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/tool.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/mcp/tool_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/memories/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/memories/conversation_history.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/memories/conversation_history_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/memory.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/message.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/message_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/audio.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/audio_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/image.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/image_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/mime.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/mime_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/pdf.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/pdf_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/video.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modalities/video_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modality.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/modality_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/natural_language.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/natural_language_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/sampling.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/sampling_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/completion.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/completion_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/description.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/description_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/function_generation.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/function_generation_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/mapping.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/mapping_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/parsing.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/parsing_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/querying.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/querying_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/base.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/base_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/json.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/json_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/python.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema/python_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema_generation.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/schema_generation_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/scoring.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/scoring_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/tokenization.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/structured/tokenization_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/subscription.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/subscription_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/template.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/template_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/completion.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/completion_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/conversation.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/conversation_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/demonstration.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/demonstration_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/selfplay.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/templates/selfplay_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_environment.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_environment_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_feature.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_feature_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_sandbox.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/base_sandbox_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/__init__.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/chain.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/chain_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/event_logger.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/event_logger_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/metric_writer.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/event_handlers/metric_writer_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/interface.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/interface_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/load_balancers.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/load_balancers_test.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/env/test_utils.py +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun.egg-info/SOURCES.txt +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun.egg-info/dependency_links.txt +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun.egg-info/requires.txt +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun.egg-info/top_level.txt +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/setup.cfg +0 -0
- {langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/setup.py +0 -0
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action.py
RENAMED
|
@@ -288,6 +288,8 @@ class Action(pg.Object):
|
|
|
288
288
|
|
|
289
289
|
with session.track_action(self, max_execution_time=max_execution_time):
|
|
290
290
|
try:
|
|
291
|
+
# Early terminate the action if the execution time is exceeded.
|
|
292
|
+
session.check_execution_time()
|
|
291
293
|
result = self.call(session=session, **kwargs)
|
|
292
294
|
self._invocation.end(result)
|
|
293
295
|
except BaseException as e:
|
|
@@ -2005,9 +2007,6 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
2005
2007
|
'signal the start and end of the session.'
|
|
2006
2008
|
)
|
|
2007
2009
|
|
|
2008
|
-
# Early terminate the action if the execution time is exceeded.
|
|
2009
|
-
self.check_execution_time()
|
|
2010
|
-
|
|
2011
2010
|
invocation = ActionInvocation(
|
|
2012
2011
|
pg.maybe_ref(action),
|
|
2013
2012
|
max_execution_time=self._child_max_execution_time(max_execution_time)
|
|
@@ -122,7 +122,7 @@ class Checkpointer(experiment_lib.Plugin):
|
|
|
122
122
|
example: Example,
|
|
123
123
|
) -> None:
|
|
124
124
|
"""Saves the example to the checkpoint file."""
|
|
125
|
-
if example.newly_processed:
|
|
125
|
+
if example.newly_processed or runner.current_run.force_recompute_metrics:
|
|
126
126
|
self._save_example(runner, experiment, example)
|
|
127
127
|
|
|
128
128
|
def _load_experiment(
|
|
@@ -173,9 +173,9 @@ class Checkpointer(experiment_lib.Plugin):
|
|
|
173
173
|
output_ckpt_file = current_run.output_path_for(
|
|
174
174
|
experiment, os.path.basename(ckpt_file)
|
|
175
175
|
)
|
|
176
|
-
if
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
if (not runner.current_run.force_recompute_metrics
|
|
177
|
+
and ckpt_file != output_ckpt_file
|
|
178
|
+
and any(e for e in loaded_examples if not e.has_error)):
|
|
179
179
|
# Write the error-free warm-start examples to the output checkpoint
|
|
180
180
|
# file.
|
|
181
181
|
with SequenceWriter(output_ckpt_file) as writer:
|
|
@@ -373,7 +373,6 @@ class BulkCheckpointer(Checkpointer):
|
|
|
373
373
|
)
|
|
374
374
|
if pg.io.path_exists(input_ckpt_file):
|
|
375
375
|
return [input_ckpt_file]
|
|
376
|
-
print('CCC', experiment.hash, [])
|
|
377
376
|
return []
|
|
378
377
|
|
|
379
378
|
def on_experiment_complete(
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/experiment.py
RENAMED
|
@@ -376,23 +376,24 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
|
|
|
376
376
|
def run(
|
|
377
377
|
self,
|
|
378
378
|
root_dir: str,
|
|
379
|
-
id: str | None = None,
|
|
379
|
+
id: str | None = None, # pylint: disable=redefined-builtin
|
|
380
380
|
*,
|
|
381
381
|
runner: str = 'parallel',
|
|
382
382
|
warm_start_from: str | None = None,
|
|
383
|
-
filter: Callable[['Experiment'], bool] | None = None,
|
|
383
|
+
filter: Callable[['Experiment'], bool] | None = None, # pylint: disable=redefined-builtin
|
|
384
384
|
example_ids: list[int] | None = None,
|
|
385
385
|
shuffle_inputs: bool = False,
|
|
386
386
|
raise_if_has_error: bool = False,
|
|
387
387
|
reevaluate_upon_previous_errors: bool = True,
|
|
388
388
|
reprocess: bool | list[int] = False,
|
|
389
|
+
force_recompute_metrics: bool = False,
|
|
389
390
|
generate_example_html: Literal['new', 'all', 'no'] | list[int] = 'new',
|
|
390
391
|
process_timeout: int | None = None,
|
|
391
392
|
use_cache: Literal['global', 'per_dataset', 'no'] = 'per_dataset',
|
|
392
393
|
note: str | None = None,
|
|
393
394
|
tags: list[str] | None = None,
|
|
394
395
|
plugins: list['Plugin'] | None = None,
|
|
395
|
-
**kwargs
|
|
396
|
+
**kwargs,
|
|
396
397
|
) -> 'Run':
|
|
397
398
|
"""Runs the experiment.
|
|
398
399
|
|
|
@@ -445,6 +446,8 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
|
|
|
445
446
|
meaning that existing checkpoints will be ignored. If a list of
|
|
446
447
|
example IDs, it indicates that only the specified examples will be
|
|
447
448
|
reprocessed.
|
|
449
|
+
force_recompute_metrics: If True, it will recompute the metrics for all
|
|
450
|
+
examples, even if the previous checkpoints have metric metadata.
|
|
448
451
|
generate_example_html: Among 'new', 'all', 'no' or a list of example IDs.
|
|
449
452
|
If 'new', generate HTML files for all newly processed examples, and
|
|
450
453
|
keep/copy existing HTML files for unchanged examples.
|
|
@@ -481,6 +484,7 @@ class Experiment(lf.Component, pg.views.HtmlTreeView.Extension):
|
|
|
481
484
|
raise_if_has_error=raise_if_has_error,
|
|
482
485
|
reevaluate_upon_previous_errors=reevaluate_upon_previous_errors,
|
|
483
486
|
reprocess=reprocess,
|
|
487
|
+
force_recompute_metrics=force_recompute_metrics,
|
|
484
488
|
generate_example_html=generate_example_html,
|
|
485
489
|
use_cache=use_cache,
|
|
486
490
|
process_timeout=process_timeout,
|
|
@@ -884,6 +888,14 @@ class Run(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
884
888
|
)
|
|
885
889
|
] = True
|
|
886
890
|
|
|
891
|
+
force_recompute_metrics: Annotated[
|
|
892
|
+
bool,
|
|
893
|
+
(
|
|
894
|
+
'If True, force recompute the metrics even if metric metadata is '
|
|
895
|
+
'already present from previous checkpoint.'
|
|
896
|
+
)
|
|
897
|
+
] = False
|
|
898
|
+
|
|
887
899
|
note: Annotated[
|
|
888
900
|
str | None,
|
|
889
901
|
'The user note for the current run.'
|
|
@@ -1003,7 +1015,7 @@ class Run(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
1003
1015
|
load_metadata_ids = set()
|
|
1004
1016
|
if isinstance(self.generate_example_html, list):
|
|
1005
1017
|
load_metadata_ids = set(self.generate_example_html)
|
|
1006
|
-
elif self.generate_example_html == 'all':
|
|
1018
|
+
elif self.generate_example_html == 'all' or self.force_recompute_metrics:
|
|
1007
1019
|
load_metadata_ids = self.examples_to_evaluate(experiment)
|
|
1008
1020
|
load_metadata_ids -= self.examples_to_reprocess(experiment)
|
|
1009
1021
|
return load_metadata_ids
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/progress.py
RENAMED
|
@@ -227,7 +227,11 @@ class Progress(pg.Object, pg.views.HtmlTreeView.Extension):
|
|
|
227
227
|
|
|
228
228
|
def merge_from(self, other: 'Progress') -> None:
|
|
229
229
|
"""Merges the progress from another progress."""
|
|
230
|
-
with
|
|
230
|
+
with (
|
|
231
|
+
self._lock,
|
|
232
|
+
pg.notify_on_change(False),
|
|
233
|
+
pg.allow_writable_accessors(True)
|
|
234
|
+
):
|
|
231
235
|
if other.start_time is not None and (
|
|
232
236
|
self.start_time is None or self.start_time > other.start_time):
|
|
233
237
|
self.start_time = other.start_time
|
|
@@ -268,16 +272,17 @@ class Progress(pg.Object, pg.views.HtmlTreeView.Extension):
|
|
|
268
272
|
stop_time=self.stop_time_str,
|
|
269
273
|
)
|
|
270
274
|
if self.execution_summary:
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
275
|
+
with self._lock:
|
|
276
|
+
time_info['execution'] = pg.Dict(
|
|
277
|
+
{
|
|
278
|
+
k: pg.Dict(
|
|
279
|
+
num_started=v.num_started,
|
|
280
|
+
num_ended=v.num_ended,
|
|
281
|
+
num_failed=v.num_failed,
|
|
282
|
+
avg_duration=round(v.avg_duration, 2),
|
|
283
|
+
) for k, v in self.execution_summary.breakdown.items()
|
|
284
|
+
}
|
|
285
|
+
)
|
|
281
286
|
return pg.format(time_info, verbose=False)
|
|
282
287
|
|
|
283
288
|
def _html_tree_view(
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/reporting.py
RENAMED
|
@@ -99,6 +99,7 @@ class ExampleHtmlGenerator(experiment_lib.Plugin):
|
|
|
99
99
|
|
|
100
100
|
generate_example_html = current_run.generate_example_html
|
|
101
101
|
if (generate_example_html == 'all'
|
|
102
|
+
or runner.current_run.force_recompute_metrics
|
|
102
103
|
or (generate_example_html == 'new' and example.newly_processed)
|
|
103
104
|
or (isinstance(generate_example_html, list)
|
|
104
105
|
and example.id in generate_example_html)):
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/base.py
RENAMED
|
@@ -396,6 +396,7 @@ class RunnerBase(Runner):
|
|
|
396
396
|
item,
|
|
397
397
|
raise_if_has_error=self.current_run.raise_if_has_error,
|
|
398
398
|
reevaluate_upon_previous_errors=self.current_run.reevaluate_upon_previous_errors,
|
|
399
|
+
force_recompute_metrics=self.current_run.force_recompute_metrics,
|
|
399
400
|
)
|
|
400
401
|
self.on_example_complete(evaluation, item)
|
|
401
402
|
return item
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/__init__.py
RENAMED
|
@@ -43,6 +43,7 @@ from langfun.core.llms.azure_openai import AzureOpenAI
|
|
|
43
43
|
# Gemini models.
|
|
44
44
|
from langfun.core.llms.google_genai import GenAI
|
|
45
45
|
from langfun.core.llms.google_genai import Gemini3ProPreview
|
|
46
|
+
from langfun.core.llms.google_genai import Gemini3FlashPreview
|
|
46
47
|
from langfun.core.llms.google_genai import Gemini25Pro
|
|
47
48
|
from langfun.core.llms.google_genai import Gemini25Flash
|
|
48
49
|
from langfun.core.llms.google_genai import Gemini25ProPreview_20250605
|
|
@@ -94,6 +95,7 @@ from langfun.core.llms.vertexai import VertexAIGemini25Flash
|
|
|
94
95
|
from langfun.core.llms.vertexai import VertexAIGemini25FlashImagePreview
|
|
95
96
|
from langfun.core.llms.vertexai import VertexAIGemini3ProPreview
|
|
96
97
|
from langfun.core.llms.vertexai import VertexAIGemini3ProImagePreview
|
|
98
|
+
from langfun.core.llms.vertexai import VertexAIGemini3FlashPreview
|
|
97
99
|
|
|
98
100
|
# For backward compatibility.
|
|
99
101
|
GeminiPro1_5 = Gemini15Pro
|
|
@@ -160,6 +162,7 @@ from langfun.core.llms.openai import Gpt35
|
|
|
160
162
|
from langfun.core.llms.anthropic import Claude45
|
|
161
163
|
from langfun.core.llms.anthropic import Claude45Haiku_20251001
|
|
162
164
|
from langfun.core.llms.anthropic import Claude45Sonnet_20250929
|
|
165
|
+
from langfun.core.llms.anthropic import Claude45Opus_20251101
|
|
163
166
|
from langfun.core.llms.anthropic import Claude4
|
|
164
167
|
from langfun.core.llms.anthropic import Claude4Sonnet_20250514
|
|
165
168
|
from langfun.core.llms.anthropic import Claude4Opus_20250514
|
|
@@ -179,6 +182,7 @@ from langfun.core.llms.anthropic import Claude3Haiku_20240307
|
|
|
179
182
|
from langfun.core.llms.vertexai import VertexAIAnthropic
|
|
180
183
|
from langfun.core.llms.vertexai import VertexAIClaude45Haiku_20251001
|
|
181
184
|
from langfun.core.llms.vertexai import VertexAIClaude45Sonnet_20250929
|
|
185
|
+
from langfun.core.llms.vertexai import VertexAIClaude45Opus_20251101
|
|
182
186
|
from langfun.core.llms.vertexai import VertexAIClaude4Opus_20250514
|
|
183
187
|
from langfun.core.llms.vertexai import VertexAIClaude4Sonnet_20250514
|
|
184
188
|
from langfun.core.llms.vertexai import VertexAIClaude37Sonnet_20250219
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/anthropic.py
RENAMED
|
@@ -113,6 +113,32 @@ SUPPORTED_MODELS = [
|
|
|
113
113
|
max_output_tokens_per_minute=400_000,
|
|
114
114
|
),
|
|
115
115
|
),
|
|
116
|
+
AnthropicModelInfo(
|
|
117
|
+
model_id='claude-opus-4-5-20251101',
|
|
118
|
+
provider='Anthropic',
|
|
119
|
+
in_service=True,
|
|
120
|
+
description='Claude 4.5 Opus model (11/01/2025).',
|
|
121
|
+
release_date=datetime.datetime(2025, 11, 1),
|
|
122
|
+
input_modalities=(
|
|
123
|
+
AnthropicModelInfo.INPUT_IMAGE_TYPES
|
|
124
|
+
+ AnthropicModelInfo.INPUT_DOC_TYPES
|
|
125
|
+
),
|
|
126
|
+
context_length=lf.ModelInfo.ContextLength(
|
|
127
|
+
max_input_tokens=200_000,
|
|
128
|
+
max_output_tokens=64_000,
|
|
129
|
+
),
|
|
130
|
+
pricing=lf.ModelInfo.Pricing(
|
|
131
|
+
cost_per_1m_cached_input_tokens=0.5,
|
|
132
|
+
cost_per_1m_input_tokens=5,
|
|
133
|
+
cost_per_1m_output_tokens=25,
|
|
134
|
+
),
|
|
135
|
+
rate_limits=AnthropicModelInfo.RateLimits(
|
|
136
|
+
# Tier 4 rate limits
|
|
137
|
+
max_requests_per_minute=2000,
|
|
138
|
+
max_input_tokens_per_minute=1_000_000,
|
|
139
|
+
max_output_tokens_per_minute=400_000,
|
|
140
|
+
),
|
|
141
|
+
),
|
|
116
142
|
AnthropicModelInfo(
|
|
117
143
|
model_id='claude-4-opus-20250514',
|
|
118
144
|
provider='Anthropic',
|
|
@@ -300,6 +326,32 @@ SUPPORTED_MODELS = [
|
|
|
300
326
|
max_output_tokens_per_minute=0,
|
|
301
327
|
),
|
|
302
328
|
),
|
|
329
|
+
AnthropicModelInfo(
|
|
330
|
+
model_id='claude-opus-4-5@20251101',
|
|
331
|
+
alias_for='claude-opus-4-5-20251101',
|
|
332
|
+
provider='VertexAI',
|
|
333
|
+
in_service=True,
|
|
334
|
+
description='Claude 4.5 Opus model served on VertexAI (11/01/2025).',
|
|
335
|
+
release_date=datetime.datetime(2025, 11, 1),
|
|
336
|
+
input_modalities=(
|
|
337
|
+
AnthropicModelInfo.INPUT_IMAGE_TYPES
|
|
338
|
+
+ AnthropicModelInfo.INPUT_DOC_TYPES
|
|
339
|
+
),
|
|
340
|
+
context_length=lf.ModelInfo.ContextLength(
|
|
341
|
+
max_input_tokens=200_000,
|
|
342
|
+
max_output_tokens=64_000,
|
|
343
|
+
),
|
|
344
|
+
pricing=lf.ModelInfo.Pricing(
|
|
345
|
+
cost_per_1m_cached_input_tokens=0.5,
|
|
346
|
+
cost_per_1m_input_tokens=5,
|
|
347
|
+
cost_per_1m_output_tokens=25,
|
|
348
|
+
),
|
|
349
|
+
rate_limits=AnthropicModelInfo.RateLimits(
|
|
350
|
+
max_requests_per_minute=100,
|
|
351
|
+
max_input_tokens_per_minute=1_000_000,
|
|
352
|
+
max_output_tokens_per_minute=80_000,
|
|
353
|
+
),
|
|
354
|
+
),
|
|
303
355
|
AnthropicModelInfo(
|
|
304
356
|
model_id='claude-opus-4@20250514',
|
|
305
357
|
alias_for='claude-opus-4-20250514',
|
|
@@ -834,6 +886,13 @@ class Claude45Sonnet_20250929(Claude45):
|
|
|
834
886
|
model = 'claude-sonnet-4-5-20250929'
|
|
835
887
|
|
|
836
888
|
|
|
889
|
+
# pylint: disable=invalid-name
|
|
890
|
+
class Claude45Opus_20251101(Claude45):
|
|
891
|
+
"""Claude 4.5 Opus model 20251101."""
|
|
892
|
+
|
|
893
|
+
model = 'claude-opus-4-5-20251101'
|
|
894
|
+
|
|
895
|
+
|
|
837
896
|
class Claude4(Anthropic):
|
|
838
897
|
"""Base class for Claude 4 models."""
|
|
839
898
|
|
|
@@ -200,6 +200,32 @@ SUPPORTED_MODELS = [
|
|
|
200
200
|
max_tokens_per_minute=1_000_000,
|
|
201
201
|
),
|
|
202
202
|
),
|
|
203
|
+
# Gemini 3 Flash Preview
|
|
204
|
+
GeminiModelInfo(
|
|
205
|
+
model_id='gemini-3-flash-preview',
|
|
206
|
+
in_service=True,
|
|
207
|
+
provider=pg.oneof(['Google GenAI', 'VertexAI']),
|
|
208
|
+
model_type='instruction-tuned',
|
|
209
|
+
description=(
|
|
210
|
+
'Gemini 3 Flash Preview: High-efficiency, low-latency multimodal'
|
|
211
|
+
' model optimized for agentic workflows.'
|
|
212
|
+
),
|
|
213
|
+
release_date=datetime.datetime(2025, 12, 17),
|
|
214
|
+
input_modalities=GeminiModelInfo.ALL_SUPPORTED_INPUT_TYPES,
|
|
215
|
+
context_length=lf.ModelInfo.ContextLength(
|
|
216
|
+
max_input_tokens=1_048_576,
|
|
217
|
+
max_output_tokens=65_536,
|
|
218
|
+
),
|
|
219
|
+
pricing=GeminiModelInfo.Pricing(
|
|
220
|
+
cost_per_1m_cached_input_tokens=0.05,
|
|
221
|
+
cost_per_1m_input_tokens=0.50,
|
|
222
|
+
cost_per_1m_output_tokens=3.00,
|
|
223
|
+
),
|
|
224
|
+
rate_limits=lf.ModelInfo.RateLimits(
|
|
225
|
+
max_requests_per_minute=2_000,
|
|
226
|
+
max_tokens_per_minute=4_000_000,
|
|
227
|
+
),
|
|
228
|
+
),
|
|
203
229
|
# Gemini 2.5 Flash
|
|
204
230
|
GeminiModelInfo(
|
|
205
231
|
model_id='gemini-2.5-flash',
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/google_genai.py
RENAMED
|
@@ -143,6 +143,12 @@ class Gemini3ProImagePreview(GenAI):
|
|
|
143
143
|
response_modalities = ['TEXT', 'IMAGE']
|
|
144
144
|
|
|
145
145
|
|
|
146
|
+
class Gemini3FlashPreview(GenAI):
|
|
147
|
+
"""Gemini 3 Flash Preview model."""
|
|
148
|
+
|
|
149
|
+
model = 'gemini-3-flash-preview'
|
|
150
|
+
|
|
151
|
+
|
|
146
152
|
class Gemini25FlashImagePreview(GenAI):
|
|
147
153
|
"""Gemini 2.5 Flash Image Preview model."""
|
|
148
154
|
model = 'gemini-2.5-flash-image-preview'
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/vertexai.py
RENAMED
|
@@ -240,6 +240,13 @@ class VertexAIGemini3ProImagePreview(VertexAIGemini): # pylint: disable=invalid
|
|
|
240
240
|
response_modalities = ['TEXT', 'IMAGE']
|
|
241
241
|
|
|
242
242
|
|
|
243
|
+
class VertexAIGemini3FlashPreview(VertexAIGemini): # pylint: disable=invalid-name
|
|
244
|
+
"""Gemini 3 Flash Preview model launched on 12/17/2025."""
|
|
245
|
+
|
|
246
|
+
model = 'gemini-3-flash-preview'
|
|
247
|
+
location = 'global'
|
|
248
|
+
|
|
249
|
+
|
|
243
250
|
class VertexAIGemini25Pro(VertexAIGemini): # pylint: disable=invalid-name
|
|
244
251
|
"""Gemini 2.5 Pro GA model launched on 06/17/2025."""
|
|
245
252
|
|
|
@@ -439,6 +446,12 @@ class VertexAIClaude45Sonnet_20250929(VertexAIAnthropic):
|
|
|
439
446
|
model = 'claude-sonnet-4-5@20250929'
|
|
440
447
|
|
|
441
448
|
|
|
449
|
+
class VertexAIClaude45Opus_20251101(VertexAIAnthropic):
|
|
450
|
+
"""Anthropic's Claude 4.5 Opus model on VertexAI."""
|
|
451
|
+
|
|
452
|
+
model = 'claude-opus-4-5@20251101'
|
|
453
|
+
|
|
454
|
+
|
|
442
455
|
class VertexAIClaude4Opus_20250514(VertexAIAnthropic):
|
|
443
456
|
"""Anthropic's Claude 4 Opus model on VertexAI."""
|
|
444
457
|
model = 'claude-opus-4@20250514'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/__init__.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action_eval.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/agentic/action_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/async_support.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/async_support_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/coding/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/component_test.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/concurrent_test.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/console_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/data/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/base_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/matching.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/matching_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/patching.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/patching_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/scoring.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/scoring_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/config_saver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/evaluation.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/example.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/example_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metrics.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/metrics_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/eval/v2/runners/beam.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/langfunc_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/language_model.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/language_model_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/anthropic_test.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/azure_openai.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/__init__.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/base.py
RENAMED
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/cache/in_memory.py
RENAMED
|
File without changes
|
|
File without changes
|
{langfun-0.1.2.dev202512150805 → langfun-0.1.2.dev202512260805}/langfun/core/llms/compositional.py
RENAMED
|
File without changes
|