langfun 0.1.2.dev202504240804__tar.gz → 0.1.2.dev202504250804__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.dev202504240804 → langfun-0.1.2.dev202504250804}/PKG-INFO +1 -1
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action.py +7 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action_test.py +3 -1
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/evaluation.py +36 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/runners.py +5 -4
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/rest.py +3 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/message.py +5 -2
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/message_test.py +9 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/schema_test.py +0 -1
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/template_test.py +3 -3
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/PKG-INFO +1 -1
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/LICENSE +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/README.md +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action_eval.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action_eval_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/correction.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/correction_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/execution.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/execution_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/generation.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/generation_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/parsing.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/parsing_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/sandboxing.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/coding/python/sandboxing_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/component.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/component_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/concurrent.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/concurrent_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/console.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/console_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/anthropic.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/gemini.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/gemini_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/openai.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/data/conversion/openai_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/base.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/base_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/matching.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/matching_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/patching.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/patching_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/scoring.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/scoring_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/checkpointing.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/checkpointing_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/eval_test_helper.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/evaluation_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/example.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/example_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/experiment.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/experiment_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metric_values.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metric_values_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metrics.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metrics_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/progress.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/progress_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/progress_tracking.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/reporting.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/reporting_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/runners_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/langfunc.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/langfunc_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/language_model.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/language_model_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/anthropic.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/azure_openai.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/azure_openai_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/base.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/in_memory.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/in_memory_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/compositional.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/compositional_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/deepseek.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/deepseek_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/fake.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/fake_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/gemini.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/gemini_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/google_genai.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/google_genai_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/groq.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/groq_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/llama_cpp.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/llama_cpp_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/openai.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/openai_compatible.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/openai_compatible_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/openai_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/rest_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/vertexai.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/vertexai_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/logging.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/logging_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/memories/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/memories/conversation_history.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/memories/conversation_history_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/memory.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/audio.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/audio_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/image.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/image_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/mime.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/mime_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/pdf.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/pdf_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/video.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/video_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modality.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modality_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/natural_language.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/natural_language_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/sampling.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/sampling_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/completion.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/completion_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/description.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/description_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/function_generation.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/function_generation_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/mapping.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/mapping_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/parsing.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/parsing_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/querying.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/querying_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/schema.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/schema_generation.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/schema_generation_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/scoring.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/scoring_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/tokenization.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/tokenization_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/subscription.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/subscription_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/template.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/__init__.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/completion.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/completion_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/conversation.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/conversation_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/demonstration.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/demonstration_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/selfplay.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/selfplay_test.py +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/SOURCES.txt +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/dependency_links.txt +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/requires.txt +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/top_level.txt +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/setup.cfg +0 -0
- {langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/setup.py +0 -0
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action.py
RENAMED
@@ -20,6 +20,7 @@ import threading
|
|
20
20
|
import time
|
21
21
|
import typing
|
22
22
|
from typing import Annotated, Any, Callable, Iterable, Iterator, Optional, Type, Union
|
23
|
+
import uuid
|
23
24
|
import langfun.core as lf
|
24
25
|
from langfun.core import structured as lf_structured
|
25
26
|
import pyglove as pg
|
@@ -63,7 +64,11 @@ class Action(pg.Object):
|
|
63
64
|
lf.console.display(pg.view(session, name='agent_session'))
|
64
65
|
|
65
66
|
with session.track_action(self):
|
67
|
+
pg.logging.info('Example %s starts action %s', session.id, repr(self))
|
66
68
|
result = self.call(session=session, **kwargs)
|
69
|
+
pg.logging.info(
|
70
|
+
'Example %s ends action %s', session.id, self.__class__.__name__
|
71
|
+
)
|
67
72
|
|
68
73
|
# For the top-level action, we store the session in the metadata.
|
69
74
|
if new_session:
|
@@ -792,6 +797,8 @@ class Session(pg.Object, pg.views.html.HtmlTreeView.Extension):
|
|
792
797
|
self._tls = threading.local()
|
793
798
|
self._current_action = self.root
|
794
799
|
self._current_execution = self.root.execution
|
800
|
+
if self.id is None:
|
801
|
+
self.rebind(id=uuid.uuid4().hex[-7:], skip_notification=True)
|
795
802
|
|
796
803
|
#
|
797
804
|
# Context-manager for information tracking.
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action_test.py
RENAMED
@@ -68,6 +68,7 @@ class SessionTest(unittest.TestCase):
|
|
68
68
|
self.assertEqual(foo(lm=lm), 3)
|
69
69
|
|
70
70
|
session = foo.session
|
71
|
+
self.assertEqual(len(session.id), 7)
|
71
72
|
self.assertIsNotNone(session)
|
72
73
|
self.assertIsInstance(session.root.action, action_lib.RootAction)
|
73
74
|
self.assertIs(session.current_action, session.root)
|
@@ -152,7 +153,8 @@ class SessionTest(unittest.TestCase):
|
|
152
153
|
session.fatal('hi', x=1, y=2)
|
153
154
|
|
154
155
|
def test_as_message(self):
|
155
|
-
session = action_lib.Session()
|
156
|
+
session = action_lib.Session(id='abc')
|
157
|
+
self.assertEqual(session.id, 'abc')
|
156
158
|
self.assertIsInstance(session.as_message(), lf.AIMessage)
|
157
159
|
|
158
160
|
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/evaluation.py
RENAMED
@@ -169,9 +169,23 @@ class Evaluation(experiment_lib.Experiment):
|
|
169
169
|
checkpointed = self._state.ckpt_example(example.id)
|
170
170
|
with pg.timeit('evaluate') as timeit, lf.track_usages() as usage_summary:
|
171
171
|
if checkpointed is None or checkpointed.has_error:
|
172
|
+
if checkpointed is None:
|
173
|
+
self.info(
|
174
|
+
f'Example {example.id} is being processed for the first time '
|
175
|
+
'as no prior run is found. '
|
176
|
+
)
|
177
|
+
else:
|
178
|
+
self.info(
|
179
|
+
f'Example {example.id} is being reprocessed as prior run '
|
180
|
+
f'contains error: {checkpointed.error}'
|
181
|
+
)
|
172
182
|
example.start_time = time.time()
|
173
183
|
self._process(example, raise_if_has_error=raise_if_has_error)
|
174
184
|
else:
|
185
|
+
self.info(
|
186
|
+
f'Example {example.id} skipped processing as prior run '
|
187
|
+
'is available and error free.'
|
188
|
+
)
|
175
189
|
example.start_time = checkpointed.start_time
|
176
190
|
|
177
191
|
# Use the output and metadata obtained from the previous processing.
|
@@ -190,10 +204,12 @@ class Evaluation(experiment_lib.Experiment):
|
|
190
204
|
# NOTE(daiyip): It's possible that metrics could use LLMs, so we need to
|
191
205
|
# track the usage of the metrics separately.
|
192
206
|
with pg.timeit('metric'):
|
207
|
+
self.info(f'Starting metric computation for example {example.id}.')
|
193
208
|
metric_metadata = {}
|
194
209
|
for metric in self.metrics:
|
195
210
|
metric_metadata.update(metric.audit(example))
|
196
211
|
example.metric_metadata = metric_metadata
|
212
|
+
self.info(f'Completed metric computation for example {example.id}.')
|
197
213
|
|
198
214
|
# For previously processed examples, we keep the execution status for the
|
199
215
|
# processing step.
|
@@ -315,6 +331,26 @@ class Evaluation(experiment_lib.Experiment):
|
|
315
331
|
with self._log_lock:
|
316
332
|
self._log_entries.append(log_entry)
|
317
333
|
|
334
|
+
# Also add system log.
|
335
|
+
match level:
|
336
|
+
case 'debug':
|
337
|
+
sys_log_func = pg.logging.debug
|
338
|
+
case 'info':
|
339
|
+
sys_log_func = pg.logging.info
|
340
|
+
case 'warning':
|
341
|
+
sys_log_func = pg.logging.warning
|
342
|
+
case 'error':
|
343
|
+
sys_log_func = pg.logging.error
|
344
|
+
case 'fatal':
|
345
|
+
sys_log_func = pg.logging.error
|
346
|
+
case _:
|
347
|
+
raise ValueError(f'Unsupported log level: {level}')
|
348
|
+
|
349
|
+
sys_log_func(
|
350
|
+
'%s: %s\nMetadata: %s',
|
351
|
+
self.id, message, pg.format(kwargs)
|
352
|
+
)
|
353
|
+
|
318
354
|
def debug(self, message: str, **kwargs):
|
319
355
|
"""Logs a debug message to the session."""
|
320
356
|
self._log(pg.logging.debug, 'debug', message, **kwargs)
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/runners.py
RENAMED
@@ -249,22 +249,23 @@ class RunnerBase(Runner):
|
|
249
249
|
if example.error is None:
|
250
250
|
experiment.progress.increment_processed()
|
251
251
|
experiment.info(
|
252
|
-
f'Example {example.id} is successfully evaluated in '
|
253
|
-
f'{example.elapse:.2f} seconds.'
|
252
|
+
f'Example {example.id} is successfully evaluated (with process) in '
|
253
|
+
f'{example.elapse:.2f} seconds.'
|
254
254
|
)
|
255
255
|
else:
|
256
256
|
experiment.progress.increment_failed()
|
257
257
|
experiment.error(
|
258
258
|
(
|
259
259
|
f'Failed to evaluate example {example.id} in'
|
260
|
-
f'{example.elapse:.2f} seconds.'
|
260
|
+
f'{example.elapse:.2f} seconds.'
|
261
261
|
),
|
262
262
|
error=example.error
|
263
263
|
)
|
264
264
|
else:
|
265
265
|
experiment.progress.increment_skipped()
|
266
266
|
experiment.info(
|
267
|
-
f'
|
267
|
+
f'Example {example.id} is successfully evaluated (without reprocess) '
|
268
|
+
f'in {example.elapse:.2f} seconds.'
|
268
269
|
)
|
269
270
|
|
270
271
|
experiment.usage_summary.merge(example.usage_summary)
|
@@ -103,6 +103,8 @@ class REST(lf.LanguageModel):
|
|
103
103
|
error_message = str(e)
|
104
104
|
if 'REJECTED_CLIENT_THROTTLED' in error_message:
|
105
105
|
raise lf.TemporaryLMError(error_message) from e
|
106
|
+
if 'UNREACHABLE_ERROR' in error_message:
|
107
|
+
raise lf.TemporaryLMError(error_message) from e
|
106
108
|
raise lf.LMError(error_message) from e
|
107
109
|
|
108
110
|
def _error(self, status_code: int, content: str) -> lf.LMError:
|
@@ -113,6 +115,7 @@ class REST(lf.LanguageModel):
|
|
113
115
|
502, # Bad gateway (upstream issue, might retry).
|
114
116
|
503, # Servers currently under load, retry after a brief wait.
|
115
117
|
529, # Overloaded, retry after a brief wait.
|
118
|
+
499, # Client Closed Request
|
116
119
|
):
|
117
120
|
error_cls = lf.TemporaryLMError
|
118
121
|
else:
|
@@ -443,11 +443,14 @@ class Message(
|
|
443
443
|
metadata = dict()
|
444
444
|
last_char = None
|
445
445
|
for i, chunk in enumerate(chunks):
|
446
|
-
if i > 0 and last_char not in ('\t', ' ', '\n'):
|
446
|
+
if i > 0 and last_char not in ('\t', ' ', '\n', None):
|
447
447
|
fused_text.write(separator)
|
448
448
|
if isinstance(chunk, str):
|
449
449
|
fused_text.write(chunk)
|
450
|
-
|
450
|
+
if chunk:
|
451
|
+
last_char = chunk[-1]
|
452
|
+
else:
|
453
|
+
last_char = None
|
451
454
|
else:
|
452
455
|
assert isinstance(chunk, modality.Modality), chunk
|
453
456
|
var_name = f'obj{ref_index}'
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/message_test.py
RENAMED
@@ -476,6 +476,15 @@ class MessageTest(unittest.TestCase):
|
|
476
476
|
"""
|
477
477
|
)
|
478
478
|
|
479
|
+
def test_from_chunks_with_empty_str(self):
|
480
|
+
chunks = ['Hello', '', 'World']
|
481
|
+
msg = message.AIMessage.from_chunks(chunks)
|
482
|
+
self.assertEqual(msg.text, 'Hello World')
|
483
|
+
|
484
|
+
chunks = ['', 'hello']
|
485
|
+
msg = message.AIMessage.from_chunks(chunks)
|
486
|
+
self.assertEqual(msg.text, 'hello')
|
487
|
+
|
479
488
|
|
480
489
|
class MessageConverterTest(unittest.TestCase):
|
481
490
|
|
@@ -71,7 +71,6 @@ class SchemaTest(unittest.TestCase):
|
|
71
71
|
self.assert_schema(float, pg.typing.Float())
|
72
72
|
self.assert_schema(str, pg.typing.Str())
|
73
73
|
self.assert_schema(bool, pg.typing.Bool())
|
74
|
-
self.assert_schema(bool | None, pg.typing.Bool().noneable())
|
75
74
|
|
76
75
|
# Top-level dictionary with 'result' as the only key is flattened.
|
77
76
|
self.assert_schema(dict(result=int), pg.typing.Int())
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/template_test.py
RENAMED
@@ -80,10 +80,10 @@ class BasicTest(unittest.TestCase):
|
|
80
80
|
|
81
81
|
def test_custom_typing(self):
|
82
82
|
class Foo(component.Component):
|
83
|
-
x: str | None
|
84
|
-
y: int | None
|
83
|
+
x: str | None = None
|
84
|
+
y: int | None = None
|
85
85
|
z: str
|
86
|
-
p: component.Component | None
|
86
|
+
p: component.Component | None = None
|
87
87
|
|
88
88
|
d = Foo(z='bar')
|
89
89
|
# String template can be assigned to str.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/agentic/action_eval.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/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.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/component_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/concurrent_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/console_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/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.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/__init__.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/base_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/matching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/matching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/patching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/patching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/scoring.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/scoring_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/example.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/example_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/experiment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metrics.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/metrics_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/progress.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/reporting.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/eval/v2/runners_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/langfunc_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/language_model.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/language_model_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/anthropic.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/anthropic_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/azure_openai.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/base.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/cache/in_memory.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/compositional.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/deepseek.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/deepseek_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/fake_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/gemini_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/google_genai.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/groq_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/llama_cpp.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/llama_cpp_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/openai_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/rest_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/vertexai.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/llms/vertexai_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/logging_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/memories/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/audio.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/image.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/mime.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/mime_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/pdf.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/pdf_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modalities/video.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/modality_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/natural_language.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/sampling_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/__init__.py
RENAMED
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.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/mapping.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/parsing.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/querying.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/schema.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/structured/scoring.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/subscription.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/subscription_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/completion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun/core/templates/selfplay.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/requires.txt
RENAMED
File without changes
|
{langfun-0.1.2.dev202504240804 → langfun-0.1.2.dev202504250804}/langfun.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|