langfun 0.1.2.dev202510280805__tar.gz → 0.1.2.dev202510300805__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.dev202510280805 → langfun-0.1.2.dev202510300805}/PKG-INFO +1 -1
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action.py +31 -3
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action_test.py +25 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/gemini.py +3 -3
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/__init__.py +4 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/base_environment.py +247 -105
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/base_feature.py +15 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/base_sandbox.py +47 -240
- langfun-0.1.2.dev202510300805/langfun/env/base_test.py +1691 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/event_logger_test.py +2 -2
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/metric_writer.py +49 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/metric_writer_test.py +19 -2
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/interface.py +197 -13
- langfun-0.1.2.dev202510300805/langfun/env/interface_test.py +122 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/load_balancers_test.py +19 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/test_utils.py +10 -7
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun.egg-info/PKG-INFO +1 -1
- langfun-0.1.2.dev202510280805/langfun/env/base_test.py +0 -1481
- langfun-0.1.2.dev202510280805/langfun/env/interface_test.py +0 -43
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/LICENSE +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/README.md +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/bounding_box_parser.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/bounding_box_parser_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/drawing.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/drawing_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/location.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/assistant/capabilities/gui/location_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action_eval.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action_eval_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/async_support.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/async_support_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/correction.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/correction_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/execution.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/execution_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/generation.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/generation_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/parsing.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/parsing_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/sandboxing.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/coding/python/sandboxing_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/component.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/component_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/concurrent.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/concurrent_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/console.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/console_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/anthropic.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/gemini.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/gemini_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/openai.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/data/conversion/openai_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/base.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/base_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/matching.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/matching_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/patching.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/patching_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/scoring.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/scoring_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/checkpointing.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/checkpointing_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/eval_test_helper.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/evaluation.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/evaluation_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/example.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/example_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/experiment.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/experiment_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/metric_values.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/metric_values_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/metrics.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/metrics_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/progress.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/progress_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/progress_tracking.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/reporting.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/reporting_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/runners.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/eval/v2/runners_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/langfunc.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/langfunc_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/language_model.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/language_model_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/anthropic.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/azure_openai.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/azure_openai_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/cache/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/cache/base.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/cache/in_memory.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/cache/in_memory_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/compositional.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/compositional_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/deepseek.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/deepseek_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/fake.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/fake_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/gemini_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/google_genai.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/google_genai_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/groq.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/groq_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/llama_cpp.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/llama_cpp_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/openai.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/openai_compatible.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/openai_compatible_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/openai_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/rest.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/rest_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/vertexai.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/llms/vertexai_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/logging.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/logging_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/client.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/client_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/session.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/session_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/testing/simple_mcp_client.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/testing/simple_mcp_server.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/tool.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/mcp/tool_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/memories/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/memories/conversation_history.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/memories/conversation_history_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/memory.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/message.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/message_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/audio.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/audio_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/image.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/image_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/mime.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/mime_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/pdf.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/pdf_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/video.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modalities/video_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modality.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/modality_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/natural_language.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/natural_language_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/sampling.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/sampling_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/completion.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/completion_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/description.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/description_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/function_generation.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/function_generation_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/mapping.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/mapping_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/parsing.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/parsing_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/querying.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/querying_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/schema.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/schema_generation.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/schema_generation_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/schema_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/scoring.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/scoring_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/tokenization.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/structured/tokenization_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/subscription.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/subscription_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/template.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/template_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/completion.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/completion_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/conversation.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/conversation_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/demonstration.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/demonstration_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/selfplay.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/templates/selfplay_test.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/__init__.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/base.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/event_handlers/event_logger.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/env/load_balancers.py +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun.egg-info/SOURCES.txt +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun.egg-info/dependency_links.txt +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun.egg-info/requires.txt +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun.egg-info/top_level.txt +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/setup.cfg +0 -0
- {langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/setup.py +0 -0
{langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action.py
RENAMED
|
@@ -538,6 +538,18 @@ class ExecutionTrace(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
538
538
|
remove_class=['not-started'],
|
|
539
539
|
)
|
|
540
540
|
|
|
541
|
+
def remove(self, item: TracedItem) -> None:
|
|
542
|
+
"""Removes an item from the sequence."""
|
|
543
|
+
index = self.items.index(item)
|
|
544
|
+
if index == -1:
|
|
545
|
+
raise ValueError(f'Item not found in execution trace: {item!r}')
|
|
546
|
+
|
|
547
|
+
with pg.notify_on_change(False):
|
|
548
|
+
self.items.pop(index)
|
|
549
|
+
|
|
550
|
+
if self._tab_control is not None:
|
|
551
|
+
self._tab_control.remove(index)
|
|
552
|
+
|
|
541
553
|
def extend(self, items: Iterable[TracedItem]) -> None:
|
|
542
554
|
"""Extends the sequence with a list of items."""
|
|
543
555
|
for item in items:
|
|
@@ -1648,13 +1660,20 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
1648
1660
|
@contextlib.contextmanager
|
|
1649
1661
|
def track_queries(
|
|
1650
1662
|
self,
|
|
1651
|
-
phase: str | None = None
|
|
1663
|
+
phase: str | None = None,
|
|
1664
|
+
track_if: Callable[
|
|
1665
|
+
[lf_structured.QueryInvocation],
|
|
1666
|
+
bool
|
|
1667
|
+
] | None = None,
|
|
1652
1668
|
) -> Iterator[list[lf_structured.QueryInvocation]]:
|
|
1653
1669
|
"""Tracks `lf.query` made within the context.
|
|
1654
1670
|
|
|
1655
1671
|
Args:
|
|
1656
1672
|
phase: The name of a new phase to track the queries in. If not provided,
|
|
1657
1673
|
the queries will be tracked in the parent phase.
|
|
1674
|
+
track_if: A function that takes a `lf_structured.QueryInvocation` and
|
|
1675
|
+
returns True if the query should be included in the result. If None,
|
|
1676
|
+
all queries (including failed queries) will be included.
|
|
1658
1677
|
|
|
1659
1678
|
Yields:
|
|
1660
1679
|
A list of `lf.QueryInvocation` objects, each for a single `lf.query`
|
|
@@ -1673,6 +1692,11 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
1673
1692
|
self.event_handler.on_query_start(self, self._current_action, invocation)
|
|
1674
1693
|
|
|
1675
1694
|
def _query_end(invocation: lf_structured.QueryInvocation):
|
|
1695
|
+
if track_if is not None and not track_if(invocation):
|
|
1696
|
+
self._current_execution.remove(invocation)
|
|
1697
|
+
# Even if the query is not included in the execution trace, we still
|
|
1698
|
+
# count the usage summary to the current execution and trigger the
|
|
1699
|
+
# event handler to log the query.
|
|
1676
1700
|
self._current_execution.merge_usage_summary(invocation.usage_summary)
|
|
1677
1701
|
self.event_handler.on_query_end(self, self._current_action, invocation)
|
|
1678
1702
|
|
|
@@ -1705,8 +1729,9 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
1705
1729
|
*,
|
|
1706
1730
|
lm: lf.LanguageModel,
|
|
1707
1731
|
examples: list[lf_structured.MappingExample] | None = None,
|
|
1732
|
+
track_if: Callable[[lf_structured.QueryInvocation], bool] | None = None,
|
|
1708
1733
|
**kwargs
|
|
1709
|
-
|
|
1734
|
+
) -> Any:
|
|
1710
1735
|
"""Calls `lf.query` and associates it with the current invocation.
|
|
1711
1736
|
|
|
1712
1737
|
The following code are equivalent:
|
|
@@ -1731,12 +1756,15 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
|
1731
1756
|
default: The default value to return if the query fails.
|
|
1732
1757
|
lm: The language model to use for the query.
|
|
1733
1758
|
examples: The examples to use for the query.
|
|
1759
|
+
track_if: A function that takes a `lf_structured.QueryInvocation`
|
|
1760
|
+
and returns True if the query should be tracked.
|
|
1761
|
+
If None, all queries (including failed queries) will be tracked.
|
|
1734
1762
|
**kwargs: Additional keyword arguments to pass to `lf.query`.
|
|
1735
1763
|
|
|
1736
1764
|
Returns:
|
|
1737
1765
|
The result of the query.
|
|
1738
1766
|
"""
|
|
1739
|
-
with self.track_queries():
|
|
1767
|
+
with self.track_queries(track_if=track_if):
|
|
1740
1768
|
return lf_structured.query(
|
|
1741
1769
|
prompt,
|
|
1742
1770
|
schema=schema,
|
{langfun-0.1.2.dev202510280805 → langfun-0.1.2.dev202510300805}/langfun/core/agentic/action_test.py
RENAMED
|
@@ -530,6 +530,31 @@ class SessionTest(unittest.TestCase):
|
|
|
530
530
|
self.assertIn('agent@', session.id)
|
|
531
531
|
self.assertIsInstance(session.as_message(), lf.AIMessage)
|
|
532
532
|
|
|
533
|
+
def test_query_with_track_if(self):
|
|
534
|
+
lm = fake.StaticResponse('lm response')
|
|
535
|
+
session = action_lib.Session()
|
|
536
|
+
|
|
537
|
+
# Render session to trigger javascript updates to the HTML when
|
|
538
|
+
# operating on the session.
|
|
539
|
+
_ = session.to_html()
|
|
540
|
+
with session:
|
|
541
|
+
# This query will succeed.
|
|
542
|
+
session.query(
|
|
543
|
+
'prompt1',
|
|
544
|
+
schema=None,
|
|
545
|
+
lm=lm,
|
|
546
|
+
track_if=lambda q: not q.has_error,
|
|
547
|
+
default=None)
|
|
548
|
+
# This query will fail during parsing.
|
|
549
|
+
session.query(
|
|
550
|
+
'prompt2',
|
|
551
|
+
schema=int,
|
|
552
|
+
lm=lm,
|
|
553
|
+
track_if=lambda q: not q.has_error,
|
|
554
|
+
default=None)
|
|
555
|
+
self.assertEqual(len(session.root.queries), 1)
|
|
556
|
+
self.assertIsNone(session.root.queries[0].error)
|
|
557
|
+
|
|
533
558
|
|
|
534
559
|
if __name__ == '__main__':
|
|
535
560
|
unittest.main()
|
|
@@ -830,9 +830,9 @@ class Gemini(rest.REST):
|
|
|
830
830
|
)
|
|
831
831
|
|
|
832
832
|
def _error(self, status_code: int, content: str) -> lf.LMError:
|
|
833
|
-
if (
|
|
834
|
-
|
|
835
|
-
|
|
833
|
+
if status_code == 400 and (
|
|
834
|
+
b'exceeds the maximum number of tokens' in content
|
|
835
|
+
or b'Reduce the input token count and try again.' in content
|
|
836
836
|
):
|
|
837
837
|
return lf.ContextLimitError(f'{status_code}: {content}')
|
|
838
838
|
return super()._error(status_code, content)
|
|
@@ -24,6 +24,10 @@ from langfun.env.interface import Environment
|
|
|
24
24
|
from langfun.env.interface import Sandbox
|
|
25
25
|
from langfun.env.interface import Feature
|
|
26
26
|
|
|
27
|
+
# Decorators for sandbox/feature methods.
|
|
28
|
+
from langfun.env.interface import treat_as_sandbox_state_error
|
|
29
|
+
from langfun.env.interface import log_sandbox_activity
|
|
30
|
+
|
|
27
31
|
from langfun.env.base_environment import BaseEnvironment
|
|
28
32
|
from langfun.env.base_sandbox import BaseSandbox
|
|
29
33
|
from langfun.env.base_feature import BaseFeature
|