gitextract_z1bftxv1/ ├── .coveragerc ├── .cursor/ │ └── rules/ │ ├── documentation-sync.mdc │ ├── followups.mdc │ ├── new-features-planning.mdc │ ├── readme.md │ └── simple-language.mdc ├── .cursorignore ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── pull_request_template.md │ ├── dependabot.yml │ └── workflows/ │ ├── ai-label.yml │ ├── evals.yml │ ├── python-publish.yml │ ├── ruff.yml │ ├── scheduled-release.yml │ ├── test.yml │ ├── test_docs.yml │ └── ty.yml ├── .gitignore ├── .grit/ │ ├── .gitignore │ └── grit.yaml ├── .pre-commit-config.yaml ├── .ruff.toml ├── AGENT.md ├── CHANGELOG.md ├── CLAUDE.md ├── CONTRIBUTING.md ├── LICENSE ├── NEW_PROVIDER_AGENT_INSTRUCTIONS.md ├── README.md ├── build_mkdocs.sh ├── cross_link_mapping.yaml ├── docs/ │ ├── AGENT.md │ ├── api-docstring-assessment.md │ ├── api.md │ ├── architecture.md │ ├── blog/ │ │ ├── .authors.yml │ │ ├── index.md │ │ └── posts/ │ │ ├── aisummit-2023.md │ │ ├── announcing-gemini-tool-calling-support.md │ │ ├── announcing-instructor-responses-support.md │ │ ├── announcing-unified-provider-interface.md │ │ ├── anthropic-prompt-caching.md │ │ ├── anthropic-web-search-structured.md │ │ ├── anthropic.md │ │ ├── bad-schemas-could-break-llms.md │ │ ├── best_framework.md │ │ ├── caching.md │ │ ├── chain-of-density.md │ │ ├── chat-with-your-pdf-with-gemini.md │ │ ├── citations.md │ │ ├── consistent-stories.md │ │ ├── course.md │ │ ├── cursor-rules.md │ │ ├── distilation-part1.md │ │ ├── extract-model-looks.md │ │ ├── extracting-model-metadata.md │ │ ├── fake-data.md │ │ ├── full-fastapi-visibility.md │ │ ├── generating-pdf-citations.md │ │ ├── generator.md │ │ ├── google-openai-client.md │ │ ├── introducing-structured-outputs-with-cerebras-inference.md │ │ ├── introducing-structured-outputs.md │ │ ├── introduction.md │ │ ├── jinja-proposal.md │ │ ├── langsmith.md │ │ ├── learn-async.md │ │ ├── llm-as-reranker.md │ │ ├── llms-txt-adoption.md │ │ ├── llms-txt-support.md │ │ ├── logfire.md │ │ ├── lseg-market-surveillance.md │ │ ├── matching-language.md │ │ ├── migrating-to-uv.md │ │ ├── mkdocs-llmstxt-plugin-integration.md │ │ ├── multimodal-gemini.md │ │ ├── native_caching.md │ │ ├── open_source.md │ │ ├── openai-distilation-store.md │ │ ├── openai-multimodal.md │ │ ├── pairwise-llm-judge.md │ │ ├── parea.md │ │ ├── pydantic-is-still-all-you-need.md │ │ ├── rag-and-beyond.md │ │ ├── rag-timelines.md │ │ ├── semantic-validation-structured-outputs.md │ │ ├── situate-context.md │ │ ├── string-based-init.md │ │ ├── structured-output-anthropic.md │ │ ├── tidy-data-from-messy-tables.md │ │ ├── timestamp.md │ │ ├── using_json.md │ │ ├── validation-part1.md │ │ ├── version-1.md │ │ ├── why-care-about-mcps.md │ │ ├── writer-support.md │ │ ├── youtube-flashcards.md │ │ └── youtube-transcripts.md │ ├── cli/ │ │ ├── batch.md │ │ ├── finetune.md │ │ ├── index.md │ │ └── usage.md │ ├── concepts/ │ │ ├── alias.md │ │ ├── batch.md │ │ ├── caching.md │ │ ├── citation.md │ │ ├── dictionary_operations.md │ │ ├── distillation.md │ │ ├── enums.md │ │ ├── error_handling.md │ │ ├── fastapi.md │ │ ├── fields.md │ │ ├── from_provider.md │ │ ├── hooks.md │ │ ├── index.md │ │ ├── iterable.md │ │ ├── lists.md │ │ ├── logging.md │ │ ├── maybe.md │ │ ├── migration.md │ │ ├── mode-migration.md │ │ ├── models.md │ │ ├── multimodal.md │ │ ├── parallel.md │ │ ├── partial.md │ │ ├── patching.md │ │ ├── philosophy.md │ │ ├── prompt_caching.md │ │ ├── prompting.md │ │ ├── raw_response.md │ │ ├── reask_validation.md │ │ ├── retrying.md │ │ ├── semantic_validation.md │ │ ├── templating.md │ │ ├── typeadapter.md │ │ ├── typeddicts.md │ │ ├── types.md │ │ ├── union.md │ │ ├── unions.md │ │ ├── usage.md │ │ └── validation.md │ ├── contributing.md │ ├── debugging.md │ ├── examples/ │ │ ├── action_items.md │ │ ├── audio_extraction.md │ │ ├── batch_classification_langsmith.md │ │ ├── batch_in_memory.md │ │ ├── batch_job_oai.md │ │ ├── building_knowledge_graphs.md │ │ ├── bulk_classification.md │ │ ├── classification.md │ │ ├── document_segmentation.md │ │ ├── entity_resolution.md │ │ ├── exact_citations.md │ │ ├── examples.md │ │ ├── extract_contact_info.md │ │ ├── extract_slides.md │ │ ├── extracting_receipts.md │ │ ├── extracting_tables.md │ │ ├── groq.md │ │ ├── image_to_ad_copy.md │ │ ├── index.md │ │ ├── knowledge_graph.md │ │ ├── local_classification.md │ │ ├── mistral.md │ │ ├── moderation.md │ │ ├── multi_modal_gemini.md │ │ ├── multiple_classification.md │ │ ├── ollama.md │ │ ├── open_source.md │ │ ├── pandas_df.md │ │ ├── partial_streaming.md │ │ ├── pii.md │ │ ├── planning-tasks.md │ │ ├── recursive.md │ │ ├── search.md │ │ ├── self_critique.md │ │ ├── single_classification.md │ │ ├── sqlmodel.md │ │ ├── tables_from_vision.md │ │ ├── tracing_with_langfuse.md │ │ ├── using_decimals.md │ │ ├── watsonx.md │ │ └── youtube_clips.md │ ├── faq.md │ ├── getting-started.md │ ├── help.md │ ├── hooks/ │ │ └── hide_lines.py │ ├── index.md │ ├── installation.md │ ├── integrations/ │ │ ├── anthropic.md │ │ ├── anyscale.md │ │ ├── azure.md │ │ ├── bedrock.md │ │ ├── cerebras.md │ │ ├── cohere.md │ │ ├── cortex.md │ │ ├── databricks.md │ │ ├── deepseek.md │ │ ├── fireworks.md │ │ ├── genai.md │ │ ├── google.md │ │ ├── groq.md │ │ ├── index.md │ │ ├── litellm.md │ │ ├── llama-cpp-python.md │ │ ├── mistral.md │ │ ├── ollama.md │ │ ├── openai-responses.md │ │ ├── openai.md │ │ ├── openrouter.md │ │ ├── perplexity.md │ │ ├── sambanova.md │ │ ├── together.md │ │ ├── truefoundry.md │ │ ├── vertex.md │ │ ├── writer.md │ │ └── xai.md │ ├── javascripts/ │ │ └── katex.js │ ├── jobs.md │ ├── learning/ │ │ ├── getting_started/ │ │ │ ├── first_extraction.md │ │ │ ├── installation.md │ │ │ ├── response_models.md │ │ │ └── structured_outputs.md │ │ ├── index.md │ │ ├── patterns/ │ │ │ ├── field_validation.md │ │ │ ├── list_extraction.md │ │ │ ├── nested_structure.md │ │ │ ├── optional_fields.md │ │ │ ├── prompt_templates.md │ │ │ └── simple_object.md │ │ ├── streaming/ │ │ │ ├── basics.md │ │ │ └── lists.md │ │ └── validation/ │ │ ├── basics.md │ │ ├── custom_validators.md │ │ ├── field_level_validation.md │ │ └── retry_mechanisms.md │ ├── llms.txt │ ├── modes-comparison.md │ ├── newsletter.md │ ├── overrides/ │ │ └── main.html │ ├── prompting/ │ │ ├── decomposition/ │ │ │ ├── decomp.md │ │ │ ├── faithful_cot.md │ │ │ ├── least_to_most.md │ │ │ ├── plan_and_solve.md │ │ │ ├── program_of_thought.md │ │ │ ├── recurs_of_thought.md │ │ │ ├── skeleton_of_thought.md │ │ │ └── tree-of-thought.md │ │ ├── ensembling/ │ │ │ ├── cosp.md │ │ │ ├── dense.md │ │ │ ├── diverse.md │ │ │ ├── max_mutual_information.md │ │ │ ├── meta_cot.md │ │ │ ├── more.md │ │ │ ├── prompt_paraphrasing.md │ │ │ ├── self_consistency.md │ │ │ ├── universal_self_consistency.md │ │ │ └── usp.md │ │ ├── few_shot/ │ │ │ ├── cosp.md │ │ │ ├── example_generation/ │ │ │ │ └── sg_icl.md │ │ │ ├── example_ordering.md │ │ │ └── exemplar_selection/ │ │ │ ├── knn.md │ │ │ └── vote_k.md │ │ ├── index.md │ │ ├── self_criticism/ │ │ │ ├── chain_of_verification.md │ │ │ ├── cumulative_reason.md │ │ │ ├── reversecot.md │ │ │ ├── self_calibration.md │ │ │ ├── self_refine.md │ │ │ └── self_verification.md │ │ ├── thought_generation/ │ │ │ ├── chain_of_thought_few_shot/ │ │ │ │ ├── active_prompt.md │ │ │ │ ├── auto_cot.md │ │ │ │ ├── complexity_based.md │ │ │ │ ├── contrastive.md │ │ │ │ ├── memory_of_thought.md │ │ │ │ ├── prompt_mining.md │ │ │ │ └── uncertainty_routed_cot.md │ │ │ └── chain_of_thought_zero_shot/ │ │ │ ├── analogical_prompting.md │ │ │ ├── step_back_prompting.md │ │ │ ├── tab_cot.md │ │ │ └── thread_of_thought.md │ │ └── zero_shot/ │ │ ├── emotion_prompting.md │ │ ├── rar.md │ │ ├── re2.md │ │ ├── role_prompting.md │ │ ├── s2a.md │ │ ├── self_ask.md │ │ ├── simtom.md │ │ └── style_prompting.md │ ├── repository-overview.md │ ├── start-here.md │ ├── templates/ │ │ └── provider_template.md │ ├── tutorials/ │ │ ├── 1-introduction.ipynb │ │ ├── 2-tips.ipynb │ │ ├── 3-0-applications-rag.ipynb │ │ ├── 3-1-validation-rag.ipynb │ │ ├── 4-validation.ipynb │ │ ├── 5-knowledge-graphs.ipynb │ │ ├── 6-chain-of-density.ipynb │ │ ├── 7-synthetic-data-generation.ipynb │ │ └── index.md │ └── why.md ├── ellipsis.yaml ├── examples/ │ ├── __init__.py │ ├── anthropic/ │ │ └── run.py │ ├── anthropic-web-tool/ │ │ └── run.py │ ├── asyncio-benchmarks/ │ │ └── run.py │ ├── auto-ticketer/ │ │ └── run.py │ ├── automodel/ │ │ └── run.py │ ├── avail/ │ │ ├── run.py │ │ └── run_mixtral.py │ ├── batch-classification/ │ │ ├── run-cache.py │ │ ├── run.py │ │ └── run_langsmith.py │ ├── batch_api/ │ │ ├── README.md │ │ ├── in_memory_batch_example.py │ │ └── run_batch_test.py │ ├── caching/ │ │ ├── example_diskcache.py │ │ ├── example_redis.py │ │ ├── lru.py │ │ └── run.py │ ├── caching_prototype/ │ │ ├── README.md │ │ └── run_real.py │ ├── chain-of-density/ │ │ ├── Readme.md │ │ ├── chain_of_density.py │ │ ├── finetune.py │ │ └── requirements.txt │ ├── citation_with_extraction/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── citation_fuzzy_match.py │ │ ├── diagram.py │ │ ├── main.py │ │ ├── modal_main.py │ │ └── requirements.txt │ ├── citations/ │ │ └── run.py │ ├── classification/ │ │ ├── classifiy_with_validation.py │ │ ├── multi_prediction.py │ │ └── simple_prediction.py │ ├── codegen-from-schema/ │ │ ├── create_fastapi_app.py │ │ ├── input.json │ │ ├── models.py │ │ ├── readme.md │ │ └── run.py │ ├── cohere/ │ │ └── cohere.py │ ├── crm/ │ │ └── run.py │ ├── decimals/ │ │ └── run.py │ ├── distilations/ │ │ ├── math_finetunes_val.jsonl │ │ ├── readme.md │ │ ├── three_digit_mul.py │ │ └── three_digit_mul_dispatch.py │ ├── evals/ │ │ ├── eval.py │ │ ├── models.py │ │ ├── stats_dict.py │ │ ├── streamlit.py │ │ └── test.jsonl │ ├── extract-table/ │ │ ├── run_vision.py │ │ ├── run_vision_langsmith.py │ │ ├── run_vision_org.py │ │ ├── run_vision_org_table.py │ │ ├── run_vision_receipt.py │ │ └── test.py │ ├── extracting-pii/ │ │ └── run.py │ ├── fastapi_app/ │ │ ├── __init__.py │ │ ├── main.py │ │ └── script.py │ ├── fizzbuzz/ │ │ └── run.py │ ├── gpt-engineer/ │ │ ├── changes.diff │ │ ├── generate.py │ │ ├── program.json │ │ └── refactor.py │ ├── groq/ │ │ ├── groq_example.py │ │ └── groq_example2.py │ ├── hooks/ │ │ ├── README.md │ │ └── run.py │ ├── iterables/ │ │ └── run.py │ ├── knowledge-graph/ │ │ ├── run.py │ │ └── run_stream.py │ ├── learn-async/ │ │ └── run.py │ ├── llm-judge-relevance/ │ │ └── run.py │ ├── logfire/ │ │ ├── classify.py │ │ ├── image.py │ │ ├── requirements.txt │ │ └── validate.py │ ├── logfire-fastapi/ │ │ ├── Readme.md │ │ ├── requirements.txt │ │ ├── server.py │ │ └── test.py │ ├── logging/ │ │ └── run.py │ ├── match_language/ │ │ ├── run_v1.py │ │ └── run_v2.py │ ├── mistral/ │ │ └── mistral.py │ ├── multi-actions/ │ │ └── run.py │ ├── multiple_search_queries/ │ │ ├── diagram.py │ │ └── segment_search_queries.py │ ├── open_source_examples/ │ │ ├── README.md │ │ ├── openrouter.py │ │ ├── perplexity.py │ │ └── runpod.py │ ├── openai/ │ │ ├── __init__.py │ │ └── run.py │ ├── openai-audio/ │ │ └── run.py │ ├── parallel/ │ │ └── run.py │ ├── partial_streaming/ │ │ ├── benchmark.py │ │ └── run.py │ ├── patching/ │ │ ├── anyscale.py │ │ ├── oai.py │ │ ├── pcalls.py │ │ └── together.py │ ├── proscons/ │ │ └── run.py │ ├── query_planner_execution/ │ │ ├── diagram.py │ │ └── query_planner_execution.py │ ├── recursive_filepaths/ │ │ ├── diagram.py │ │ └── parse_recursive_paths.py │ ├── reranker/ │ │ └── run.py │ ├── resolving-complex-entities/ │ │ └── run.py │ ├── retry/ │ │ └── run.py │ ├── safer_sql_example/ │ │ ├── diagram.py │ │ └── safe_sql.py │ ├── simple-extraction/ │ │ ├── maybe_user.py │ │ └── user.py │ ├── situate_context/ │ │ └── run.py │ ├── sqlmodel/ │ │ ├── run.py │ │ └── test_basic.py │ ├── stream_action_items/ │ │ └── run.py │ ├── synethic-data/ │ │ └── run.py │ ├── task_planner/ │ │ ├── diagram.py │ │ └── task_planner_topological_sort.py │ ├── tenacity-benchmarks/ │ │ └── run.py │ ├── timestamps/ │ │ └── run.py │ ├── union/ │ │ └── run.py │ ├── validated-multiclass/ │ │ ├── output.json │ │ └── run.py │ ├── validators/ │ │ ├── allm_validator.py │ │ ├── annotator.py │ │ ├── chain_of_thought_validator.py │ │ ├── citations.py │ │ ├── competitors.py │ │ ├── field_validator.py │ │ ├── just_a_guy.py │ │ ├── llm_validator.py │ │ ├── moderation.py │ │ └── readme.md │ ├── vision/ │ │ ├── image_to_ad_copy.py │ │ ├── run.py │ │ ├── run_raw.py │ │ ├── run_table.py │ │ └── slides.py │ ├── watsonx/ │ │ └── watsonx.py │ ├── youtube/ │ │ └── run.py │ ├── youtube-clips/ │ │ └── run.py │ └── youtube-flashcards/ │ └── run.py ├── github_issue.md ├── instructor/ │ ├── __init__.py │ ├── _types/ │ │ ├── __init__.py │ │ └── _alias.py │ ├── auto_client.py │ ├── batch/ │ │ ├── __init__.py │ │ ├── models.py │ │ ├── processor.py │ │ ├── providers/ │ │ │ ├── __init__.py │ │ │ ├── anthropic.py │ │ │ ├── base.py │ │ │ └── openai.py │ │ ├── request.py │ │ └── utils.py │ ├── cache/ │ │ └── __init__.py │ ├── cli/ │ │ ├── __init__.py │ │ ├── batch.py │ │ ├── cli.py │ │ ├── deprecated_hub.py │ │ ├── files.py │ │ ├── jobs.py │ │ └── usage.py │ ├── client.py │ ├── core/ │ │ ├── __init__.py │ │ ├── client.py │ │ ├── exceptions.py │ │ ├── hooks.py │ │ ├── patch.py │ │ └── retry.py │ ├── distil.py │ ├── dsl/ │ │ ├── __init__.py │ │ ├── citation.py │ │ ├── iterable.py │ │ ├── json_tracker.py │ │ ├── maybe.py │ │ ├── parallel.py │ │ ├── partial.py │ │ ├── response_list.py │ │ ├── simple_type.py │ │ └── validators.py │ ├── exceptions.py │ ├── function_calls.py │ ├── hooks.py │ ├── mode.py │ ├── models.py │ ├── multimodal.py │ ├── patch.py │ ├── process_response.py │ ├── processing/ │ │ ├── __init__.py │ │ ├── function_calls.py │ │ ├── multimodal.py │ │ ├── response.py │ │ ├── schema.py │ │ └── validators.py │ ├── providers/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── anthropic/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── bedrock/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── cerebras/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── cohere/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── fireworks/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── gemini/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── genai/ │ │ │ ├── __init__.py │ │ │ └── client.py │ │ ├── groq/ │ │ │ ├── __init__.py │ │ │ └── client.py │ │ ├── mistral/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── openai/ │ │ │ ├── __init__.py │ │ │ └── utils.py │ │ ├── perplexity/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ ├── vertexai/ │ │ │ ├── __init__.py │ │ │ └── client.py │ │ ├── writer/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ └── utils.py │ │ └── xai/ │ │ ├── __init__.py │ │ ├── client.py │ │ └── utils.py │ ├── py.typed │ ├── templating.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── core.py │ │ └── providers.py │ ├── validation/ │ │ ├── __init__.py │ │ ├── async_validators.py │ │ └── llm_validators.py │ └── validators.py ├── mkdocs.yml ├── pyproject.toml ├── requirements-doc.txt ├── requirements-examples.txt ├── requirements.txt ├── scripts/ │ ├── README.md │ ├── audit_patterns.py │ ├── check_blog_excerpts.py │ ├── check_links.py │ ├── fix_api_calls.py │ ├── fix_doc_tests.py │ ├── fix_old_patterns.py │ ├── make_clean.py │ ├── make_desc.py │ ├── make_sitemap.py │ ├── validate_headings.py │ └── validate_meta_tags.py ├── sitemap.yaml ├── tests/ │ ├── __init__.py │ ├── conftest.py │ ├── docs/ │ │ ├── _concept_groups.py │ │ ├── _example_groups.py │ │ ├── conftest.py │ │ ├── test_concepts.py │ │ ├── test_concepts_advanced.py │ │ ├── test_concepts_operations.py │ │ ├── test_concepts_providers.py │ │ ├── test_docs.py │ │ ├── test_examples.py │ │ ├── test_examples_batch.py │ │ ├── test_examples_integrations.py │ │ ├── test_examples_multimodal.py │ │ ├── test_examples_providers.py │ │ ├── test_hub.py │ │ ├── test_mkdocs.py │ │ ├── test_posts.py │ │ └── test_prompt_tips.py │ ├── dsl/ │ │ ├── test_gemini_tools_async_streaming.py │ │ ├── test_partial.py │ │ ├── test_simple_type.py │ │ └── test_simple_type_fix.py │ ├── genai/ │ │ └── test_safety_settings.py │ ├── llm/ │ │ ├── __init__.py │ │ ├── shared_config.py │ │ ├── test_anthropic/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_multimodal.py │ │ │ ├── test_reasoning.py │ │ │ ├── test_system.py │ │ │ └── util.py │ │ ├── test_bedrock/ │ │ │ ├── conftest.py │ │ │ ├── test_bedrock_native_passthrough.py │ │ │ ├── test_normalize.py │ │ │ ├── test_openai_image_conversion.py │ │ │ └── test_prepare_kwargs.py │ │ ├── test_core_providers/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── capabilities.py │ │ │ ├── conftest.py │ │ │ ├── test_basic_extraction.py │ │ │ ├── test_response_modes.py │ │ │ ├── test_retries.py │ │ │ ├── test_simple_types.py │ │ │ ├── test_streaming.py │ │ │ └── test_validation.py │ │ ├── test_gemini/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── evals/ │ │ │ │ ├── __init__.py │ │ │ │ └── test_extract_users.py │ │ │ ├── test_list_content.py │ │ │ ├── test_multimodal_content.py │ │ │ └── util.py │ │ ├── test_genai/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_decimal.py │ │ │ ├── test_format.py │ │ │ ├── test_invalid_schema.py │ │ │ ├── test_reask.py │ │ │ ├── test_schema_conversion.py │ │ │ ├── test_utils.py │ │ │ └── util.py │ │ ├── test_litellm.py │ │ ├── test_new_client.py │ │ ├── test_openai/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── slow/ │ │ │ │ └── test_response.py │ │ │ ├── test_attr.py │ │ │ ├── test_hooks.py │ │ │ ├── test_multimodal.py │ │ │ ├── test_multitask.py │ │ │ ├── test_patch.py │ │ │ ├── test_validation_context.py │ │ │ ├── test_validators.py │ │ │ └── util.py │ │ ├── test_vertexai/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_deprecated_async.py │ │ │ ├── test_format.py │ │ │ ├── test_message_parser.py │ │ │ ├── test_modes.py │ │ │ └── util.py │ │ └── test_writer/ │ │ ├── __init__.py │ │ ├── conftest.py │ │ ├── evals/ │ │ │ ├── __init__.py │ │ │ ├── test_classification_enums.py │ │ │ ├── test_classification_literals.py │ │ │ ├── test_entities.py │ │ │ ├── test_extract_users.py │ │ │ └── test_sentiment_analysis.py │ │ ├── test_format_common_models.py │ │ ├── test_format_difficult_models.py │ │ └── util.py │ ├── processing/ │ │ └── test_anthropic_json.py │ ├── test_auto_client.py │ ├── test_batch_in_memory.py │ ├── test_cache_integration.py │ ├── test_cache_key.py │ ├── test_dict_operations.py │ ├── test_dict_operations_validation.py │ ├── test_dynamic_model_creation.py │ ├── test_exception_backwards_compat.py │ ├── test_exceptions.py │ ├── test_fizzbuzz_fix.py │ ├── test_formatting.py │ ├── test_function_calls.py │ ├── test_genai_config_merging.py │ ├── test_genai_reask.py │ ├── test_json_extraction.py │ ├── test_json_extraction_edge_cases.py │ ├── test_list_response.py │ ├── test_list_response_wrapper.py │ ├── test_logging.py │ ├── test_message_processing.py │ ├── test_multimodal.py │ ├── test_multitask.py │ ├── test_patch.py │ ├── test_process_response.py │ ├── test_response_model_conversion.py │ ├── test_retry_json_mode.py │ ├── test_schema.py │ ├── test_schema_utils.py │ ├── test_simple_types.py │ ├── test_streaming_reask_bug.py │ ├── test_utils.py │ ├── test_xai_optional_dependency.py │ └── v2/ │ └── test_provider_modes.py ├── ty-tests.toml └── ty.toml