langfun 0.1.2.dev202506250804__tar.gz → 0.1.2.dev202506270804__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.
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/PKG-INFO +1 -1
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/__init__.py +0 -1
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/sandboxing.py +1 -28
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/language_model.py +56 -5
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/language_model_test.py +22 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/PKG-INFO +1 -1
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/LICENSE +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/README.md +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action_eval.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action_eval_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/correction.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/correction_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/execution.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/execution_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/generation.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/generation_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/parsing.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/parsing_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/coding/python/sandboxing_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/component.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/component_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/concurrent.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/concurrent_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/console.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/console_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/anthropic.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/gemini.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/gemini_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/openai.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/data/conversion/openai_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/base.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/base_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/matching.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/matching_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/patching.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/patching_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/scoring.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/scoring_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/checkpointing.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/checkpointing_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/eval_test_helper.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/evaluation.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/evaluation_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/example.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/example_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/experiment.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/experiment_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metric_values.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metric_values_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metrics.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metrics_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/progress.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/progress_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/progress_tracking.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/reporting.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/reporting_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/runners.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/runners_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/langfunc.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/langfunc_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/anthropic.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/anthropic_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/azure_openai.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/azure_openai_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/base.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/in_memory.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/in_memory_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/compositional.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/compositional_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/deepseek.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/deepseek_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/fake.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/fake_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/gemini.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/gemini_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/google_genai.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/google_genai_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/groq.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/groq_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/llama_cpp.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/llama_cpp_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/openai.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/openai_compatible.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/openai_compatible_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/openai_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/rest.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/rest_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/vertexai.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/vertexai_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/logging.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/logging_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/memories/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/memories/conversation_history.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/memories/conversation_history_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/memory.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/message.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/message_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/audio.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/audio_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/image.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/image_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/mime.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/mime_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/pdf.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/pdf_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/video.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/video_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modality.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modality_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/natural_language.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/natural_language_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/sampling.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/sampling_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/completion.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/completion_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/description.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/description_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/function_generation.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/function_generation_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/mapping.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/mapping_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/parsing.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/parsing_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/querying.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/querying_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/schema.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/schema_generation.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/schema_generation_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/schema_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/scoring.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/scoring_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/tokenization.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/tokenization_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/subscription.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/subscription_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/template.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/template_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/__init__.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/completion.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/completion_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/conversation.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/conversation_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/demonstration.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/demonstration_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/selfplay.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/selfplay_test.py +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/SOURCES.txt +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/dependency_links.txt +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/requires.txt +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/top_level.txt +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/setup.cfg +0 -0
- {langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/setup.py +0 -0
@@ -32,7 +32,6 @@ from langfun.core.coding.python.correction import correct
|
|
32
32
|
from langfun.core.coding.python.correction import run_with_correction
|
33
33
|
from langfun.core.coding.python.correction import CodeWithError
|
34
34
|
|
35
|
-
from langfun.core.coding.python.sandboxing import Sandbox
|
36
35
|
from langfun.core.coding.python.sandboxing import SandboxOutput
|
37
36
|
from langfun.core.coding.python.sandboxing import MultiProcessingSandbox
|
38
37
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
import abc
|
17
17
|
import os
|
18
18
|
import tempfile
|
19
|
-
from typing import Annotated
|
19
|
+
from typing import Annotated
|
20
20
|
|
21
21
|
from langfun.core.coding.python import parsing
|
22
22
|
import pyglove as pg
|
@@ -41,33 +41,6 @@ class SandboxOutput(pg.Object):
|
|
41
41
|
] = {}
|
42
42
|
|
43
43
|
|
44
|
-
class Sandbox(Protocol):
|
45
|
-
"""Interface for Python sandbox."""
|
46
|
-
|
47
|
-
def run(
|
48
|
-
self,
|
49
|
-
code: str,
|
50
|
-
**kwargs,
|
51
|
-
) -> SandboxOutput:
|
52
|
-
"""Runs code in the sandbox."""
|
53
|
-
|
54
|
-
def upload(
|
55
|
-
self,
|
56
|
-
path: str,
|
57
|
-
**kwargs,
|
58
|
-
) -> str:
|
59
|
-
"""Uploads a file to the sandbox."""
|
60
|
-
|
61
|
-
def clone(self) -> 'Sandbox':
|
62
|
-
"""Clones the sandbox."""
|
63
|
-
|
64
|
-
def __enter__(self) -> Self:
|
65
|
-
"""Sandboxes should be used as a context manager."""
|
66
|
-
|
67
|
-
def __exit__(self, exc_type, exc_value, traceback) -> None:
|
68
|
-
"""Sandboxes should be used as a context manager."""
|
69
|
-
|
70
|
-
|
71
44
|
class BaseSandbox(pg.Object):
|
72
45
|
"""Interface and partial implementation for Python sandbox."""
|
73
46
|
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/language_model.py
RENAMED
@@ -769,8 +769,25 @@ class LanguageModel(component.Component):
|
|
769
769
|
cls._MODEL_FACTORY[model_id_or_prefix] = factory
|
770
770
|
|
771
771
|
@classmethod
|
772
|
-
def get(cls,
|
773
|
-
"""Creates a language model instance from a model
|
772
|
+
def get(cls, model_str: str, *args, **kwargs) -> 'LanguageModel':
|
773
|
+
"""Creates a language model instance from a model str.
|
774
|
+
|
775
|
+
Args:
|
776
|
+
model_str: A string that identifies the model. It can be a model ID or a
|
777
|
+
model ID with kwargs.
|
778
|
+
For example, "gpt-o3?temperature=0.1&n=2" will create a GPT-o3 model
|
779
|
+
with temperature set to 0.1 and n set to 2.
|
780
|
+
*args: Additional arguments to pass to the model factory.
|
781
|
+
**kwargs: Additional keyword arguments to pass to the model factory.
|
782
|
+
kwargs provided here will take precedence over kwargs parsed from
|
783
|
+
model_str.
|
784
|
+
|
785
|
+
Returns:
|
786
|
+
A language model instance.
|
787
|
+
"""
|
788
|
+
model_id, model_kwargs = cls._parse_model_str(model_str)
|
789
|
+
model_kwargs.update(kwargs)
|
790
|
+
|
774
791
|
factory = cls._MODEL_FACTORY.get(model_id)
|
775
792
|
if factory is None:
|
776
793
|
factories = []
|
@@ -786,11 +803,45 @@ class LanguageModel(component.Component):
|
|
786
803
|
'Please specify a more specific model ID.'
|
787
804
|
)
|
788
805
|
factory = factories[0][1]
|
789
|
-
return factory(model_id, *args, **
|
806
|
+
return factory(model_id, *args, **model_kwargs)
|
790
807
|
|
791
808
|
@classmethod
|
792
|
-
def
|
793
|
-
|
809
|
+
def _parse_model_str(cls, model_str: str) -> tuple[str, dict[str, Any]]:
|
810
|
+
"""Parses a model string into model ID and kwargs."""
|
811
|
+
parts = model_str.split('?')
|
812
|
+
if len(parts) == 1:
|
813
|
+
return model_str, {}
|
814
|
+
elif len(parts) == 2:
|
815
|
+
model_id, kwargs_str = parts
|
816
|
+
kwargs = {}
|
817
|
+
for kv in kwargs_str.split('&'):
|
818
|
+
kv_parts = kv.split('=')
|
819
|
+
if len(kv_parts) != 2:
|
820
|
+
raise ValueError(f'Invalid kwargs in model string: {model_str!r}.')
|
821
|
+
k, v = kv_parts
|
822
|
+
if v.isnumeric():
|
823
|
+
v = int(v)
|
824
|
+
elif v.lower() in ('true', 'false'):
|
825
|
+
v = v.lower() == 'true'
|
826
|
+
else:
|
827
|
+
v = v.strip()
|
828
|
+
try:
|
829
|
+
v = float(v)
|
830
|
+
except ValueError:
|
831
|
+
pass
|
832
|
+
kwargs[k] = v
|
833
|
+
return model_id, kwargs
|
834
|
+
else:
|
835
|
+
raise ValueError(f'Invalid model string: {model_str!r}.')
|
836
|
+
|
837
|
+
@classmethod
|
838
|
+
def dir(cls, regex: str | None = None):
|
839
|
+
"""Returns a list of model IDs that match the given regex."""
|
840
|
+
if regex is None:
|
841
|
+
return sorted(list(LanguageModel._MODEL_FACTORY.keys()))
|
842
|
+
return sorted(
|
843
|
+
[k for k in LanguageModel._MODEL_FACTORY.keys() if re.match(regex, k)]
|
844
|
+
)
|
794
845
|
|
795
846
|
@pg.explicit_method_override
|
796
847
|
def __init__(self, *args, **kwargs) -> None:
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/language_model_test.py
RENAMED
@@ -196,6 +196,8 @@ class LanguageModelTest(unittest.TestCase):
|
|
196
196
|
self.assertEqual(lm.failures_before_attempt, 1)
|
197
197
|
self.assertEqual(lm.sampling_options.temperature, 0.2)
|
198
198
|
self.assertIn('MockModel', lm_lib.LanguageModel.dir())
|
199
|
+
self.assertIn('MockModel', lm_lib.LanguageModel.dir('Mock.*'))
|
200
|
+
self.assertEqual(lm_lib.LanguageModel.dir('NotMock.*'), [])
|
199
201
|
|
200
202
|
lm_lib.LanguageModel.register('mock://.*', mock_model)
|
201
203
|
lm_lib.LanguageModel.register('mock.*', mock_model)
|
@@ -206,6 +208,26 @@ class LanguageModelTest(unittest.TestCase):
|
|
206
208
|
with self.assertRaisesRegex(ValueError, 'Model not found'):
|
207
209
|
lm_lib.LanguageModel.get('non-existent://test2')
|
208
210
|
|
211
|
+
lm = lm_lib.LanguageModel.get('MockModel?temperature=0.1')
|
212
|
+
self.assertEqual(lm.sampling_options.temperature, 0.1)
|
213
|
+
|
214
|
+
lm = lm_lib.LanguageModel.get(
|
215
|
+
'MockModel?temperature=0.1&name=my_model&logprobs=true&n=2'
|
216
|
+
)
|
217
|
+
self.assertEqual(lm.sampling_options.temperature, 0.1)
|
218
|
+
self.assertEqual(lm.sampling_options.n, 2)
|
219
|
+
self.assertTrue(lm.sampling_options.logprobs)
|
220
|
+
self.assertEqual(lm.name, 'my_model')
|
221
|
+
|
222
|
+
lm = lm_lib.LanguageModel.get('MockModel?temperature=0.1', temperature=0.2)
|
223
|
+
self.assertEqual(lm.sampling_options.temperature, 0.2)
|
224
|
+
|
225
|
+
with self.assertRaisesRegex(ValueError, 'Invalid model string'):
|
226
|
+
lm_lib.LanguageModel.get('MockModel??')
|
227
|
+
|
228
|
+
with self.assertRaisesRegex(ValueError, 'Invalid kwargs in model string'):
|
229
|
+
lm_lib.LanguageModel.get('MockModel?temperature=0.1&')
|
230
|
+
|
209
231
|
def test_basics(self):
|
210
232
|
lm = MockModel(1, temperature=0.5, top_k=2, max_attempts=2)
|
211
233
|
self.assertEqual(
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action_eval.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/agentic/action_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/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
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/component_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/concurrent_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/console_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/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.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/__init__.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/base_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/matching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/matching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/patching.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/patching_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/scoring.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/scoring_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/evaluation.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/example.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/example_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/experiment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metrics.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/metrics_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/progress.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/reporting.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/runners.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/eval/v2/runners_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/langfunc_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/anthropic.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/anthropic_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/azure_openai.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/base.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/cache/in_memory.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/compositional.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/deepseek.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/deepseek_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/fake_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/gemini_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/google_genai.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/groq_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/llama_cpp.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/llama_cpp_test.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/openai_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/rest_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/vertexai.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/llms/vertexai_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/logging_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/memories/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/message_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/audio.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/image.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/mime.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/mime_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/pdf.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/pdf_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modalities/video.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/modality_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/natural_language.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/sampling_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/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.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/mapping.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/parsing.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/querying.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/schema.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/structured/scoring.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/subscription.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/subscription_test.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/template_test.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/__init__.py
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/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.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun/core/templates/selfplay.py
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/requires.txt
RENAMED
File without changes
|
{langfun-0.1.2.dev202506250804 → langfun-0.1.2.dev202506270804}/langfun.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|