deepeval 3.8.3__tar.gz → 3.8.4__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.
- {deepeval-3.8.3 → deepeval-3.8.4}/PKG-INFO +1 -1
- deepeval-3.8.4/deepeval/_version.py +1 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/settings.py +12 -1
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/constants.py +2 -1
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/prompt/__init__.py +2 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/prompt/api.py +48 -2
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/prompt/prompt.py +30 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/prompt/utils.py +72 -2
- {deepeval-3.8.3 → deepeval-3.8.4}/pyproject.toml +1 -1
- deepeval-3.8.3/deepeval/_version.py +0 -1
- {deepeval-3.8.3 → deepeval-3.8.4}/LICENSE.md +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/README.md +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/annotation/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/annotation/annotation.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/annotation/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/anthropic/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/anthropic/extractors.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/anthropic/patch.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/anthropic/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/arc/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/arc/arc.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/arc/mode.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/arc/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/base_benchmark.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bbq/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bbq/bbq.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bbq/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bbq/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/big_bench_hard.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/boolean_expressions.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/causal_judgement.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/date_understanding.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/disambiguation_qa.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/dyck_languages.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/formal_fallacies.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/geometric_shapes.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/hyperbaton.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/logical_deduction_five_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/logical_deduction_seven_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/logical_deduction_three_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/movie_recommendation.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/multistep_arithmetic_two.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/navigate.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/object_counting.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/penguins_in_a_table.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/reasoning_about_colored_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/ruin_names.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/salient_translation_error_detection.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/snarks.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/sports_understanding.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/temporal_sequences.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/tracking_shuffled_objects_five_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/tracking_shuffled_objects_seven_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/tracking_shuffled_objects_three_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/web_of_lies.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/word_sorting.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/boolean_expressions.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/causal_judgement.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/date_understanding.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/disambiguation_qa.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/dyck_languages.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/formal_fallacies.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/geometric_shapes.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/hyperbaton.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/logical_deduction_five_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/logical_deduction_seven_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/logical_deduction_three_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/movie_recommendation.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/multistep_arithmetic_two.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/navigate.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/object_counting.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/penguins_in_a_table.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/reasoning_about_colored_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/ruin_names.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/salient_translation_error_detection.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/snarks.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/sports_understanding.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/temporal_sequences.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/tracking_shuffled_objects_five_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/tracking_shuffled_objects_seven_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/tracking_shuffled_objects_three_objects.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/web_of_lies.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/word_sorting.txt +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bool_q/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bool_q/bool_q.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/bool_q/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/drop/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/drop/drop.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/drop/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/drop/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/equity_med_qa/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/equity_med_qa/equity_med_qa.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/equity_med_qa/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/equity_med_qa/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/gsm8k/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/gsm8k/gsm8k.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/gsm8k/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/hellaswag/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/hellaswag/hellaswag.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/hellaswag/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/hellaswag/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/human_eval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/human_eval/human_eval.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/human_eval/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/human_eval/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/ifeval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/ifeval/ifeval.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/ifeval/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/lambada/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/lambada/lambada.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/lambada/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/logi_qa/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/logi_qa/logi_qa.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/logi_qa/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/logi_qa/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/math_qa/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/math_qa/math_qa.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/math_qa/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/math_qa/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/mmlu/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/mmlu/mmlu.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/mmlu/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/mmlu/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/modes/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/results.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/squad/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/squad/squad.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/squad/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/squad/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/tasks/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/truthful_qa/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/truthful_qa/mode.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/truthful_qa/task.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/truthful_qa/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/truthful_qa/truthful_qa.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/winogrande/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/winogrande/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/winogrande/winogrande.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/dotenv_handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/main.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/server.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/test.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/cli/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/confident/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/confident/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/confident/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/dotenv_handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/logging.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/settings_manager.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/config/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/contextvars.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/dataset.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/golden.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/test_run_tracer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/dataset/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/errors.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/compare.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/configs.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/evaluate.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/execute.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/evaluate/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/crewai/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/crewai/handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/crewai/subs.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/crewai/tool.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/crewai/wrapper.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/hugging_face/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/hugging_face/callback.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/hugging_face/rich_manager.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/hugging_face/tests/test_callbacks.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/hugging_face/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/langchain/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/langchain/callback.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/langchain/patch.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/langchain/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/llama_index/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/llama_index/handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/llama_index/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/pydantic_ai/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/pydantic_ai/agent.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/pydantic_ai/instrumentator.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/pydantic_ai/otel.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/integrations/pydantic_ai/test_instrumentator.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/key_handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/answer_relevancy/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/answer_relevancy/answer_relevancy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/answer_relevancy/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/answer_relevancy/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/arena_g_eval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/arena_g_eval/arena_g_eval.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/arena_g_eval/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/arena_g_eval/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/arena_g_eval/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/argument_correctness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/argument_correctness/argument_correctness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/argument_correctness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/argument_correctness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/base_metric.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/bias/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/bias/bias.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/bias/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/bias/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_precision/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_precision/contextual_precision.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_precision/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_precision/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_recall/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_recall/contextual_recall.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_recall/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_recall/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_relevancy/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_relevancy/contextual_relevancy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_relevancy/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/contextual_relevancy/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversation_completeness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversation_completeness/conversation_completeness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversation_completeness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversation_completeness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_dag/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_dag/conversational_dag.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_dag/nodes.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_dag/templates.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_g_eval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_g_eval/conversational_g_eval.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_g_eval/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/conversational_g_eval/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/dag.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/graph.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/nodes.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/templates.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/dag/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/exact_match/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/exact_match/exact_match.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/faithfulness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/faithfulness/faithfulness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/faithfulness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/faithfulness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/g_eval/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/g_eval/g_eval.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/g_eval/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/g_eval/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/g_eval/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/goal_accuracy/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/goal_accuracy/goal_accuracy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/goal_accuracy/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/goal_accuracy/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/hallucination/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/hallucination/hallucination.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/hallucination/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/hallucination/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/indicator.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/json_correctness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/json_correctness/json_correctness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/json_correctness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/json_correctness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/knowledge_retention/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/knowledge_retention/knowledge_retention.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/knowledge_retention/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/knowledge_retention/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp/mcp_task_completion.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp/multi_turn_mcp_use_metric.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp_use_metric/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp_use_metric/mcp_use_metric.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp_use_metric/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/mcp_use_metric/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/misuse/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/misuse/misuse.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/misuse/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/misuse/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_coherence/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_coherence/image_coherence.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_coherence/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_coherence/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_editing/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_editing/image_editing.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_editing/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_editing/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_helpfulness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_helpfulness/image_helpfulness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_helpfulness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_helpfulness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_reference/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_reference/image_reference.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_reference/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/image_reference/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/text_to_image/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/text_to_image/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/text_to_image/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/multimodal_metrics/text_to_image/text_to_image.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/non_advice/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/non_advice/non_advice.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/non_advice/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/non_advice/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pattern_match/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pattern_match/pattern_match.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pii_leakage/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pii_leakage/pii_leakage.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pii_leakage/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/pii_leakage/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_adherence/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_adherence/plan_adherence.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_adherence/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_adherence/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_quality/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_quality/plan_quality.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_quality/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/plan_quality/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/prompt_alignment/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/prompt_alignment/prompt_alignment.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/prompt_alignment/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/prompt_alignment/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/ragas.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_adherence/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_adherence/role_adherence.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_adherence/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_adherence/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_violation/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_violation/role_violation.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_violation/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/role_violation/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/step_efficiency/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/step_efficiency/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/step_efficiency/step_efficiency.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/step_efficiency/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/summarization/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/summarization/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/summarization/summarization.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/summarization/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/task_completion/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/task_completion/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/task_completion/task_completion.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/task_completion/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_correctness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_correctness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_correctness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_correctness/tool_correctness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_use/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_use/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_use/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/tool_use/tool_use.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/topic_adherence/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/topic_adherence/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/topic_adherence/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/topic_adherence/topic_adherence.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/toxicity/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/toxicity/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/toxicity/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/toxicity/toxicity.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_precision/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_precision/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_precision/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_precision/turn_contextual_precision.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_recall/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_recall/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_recall/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_recall/turn_contextual_recall.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_relevancy/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_relevancy/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_relevancy/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_contextual_relevancy/turn_contextual_relevancy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_faithfulness/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_faithfulness/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_faithfulness/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_faithfulness/turn_faithfulness.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_relevancy/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_relevancy/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_relevancy/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/turn_relevancy/turn_relevancy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/metrics/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/model_integrations/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/model_integrations/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/model_integrations/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/_summac_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/answer_relevancy_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/base_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/detoxify_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/embedding_models/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/embedding_models/azure_embedding_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/embedding_models/local_embedding_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/embedding_models/ollama_embedding_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/embedding_models/openai_embedding_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/hallucination_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/amazon_bedrock_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/anthropic_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/azure_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/constants.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/deepseek_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/gemini_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/grok_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/kimi_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/litellm_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/local_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/ollama_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/openai_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/openrouter_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/portkey_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/llms/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/retry_policy.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/summac_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/unbias_model.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/models/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai/extractors.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai/patch.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/agent.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/callback_handler.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/extractors.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/patch.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/openai_agents/runner.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/base.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/configs.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/copro/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/copro/copro.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/gepa/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/gepa/gepa.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/miprov2/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/miprov2/bootstrapper.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/miprov2/miprov2.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/miprov2/proposer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/simba/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/simba/simba.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/algorithms/simba/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/configs.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/policies.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/prompt_optimizer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/rewriter/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/rewriter/rewriter.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/rewriter/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/scorer/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/scorer/base.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/scorer/scorer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/scorer/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/optimizer/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/plugins/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/plugins/plugin.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/progress_context.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/py.typed +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/red_teaming/README.md +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/scorer/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/scorer/scorer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/simulator/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/simulator/conversation_simulator.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/simulator/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/simulator/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/singleton.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/base_synthesizer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/chunking/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/chunking/context_generator.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/chunking/doc_chunker.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/config.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/schema.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/synthesizer.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/templates/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/templates/template.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/templates/template_extraction.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/templates/template_prompt.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/synthesizer/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/telemetry.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/arena_test_case.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/conversational_test_case.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/llm_test_case.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/mcp.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_case/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/cache.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/hooks.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/hyperparameters.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/test_run/test_run.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/context.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/offline_evals/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/offline_evals/api.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/offline_evals/span.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/offline_evals/thread.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/offline_evals/trace.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/otel/__init__.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/otel/exporter.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/otel/test_exporter.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/otel/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/patchers.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/perf_epoch_bridge.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/trace_context.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/trace_test_manager.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/tracing.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/types.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/tracing/utils.py +0 -0
- {deepeval-3.8.3 → deepeval-3.8.4}/deepeval/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__: str = "3.8.4"
|
|
@@ -316,6 +316,12 @@ class Settings(BaseSettings):
|
|
|
316
316
|
description="If set, export a timestamped JSON of the latest test run into this folder (created if missing).",
|
|
317
317
|
)
|
|
318
318
|
|
|
319
|
+
# When set, overrides the default DeepEval cache directory
|
|
320
|
+
DEEPEVAL_CACHE_FOLDER: Optional[Path] = Field(
|
|
321
|
+
".deepeval",
|
|
322
|
+
description="Path to the directory used by DeepEval to store cache files. If set, this overrides the default cache location. The directory will be created if it does not exist.",
|
|
323
|
+
)
|
|
324
|
+
|
|
319
325
|
# Display / Truncation
|
|
320
326
|
DEEPEVAL_MAXLEN_TINY: Optional[int] = Field(
|
|
321
327
|
40,
|
|
@@ -1015,7 +1021,12 @@ class Settings(BaseSettings):
|
|
|
1015
1021
|
def _coerce_yes_no(cls, v):
|
|
1016
1022
|
return None if v is None else parse_bool(v, default=False)
|
|
1017
1023
|
|
|
1018
|
-
@field_validator(
|
|
1024
|
+
@field_validator(
|
|
1025
|
+
"DEEPEVAL_RESULTS_FOLDER",
|
|
1026
|
+
"ENV_DIR_PATH",
|
|
1027
|
+
"DEEPEVAL_CACHE_FOLDER",
|
|
1028
|
+
mode="before",
|
|
1029
|
+
)
|
|
1019
1030
|
@classmethod
|
|
1020
1031
|
def _coerce_path(cls, v):
|
|
1021
1032
|
if v is None:
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
from enum import Enum
|
|
2
2
|
from typing import Union
|
|
3
|
+
import os
|
|
3
4
|
|
|
4
5
|
KEY_FILE: str = ".deepeval"
|
|
5
|
-
HIDDEN_DIR: str = ".deepeval"
|
|
6
|
+
HIDDEN_DIR: str = os.getenv("DEEPEVAL_CACHE_FOLDER", ".deepeval")
|
|
6
7
|
PYTEST_RUN_TEST_NAME: str = "CONFIDENT_AI_RUN_TEST_NAME"
|
|
7
8
|
LOGIN_PROMPT = "\n✨👀 Looking for a place for your LLM test data to live 🏡❤️ ? Use [rgb(106,0,255)]Confident AI[/rgb(106,0,255)] to get & share testing reports, experiment with models/prompts, and catch regressions for your LLM system. Just run [cyan]'deepeval login'[/cyan] in the CLI."
|
|
8
9
|
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
-
from pydantic import
|
|
1
|
+
from pydantic import (
|
|
2
|
+
BaseModel,
|
|
3
|
+
Field,
|
|
4
|
+
AliasChoices,
|
|
5
|
+
ConfigDict,
|
|
6
|
+
model_validator,
|
|
7
|
+
model_serializer,
|
|
8
|
+
)
|
|
2
9
|
from enum import Enum
|
|
3
|
-
|
|
10
|
+
import uuid
|
|
11
|
+
from typing import List, Optional, Dict, Any, Union, Type
|
|
4
12
|
from pydantic import TypeAdapter
|
|
5
13
|
|
|
6
14
|
from deepeval.utils import make_model_config
|
|
@@ -33,6 +41,12 @@ class ModelProvider(Enum):
|
|
|
33
41
|
OPENROUTER = "OPENROUTER"
|
|
34
42
|
|
|
35
43
|
|
|
44
|
+
class ToolMode(str, Enum):
|
|
45
|
+
ALLOW_ADDITIONAL = "ALLOW_ADDITIONAL"
|
|
46
|
+
NO_ADDITIONAL = "NO_ADDITIONAL"
|
|
47
|
+
STRICT = "STRICT"
|
|
48
|
+
|
|
49
|
+
|
|
36
50
|
class ModelSettings(BaseModel):
|
|
37
51
|
provider: Optional[ModelProvider] = None
|
|
38
52
|
name: Optional[str] = None
|
|
@@ -100,6 +114,7 @@ class OutputSchemaField(BaseModel):
|
|
|
100
114
|
id: str
|
|
101
115
|
type: SchemaDataType
|
|
102
116
|
name: str
|
|
117
|
+
description: Optional[str] = None
|
|
103
118
|
required: Optional[bool] = False
|
|
104
119
|
parent_id: Optional[str] = Field(
|
|
105
120
|
default=None,
|
|
@@ -109,8 +124,36 @@ class OutputSchemaField(BaseModel):
|
|
|
109
124
|
|
|
110
125
|
|
|
111
126
|
class OutputSchema(BaseModel):
|
|
127
|
+
id: Optional[str] = None
|
|
112
128
|
fields: Optional[List[OutputSchemaField]] = None
|
|
129
|
+
name: Optional[str] = None
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class Tool(BaseModel):
|
|
133
|
+
id: str = Field(default_factory=lambda: str(uuid.uuid4()))
|
|
113
134
|
name: str
|
|
135
|
+
description: Optional[str] = None
|
|
136
|
+
mode: ToolMode
|
|
137
|
+
structured_schema: Optional[Union[Type[BaseModel], OutputSchema]] = Field(
|
|
138
|
+
serialization_alias="structuredSchema",
|
|
139
|
+
validation_alias=AliasChoices("structured_schema", "structuredSchema"),
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
@model_validator(mode="after")
|
|
143
|
+
def update_schema(self):
|
|
144
|
+
if not isinstance(self.structured_schema, OutputSchema):
|
|
145
|
+
from deepeval.prompt.utils import construct_output_schema
|
|
146
|
+
|
|
147
|
+
self.structured_schema = construct_output_schema(
|
|
148
|
+
self.structured_schema
|
|
149
|
+
)
|
|
150
|
+
return self
|
|
151
|
+
|
|
152
|
+
@property
|
|
153
|
+
def input_schema(self) -> Dict[str, Any]:
|
|
154
|
+
from deepeval.prompt.utils import output_schema_to_json_schema
|
|
155
|
+
|
|
156
|
+
return output_schema_to_json_schema(self.structured_schema)
|
|
114
157
|
|
|
115
158
|
|
|
116
159
|
###################################
|
|
@@ -186,6 +229,7 @@ class PromptHttpResponse(BaseModel):
|
|
|
186
229
|
serialization_alias="outputSchema",
|
|
187
230
|
validation_alias=AliasChoices("output_schema", "outputSchema"),
|
|
188
231
|
)
|
|
232
|
+
tools: Optional[List[Tool]] = None
|
|
189
233
|
|
|
190
234
|
|
|
191
235
|
class PromptPushRequest(BaseModel):
|
|
@@ -196,6 +240,7 @@ class PromptPushRequest(BaseModel):
|
|
|
196
240
|
alias: str
|
|
197
241
|
text: Optional[str] = None
|
|
198
242
|
messages: Optional[List[PromptMessage]] = None
|
|
243
|
+
tools: Optional[List[Tool]] = None
|
|
199
244
|
interpolation_type: PromptInterpolationType = Field(
|
|
200
245
|
serialization_alias="interpolationType"
|
|
201
246
|
)
|
|
@@ -215,6 +260,7 @@ class PromptUpdateRequest(BaseModel):
|
|
|
215
260
|
|
|
216
261
|
text: Optional[str] = None
|
|
217
262
|
messages: Optional[List[PromptMessage]] = None
|
|
263
|
+
tools: Optional[List[Tool]] = None
|
|
218
264
|
interpolation_type: PromptInterpolationType = Field(
|
|
219
265
|
serialization_alias="interpolationType"
|
|
220
266
|
)
|
|
@@ -25,6 +25,7 @@ from deepeval.prompt.api import (
|
|
|
25
25
|
ModelSettings,
|
|
26
26
|
OutputSchema,
|
|
27
27
|
OutputType,
|
|
28
|
+
Tool,
|
|
28
29
|
)
|
|
29
30
|
from deepeval.prompt.utils import (
|
|
30
31
|
interpolate_text,
|
|
@@ -101,6 +102,7 @@ class CachedPrompt(BaseModel):
|
|
|
101
102
|
model_settings: Optional[ModelSettings]
|
|
102
103
|
output_type: Optional[OutputType]
|
|
103
104
|
output_schema: Optional[OutputSchema]
|
|
105
|
+
tools: Optional[List[Tool]] = None
|
|
104
106
|
|
|
105
107
|
|
|
106
108
|
class Prompt:
|
|
@@ -131,6 +133,7 @@ class Prompt:
|
|
|
131
133
|
interpolation_type or PromptInterpolationType.FSTRING
|
|
132
134
|
)
|
|
133
135
|
self.confident_api_key = confident_api_key
|
|
136
|
+
self.tools: Optional[List[Tool]] = None
|
|
134
137
|
|
|
135
138
|
self._version = None
|
|
136
139
|
self._prompt_version_id: Optional[str] = None
|
|
@@ -308,6 +311,7 @@ class Prompt:
|
|
|
308
311
|
model_settings: Optional[ModelSettings] = None,
|
|
309
312
|
output_type: Optional[OutputType] = None,
|
|
310
313
|
output_schema: Optional[OutputSchema] = None,
|
|
314
|
+
tools: Optional[List[Tool]] = None,
|
|
311
315
|
):
|
|
312
316
|
if portalocker is None or not self.alias:
|
|
313
317
|
return
|
|
@@ -354,6 +358,7 @@ class Prompt:
|
|
|
354
358
|
"model_settings": model_settings,
|
|
355
359
|
"output_type": output_type,
|
|
356
360
|
"output_schema": output_schema,
|
|
361
|
+
"tools": tools,
|
|
357
362
|
}
|
|
358
363
|
|
|
359
364
|
if cache_key == VERSION_CACHE_KEY:
|
|
@@ -415,6 +420,7 @@ class Prompt:
|
|
|
415
420
|
self.output_schema = construct_base_model(
|
|
416
421
|
cached_prompt.output_schema
|
|
417
422
|
)
|
|
423
|
+
self.tools = cached_prompt.tools
|
|
418
424
|
|
|
419
425
|
end_time = time.perf_counter()
|
|
420
426
|
time_taken = format(end_time - start_time, ".2f")
|
|
@@ -494,6 +500,7 @@ class Prompt:
|
|
|
494
500
|
self.output_schema = construct_base_model(
|
|
495
501
|
cached_prompt.output_schema
|
|
496
502
|
)
|
|
503
|
+
self.tools = cached_prompt.tools
|
|
497
504
|
return
|
|
498
505
|
except Exception:
|
|
499
506
|
pass
|
|
@@ -547,6 +554,7 @@ class Prompt:
|
|
|
547
554
|
model_settings=data.get("modelSettings", None),
|
|
548
555
|
output_type=data.get("outputType", None),
|
|
549
556
|
output_schema=data.get("outputSchema", None),
|
|
557
|
+
tools=data.get("tools", None),
|
|
550
558
|
)
|
|
551
559
|
except Exception:
|
|
552
560
|
if fallback_to_cache:
|
|
@@ -573,6 +581,7 @@ class Prompt:
|
|
|
573
581
|
self.output_schema = construct_base_model(
|
|
574
582
|
response.output_schema
|
|
575
583
|
)
|
|
584
|
+
self.tools = response.tools
|
|
576
585
|
|
|
577
586
|
end_time = time.perf_counter()
|
|
578
587
|
time_taken = format(end_time - start_time, ".2f")
|
|
@@ -594,6 +603,7 @@ class Prompt:
|
|
|
594
603
|
model_settings=response.model_settings,
|
|
595
604
|
output_type=response.output_type,
|
|
596
605
|
output_schema=response.output_schema,
|
|
606
|
+
tools=response.tools,
|
|
597
607
|
)
|
|
598
608
|
|
|
599
609
|
def push(
|
|
@@ -606,6 +616,7 @@ class Prompt:
|
|
|
606
616
|
model_settings: Optional[ModelSettings] = None,
|
|
607
617
|
output_type: Optional[OutputType] = None,
|
|
608
618
|
output_schema: Optional[Type[BaseModel]] = None,
|
|
619
|
+
tools: Optional[List[Tool]] = None,
|
|
609
620
|
_verbose: Optional[bool] = True,
|
|
610
621
|
):
|
|
611
622
|
if self.alias is None:
|
|
@@ -628,6 +639,7 @@ class Prompt:
|
|
|
628
639
|
output_type=output_type or self.output_type,
|
|
629
640
|
output_schema=construct_output_schema(output_schema)
|
|
630
641
|
or construct_output_schema(self.output_schema),
|
|
642
|
+
tools=tools or self.tools,
|
|
631
643
|
)
|
|
632
644
|
try:
|
|
633
645
|
body = body.model_dump(
|
|
@@ -655,6 +667,7 @@ class Prompt:
|
|
|
655
667
|
self.model_settings = model_settings or self.model_settings
|
|
656
668
|
self.output_type = output_type or self.output_type
|
|
657
669
|
self.output_schema = output_schema or self.output_schema
|
|
670
|
+
self.tools = tools or self.tools
|
|
658
671
|
self.type = PromptType.TEXT if text_template else PromptType.LIST
|
|
659
672
|
if _verbose:
|
|
660
673
|
console = Console()
|
|
@@ -674,6 +687,7 @@ class Prompt:
|
|
|
674
687
|
model_settings: Optional[ModelSettings] = None,
|
|
675
688
|
output_type: Optional[OutputType] = None,
|
|
676
689
|
output_schema: Optional[Type[BaseModel]] = None,
|
|
690
|
+
tools: Optional[List[Tool]] = None,
|
|
677
691
|
):
|
|
678
692
|
if self.alias is None:
|
|
679
693
|
raise ValueError(
|
|
@@ -687,6 +701,7 @@ class Prompt:
|
|
|
687
701
|
model_settings=model_settings,
|
|
688
702
|
output_type=output_type,
|
|
689
703
|
output_schema=construct_output_schema(output_schema),
|
|
704
|
+
tools=tools,
|
|
690
705
|
)
|
|
691
706
|
try:
|
|
692
707
|
body = body.model_dump(
|
|
@@ -712,6 +727,7 @@ class Prompt:
|
|
|
712
727
|
self.model_settings = model_settings
|
|
713
728
|
self.output_type = output_type
|
|
714
729
|
self.output_schema = output_schema
|
|
730
|
+
self.tools = tools
|
|
715
731
|
self.type = PromptType.TEXT if text else PromptType.LIST
|
|
716
732
|
console = Console()
|
|
717
733
|
console.print("✅ Prompt successfully updated on Confident AI!")
|
|
@@ -796,6 +812,10 @@ class Prompt:
|
|
|
796
812
|
messages=data.get("messages", None),
|
|
797
813
|
type=data["type"],
|
|
798
814
|
interpolation_type=data["interpolationType"],
|
|
815
|
+
model_settings=data.get("modelSettings", None),
|
|
816
|
+
output_type=data.get("outputType", None),
|
|
817
|
+
output_schema=data.get("outputSchema", None),
|
|
818
|
+
tools=data.get("tools", None),
|
|
799
819
|
)
|
|
800
820
|
|
|
801
821
|
# Update the cache with fresh data from server
|
|
@@ -808,6 +828,10 @@ class Prompt:
|
|
|
808
828
|
prompt_version_id=response.id,
|
|
809
829
|
type=response.type,
|
|
810
830
|
interpolation_type=response.interpolation_type,
|
|
831
|
+
model_settings=response.model_settings,
|
|
832
|
+
output_type=response.output_type,
|
|
833
|
+
output_schema=response.output_schema,
|
|
834
|
+
tools=response.tools,
|
|
811
835
|
)
|
|
812
836
|
|
|
813
837
|
# Update in-memory properties with fresh data (thread-safe)
|
|
@@ -819,6 +843,12 @@ class Prompt:
|
|
|
819
843
|
self._prompt_version_id = response.id
|
|
820
844
|
self.type = response.type
|
|
821
845
|
self.interpolation_type = response.interpolation_type
|
|
846
|
+
self.model_settings = response.model_settings
|
|
847
|
+
self.output_type = response.output_type
|
|
848
|
+
self.output_schema = construct_base_model(
|
|
849
|
+
response.output_schema
|
|
850
|
+
)
|
|
851
|
+
self.tools = response.tools
|
|
822
852
|
|
|
823
853
|
except Exception:
|
|
824
854
|
pass
|
|
@@ -130,7 +130,7 @@ def construct_base_model(
|
|
|
130
130
|
if not schema:
|
|
131
131
|
return None
|
|
132
132
|
if not schema.fields:
|
|
133
|
-
return create_model(schema.name)
|
|
133
|
+
return create_model(schema.name or "EmptySchema")
|
|
134
134
|
|
|
135
135
|
parent_id_map: Dict[Optional[str], List[OutputSchemaField]] = {}
|
|
136
136
|
for field in schema.fields:
|
|
@@ -153,7 +153,7 @@ def construct_base_model(
|
|
|
153
153
|
default = ... if field.required else None
|
|
154
154
|
root_fields[field.name] = (python_type, default)
|
|
155
155
|
|
|
156
|
-
return create_model(schema.name, **root_fields)
|
|
156
|
+
return create_model(schema.name or "Schema", **root_fields)
|
|
157
157
|
|
|
158
158
|
|
|
159
159
|
###################################
|
|
@@ -219,3 +219,73 @@ def construct_output_schema(
|
|
|
219
219
|
return None
|
|
220
220
|
all_fields = _process_model(base_model_class)
|
|
221
221
|
return OutputSchema(fields=all_fields, name=base_model_class.__name__)
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def output_schema_to_json_schema(
|
|
225
|
+
schema: Optional[OutputSchema] = None,
|
|
226
|
+
) -> Dict[str, Any]:
|
|
227
|
+
if not schema or not schema.fields:
|
|
228
|
+
return {
|
|
229
|
+
"type": "object",
|
|
230
|
+
"properties": {},
|
|
231
|
+
"additionalProperties": False,
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
# Build parent-child mapping
|
|
235
|
+
children_map: Dict[Optional[str], List[OutputSchemaField]] = {}
|
|
236
|
+
for field in schema.fields:
|
|
237
|
+
parent_id = field.parent_id
|
|
238
|
+
children_map.setdefault(parent_id, []).append(field)
|
|
239
|
+
|
|
240
|
+
# Map SchemaDataType to JSON Schema types
|
|
241
|
+
def map_type(dtype: SchemaDataType) -> str:
|
|
242
|
+
return {
|
|
243
|
+
SchemaDataType.STRING: "string",
|
|
244
|
+
SchemaDataType.INTEGER: "integer",
|
|
245
|
+
SchemaDataType.FLOAT: "number",
|
|
246
|
+
SchemaDataType.BOOLEAN: "boolean",
|
|
247
|
+
SchemaDataType.OBJECT: "object",
|
|
248
|
+
SchemaDataType.NULL: "null",
|
|
249
|
+
}.get(dtype, "string")
|
|
250
|
+
|
|
251
|
+
def build_node(field_list: List[OutputSchemaField]) -> Dict[str, Any]:
|
|
252
|
+
properties = {}
|
|
253
|
+
required_fields = []
|
|
254
|
+
|
|
255
|
+
for field in field_list:
|
|
256
|
+
field_type = (
|
|
257
|
+
field.type.value if hasattr(field.type, "value") else field.type
|
|
258
|
+
)
|
|
259
|
+
field_schema = {"type": map_type(field.type)}
|
|
260
|
+
|
|
261
|
+
# Add description if available
|
|
262
|
+
if field.description:
|
|
263
|
+
field_schema["description"] = field.description
|
|
264
|
+
|
|
265
|
+
# Handle nested objects
|
|
266
|
+
if field_type == SchemaDataType.OBJECT.value:
|
|
267
|
+
children = children_map.get(field.id, [])
|
|
268
|
+
if children:
|
|
269
|
+
nested = build_node(children)
|
|
270
|
+
field_schema.update(nested)
|
|
271
|
+
else:
|
|
272
|
+
field_schema["properties"] = {}
|
|
273
|
+
field_schema["additionalProperties"] = False
|
|
274
|
+
|
|
275
|
+
properties[field.name] = field_schema
|
|
276
|
+
if field.required:
|
|
277
|
+
required_fields.append(field.name)
|
|
278
|
+
|
|
279
|
+
schema_dict = {
|
|
280
|
+
"type": "object",
|
|
281
|
+
"properties": properties,
|
|
282
|
+
"additionalProperties": False,
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
if required_fields:
|
|
286
|
+
schema_dict["required"] = required_fields
|
|
287
|
+
|
|
288
|
+
return schema_dict
|
|
289
|
+
|
|
290
|
+
root_fields = children_map.get(None, [])
|
|
291
|
+
return build_node(root_fields)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__: str = "3.8.3"
|
|
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
|
|
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
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/dyck_languages.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/hyperbaton.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/navigate.txt
RENAMED
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/object_counting.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/ruin_names.txt
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
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/web_of_lies.txt
RENAMED
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/cot_prompts/word_sorting.txt
RENAMED
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/dyck_languages.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/hyperbaton.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/navigate.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/ruin_names.txt
RENAMED
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/snarks.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/web_of_lies.txt
RENAMED
|
File without changes
|
{deepeval-3.8.3 → deepeval-3.8.4}/deepeval/benchmarks/big_bench_hard/shot_prompts/word_sorting.txt
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
|