From 76f7be73ffaa27bfac424165445803883e695840 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Wed, 17 Dec 2025 13:41:44 -0800 Subject: [PATCH 01/13] First --- .github/CODEOWNERS | 9 ++-- .../conda-recipes/azure-ai-projects/meta.yaml | 2 +- eng/.docsettings.yml | 2 +- sdk/ai/azure-ai-projects/tsp-location.yaml | 4 -- sdk/ai/ci.yml | 2 - .../azure-ai-projects/.env.template | 0 .../azure-ai-projects/CHANGELOG.md | 0 .../azure-ai-projects/LICENSE | 0 .../azure-ai-projects/MANIFEST.in | 0 .../azure-ai-projects/README.md | 0 .../azure-ai-projects/_metadata.json | 0 .../azure-ai-projects/_tsp-location.yaml | 0 .../azure-ai-projects/apiview-properties.json | 0 .../azure-ai-projects/assets.json | 0 .../azure-ai-projects/azure/__init__.py | 0 .../azure-ai-projects/azure/ai/__init__.py | 0 .../azure/ai/projects/__init__.py | 0 .../azure/ai/projects/_client.py | 0 .../azure/ai/projects/_configuration.py | 0 .../azure/ai/projects/_patch.py | 0 .../azure/ai/projects/_types.py | 0 .../azure/ai/projects/_utils/__init__.py | 0 .../azure/ai/projects/_utils/model_base.py | 0 .../azure/ai/projects/_utils/serialization.py | 0 .../azure/ai/projects/_validation.py | 0 .../azure/ai/projects/_version.py | 0 .../azure/ai/projects/aio/__init__.py | 0 .../azure/ai/projects/aio/_client.py | 0 .../azure/ai/projects/aio/_configuration.py | 0 .../azure/ai/projects/aio/_patch.py | 0 .../ai/projects/aio/operations/__init__.py | 0 .../ai/projects/aio/operations/_operations.py | 0 .../ai/projects/aio/operations/_patch.py | 0 .../operations/_patch_connections_async.py | 0 .../aio/operations/_patch_datasets_async.py | 0 .../aio/operations/_patch_memories_async.py | 0 .../aio/operations/_patch_telemetry_async.py | 0 .../azure/ai/projects/models/__init__.py | 0 .../azure/ai/projects/models/_enums.py | 0 .../azure/ai/projects/models/_models.py | 0 .../azure/ai/projects/models/_patch.py | 0 .../azure/ai/projects/operations/__init__.py | 0 .../ai/projects/operations/_operations.py | 0 .../azure/ai/projects/operations/_patch.py | 0 .../projects/operations/_patch_connections.py | 0 .../ai/projects/operations/_patch_datasets.py | 0 .../ai/projects/operations/_patch_memories.py | 0 .../projects/operations/_patch_telemetry.py | 0 .../azure/ai/projects/py.typed | 0 .../azure/ai/projects/telemetry/__init__.py | 0 .../telemetry/_ai_project_instrumentor.py | 0 .../telemetry/_responses_instrumentor.py | 0 .../ai/projects/telemetry/_trace_function.py | 0 .../azure/ai/projects/telemetry/_utils.py | 0 .../azure-ai-projects/cspell.json | 0 .../azure-ai-projects/dev_requirements.txt | 0 .../azure-ai-projects/post-emitter-fixes.cmd | 0 .../azure-ai-projects/pyproject.toml | 0 .../azure-ai-projects/pyrightconfig.json | 0 .../agents/assets/cua_browser_search.png | Bin .../agents/assets/cua_search_results.png | Bin .../agents/assets/cua_search_typed.png | Bin .../samples/agents/assets/product_info.md | 0 .../synthetic_500_quarterly_results.csv | 0 .../agents/assets/tripadvisor_openapi.json | 0 .../agents/assets/weather_openapi.json | 0 .../samples/agents/sample_agent_basic.py | 0 .../agents/sample_agent_basic_async.py | 0 .../agents/sample_agent_retrieve_basic.py | 0 .../sample_agent_retrieve_basic_async.py | 0 .../agents/sample_agent_stream_events.py | 0 .../agents/sample_agent_structured_output.py | 0 .../sample_agent_structured_output_async.py | 0 .../agents/sample_workflow_multi_agent.py | 0 .../sample_workflow_multi_agent_async.py | 0 ..._agent_basic_with_azure_monitor_tracing.py | 0 ...sample_agent_basic_with_console_tracing.py | 0 ..._with_console_tracing_custom_attributes.py | 0 .../samples/agents/tools/computer_use_util.py | 0 .../agents/tools/sample_agent_ai_search.py | 0 .../tools/sample_agent_bing_custom_search.py | 0 .../tools/sample_agent_bing_grounding.py | 0 .../tools/sample_agent_browser_automation.py | 0 .../tools/sample_agent_code_interpreter.py | 0 .../sample_agent_code_interpreter_async.py | 0 .../agents/tools/sample_agent_computer_use.py | 0 .../tools/sample_agent_computer_use_async.py | 0 .../agents/tools/sample_agent_fabric.py | 0 .../agents/tools/sample_agent_file_search.py | 0 .../sample_agent_file_search_in_stream.py | 0 ...ample_agent_file_search_in_stream_async.py | 0 .../tools/sample_agent_function_tool.py | 0 .../tools/sample_agent_function_tool_async.py | 0 .../tools/sample_agent_image_generation.py | 0 .../sample_agent_image_generation_async.py | 0 .../samples/agents/tools/sample_agent_mcp.py | 0 .../agents/tools/sample_agent_mcp_async.py | 0 ...ample_agent_mcp_with_project_connection.py | 0 ...agent_mcp_with_project_connection_async.py | 0 .../tools/sample_agent_memory_search.py | 0 .../tools/sample_agent_memory_search_async.py | 0 .../agents/tools/sample_agent_openapi.py | 0 ...e_agent_openapi_with_project_connection.py | 0 .../agents/tools/sample_agent_sharepoint.py | 0 .../agents/tools/sample_agent_to_agent.py | 0 .../agents/tools/sample_agent_web_search.py | 0 .../samples/assets/image_input.png | Bin .../samples/connections/sample_connections.py | 0 .../connections/sample_connections_async.py | 0 .../datasets/data_folder/data_file1.txt | 0 .../datasets/data_folder/data_file2.txt | 0 .../data_folder/data_subfolder/data_file3.txt | 0 .../data_folder/data_subfolder/data_file4.txt | 0 .../samples/datasets/sample_datasets.py | 0 .../samples/datasets/sample_datasets_async.py | 0 .../datasets/sample_datasets_download.py | 0 .../samples/deployments/sample_deployments.py | 0 .../deployments/sample_deployments_async.py | 0 .../agentic_evaluators/sample_coherence.py | 0 .../agentic_evaluators/sample_fluency.py | 0 .../agent_utils.py | 0 .../sample_generic_agentic_evaluator.py | 0 .../schema_mappings.py | 0 .../agentic_evaluators/sample_groundedness.py | 0 .../sample_intent_resolution.py | 0 .../agentic_evaluators/sample_relevance.py | 0 .../sample_response_completeness.py | 0 .../sample_task_adherence.py | 0 .../sample_task_completion.py | 0 .../sample_task_navigation_efficiency.py | 0 .../sample_tool_call_accuracy.py | 0 .../sample_tool_call_success.py | 0 .../sample_tool_input_accuracy.py | 0 .../sample_tool_output_utilization.py | 0 .../sample_tool_selection.py | 0 .../data_folder/sample_data_evaluation.jsonl | 0 ...luations_score_model_grader_with_image.jpg | Bin .../evaluations/sample_agent_evaluation.py | 0 .../sample_agent_response_evaluation.py | 0 ..._response_evaluation_with_function_tool.py | 0 .../sample_continuous_evaluation_rule.py | 0 .../evaluations/sample_eval_catalog.py | 0 ...mple_eval_catalog_code_based_evaluators.py | 0 ...le_eval_catalog_prompt_based_evaluators.py | 0 .../sample_evaluation_cluster_insight.py | 0 .../sample_evaluation_compare_insight.py | 0 .../sample_evaluations_ai_assisted.py | 0 ...ple_evaluations_builtin_with_dataset_id.py | 0 ...le_evaluations_builtin_with_inline_data.py | 0 ...valuations_builtin_with_inline_data_oai.py | 0 .../sample_evaluations_builtin_with_traces.py | 0 .../evaluations/sample_evaluations_graders.py | 0 ...aluations_score_model_grader_with_image.py | 0 .../evaluations/sample_model_evaluation.py | 0 .../evaluations/sample_redteam_evaluations.py | 0 .../sample_scheduled_evaluations.py | 0 .../samples/files/data/test_file.jsonl | 0 .../samples/files/sample_files.py | 0 .../samples/files/sample_files_async.py | 0 .../finetuning/data/dpo_training_set.jsonl | 0 .../finetuning/data/dpo_validation_set.jsonl | 0 .../finetuning/data/rft_training_set.jsonl | 0 .../finetuning/data/rft_validation_set.jsonl | 0 .../finetuning/data/sft_training_set.jsonl | 0 .../finetuning/data/sft_validation_set.jsonl | 0 .../finetuning/sample_finetuning_dpo_job.py | 0 .../sample_finetuning_dpo_job_async.py | 0 ...le_finetuning_oss_models_supervised_job.py | 0 ...etuning_oss_models_supervised_job_async.py | 0 .../sample_finetuning_reinforcement_job.py | 0 ...mple_finetuning_reinforcement_job_async.py | 0 .../sample_finetuning_supervised_job.py | 0 .../sample_finetuning_supervised_job_async.py | 0 .../samples/indexes/sample_indexes.py | 0 .../samples/indexes/sample_indexes_async.py | 0 .../samples/mcp_client/assets/product_info.md | 0 .../mcp_client/sample_mcp_tool_async.py | 0 .../memories/sample_memory_advanced.py | 0 .../memories/sample_memory_advanced_async.py | 0 .../samples/memories/sample_memory_basic.py | 0 .../memories/sample_memory_basic_async.py | 0 .../samples/memories/sample_memory_crud.py | 0 .../memories/sample_memory_crud_async.py | 0 .../samples/red_team/sample_red_team.py | 0 .../samples/red_team/sample_red_team_async.py | 0 .../responses/sample_responses_basic.py | 0 .../responses/sample_responses_basic_async.py | 0 ...responses_basic_without_aiprojectclient.py | 0 ...ses_basic_without_aiprojectclient_async.py | 0 .../responses/sample_responses_image_input.py | 0 .../sample_responses_stream_events.py | 0 .../sample_responses_stream_manager.py | 0 .../sample_responses_structured_output.py | 0 .../samples/telemetry/sample_telemetry.py | 0 .../telemetry/sample_telemetry_async.py | 0 .../azure-ai-projects/tests/README.md | 0 .../agents/telemetry/gen_ai_trace_verifier.py | 0 .../agents/telemetry/memory_trace_exporter.py | 0 .../telemetry/test_ai_agents_instrumentor.py | 0 .../test_ai_agents_instrumentor_async.py | 0 .../telemetry/test_ai_instrumentor_base.py | 0 .../telemetry/test_responses_instrumentor.py | 0 .../test_responses_instrumentor_async.py | 0 .../test_responses_instrumentor_metrics.py | 0 .../tests/agents/test_agent_responses_crud.py | 0 .../agents/test_agent_responses_crud_async.py | 0 .../tests/agents/test_agents_crud.py | 0 .../tests/agents/test_agents_crud_async.py | 0 .../tests/agents/test_container_app_agents.py | 0 .../agents/test_container_app_agents_async.py | 0 .../tests/agents/test_conversation_crud.py | 0 .../agents/test_conversation_crud_async.py | 0 .../agents/test_conversation_items_crud.py | 0 .../test_conversation_items_crud_async.py | 0 .../tests/agents/test_hosted_agents.py | 0 .../tests/agents/tools/__init__.py | 0 ...est_agent_code_interpreter_and_function.py | 0 ..._agent_file_search_and_code_interpreter.py | 0 .../test_agent_file_search_and_function.py | 0 ...t_file_search_code_interpreter_function.py | 0 .../test_multitool_with_conversations.py | 0 .../agents/tools/test_agent_ai_search.py | 0 .../tools/test_agent_ai_search_async.py | 0 .../agents/tools/test_agent_bing_grounding.py | 0 .../tools/test_agent_code_interpreter.py | 0 .../test_agent_code_interpreter_async.py | 0 .../agents/tools/test_agent_file_search.py | 0 .../tools/test_agent_file_search_async.py | 0 .../tools/test_agent_file_search_stream.py | 0 .../test_agent_file_search_stream_async.py | 0 .../agents/tools/test_agent_function_tool.py | 0 .../tools/test_agent_function_tool_async.py | 0 .../tools/test_agent_image_generation.py | 0 .../test_agent_image_generation_async.py | 0 .../tests/agents/tools/test_agent_mcp.py | 0 .../agents/tools/test_agent_mcp_async.py | 0 .../agents/tools/test_agent_memory_search.py | 0 .../tools/test_agent_memory_search_async.py | 0 .../tests/agents/tools/test_agent_openapi.py | 0 .../agents/tools/test_agent_openapi_async.py | 0 .../test_agent_tools_with_conversations.py | 0 .../agents/tools/test_agent_web_search.py | 0 .../tools/test_agent_web_search_async.py | 0 .../azure-ai-projects/tests/conftest.py | 0 .../tests/connections/test_connections.py | 0 .../connections/test_connections_async.py | 0 .../tests/datasets/test_datasets.py | 0 .../tests/datasets/test_datasets_async.py | 0 .../tests/deployments/test_deployments.py | 0 .../deployments/test_deployments_async.py | 0 .../tests/files/test_files.py | 0 .../tests/files/test_files_async.py | 0 .../tests/finetuning/test_finetuning.py | 0 .../tests/finetuning/test_finetuning_async.py | 0 .../tests/indexes/test_indexes.py | 0 .../tests/indexes/test_indexes_async.py | 0 .../tests/redteams/test_redteams.py | 0 .../tests/redteams/test_redteams_async.py | 0 .../tests/responses/test_responses.py | 0 .../tests/responses/test_responses_async.py | 0 .../tests/samples/test_samples.py | 0 .../tests/samples/test_samples_async.py | 0 .../tests/telemetry/test_telemetry.py | 0 .../tests/telemetry/test_telemetry_async.py | 0 .../azure-ai-projects/tests/test_base.py | 0 .../tests/test_data/datasets/data_file1.txt | 0 .../tests/test_data/datasets/data_file2.txt | 0 .../datasets/data_subfolder/data_file3.txt | 0 .../datasets/data_subfolder/data_file4.txt | 0 .../tests/test_data/files/.gitattributes | 0 .../tests/test_data/files/test_file.jsonl | 0 .../finetuning/dpo_training_set.jsonl | 0 .../finetuning/dpo_validation_set.jsonl | 0 .../finetuning/rft_training_set.jsonl | 0 .../finetuning/rft_validation_set.jsonl | 0 .../finetuning/sft_training_set.jsonl | 0 .../finetuning/sft_validation_set.jsonl | 0 sdk/aiprojects/ci.yml | 46 ++++++++++++++++++ sdk/aiprojects/platform-matrix.json | 6 +++ sdk/aiprojects/tests.yml | 8 +++ 280 files changed, 66 insertions(+), 13 deletions(-) delete mode 100644 sdk/ai/azure-ai-projects/tsp-location.yaml rename sdk/{ai => aiprojects}/azure-ai-projects/.env.template (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/CHANGELOG.md (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/LICENSE (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/MANIFEST.in (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/README.md (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/_metadata.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/_tsp-location.yaml (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/apiview-properties.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/assets.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_client.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_configuration.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_patch.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_types.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_utils/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_utils/model_base.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_utils/serialization.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_validation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/_version.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/_client.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/_configuration.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/_patch.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_patch.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_patch_connections_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_patch_datasets_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_patch_memories_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/aio/operations/_patch_telemetry_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/models/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/models/_enums.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/models/_models.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/models/_patch.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_operations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_patch.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_patch_connections.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_patch_datasets.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_patch_memories.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/operations/_patch_telemetry.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/py.typed (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/telemetry/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/telemetry/_ai_project_instrumentor.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/telemetry/_responses_instrumentor.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/telemetry/_trace_function.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/azure/ai/projects/telemetry/_utils.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/cspell.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/dev_requirements.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/post-emitter-fixes.cmd (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/pyproject.toml (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/pyrightconfig.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/cua_browser_search.png (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/cua_search_results.png (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/cua_search_typed.png (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/product_info.md (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/synthetic_500_quarterly_results.csv (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/tripadvisor_openapi.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/assets/weather_openapi.json (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_basic.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_basic_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_retrieve_basic.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_retrieve_basic_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_stream_events.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_structured_output.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_agent_structured_output_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_workflow_multi_agent.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/sample_workflow_multi_agent_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/computer_use_util.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_computer_use_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_function_tool_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_image_generation_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_mcp_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_memory_search_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/assets/image_input.png (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/connections/sample_connections.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/connections/sample_connections_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/data_folder/data_file1.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/data_folder/data_file2.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file3.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file4.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/sample_datasets.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/sample_datasets_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/datasets/sample_datasets_download.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/deployments/sample_deployments.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/deployments/sample_deployments_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_coherence.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_fluency.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/agent_utils.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/sample_generic_agentic_evaluator.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/schema_mappings.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_groundedness.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_intent_resolution.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_relevance.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_response_completeness.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_adherence.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_completion.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_navigation_efficiency.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_accuracy.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_success.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_input_accuracy.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_output_utilization.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_selection.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/data_folder/sample_data_evaluation.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/data_folder/sample_evaluations_score_model_grader_with_image.jpg (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_agent_evaluation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation_with_function_tool.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_continuous_evaluation_rule.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_eval_catalog.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_eval_catalog_code_based_evaluators.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_eval_catalog_prompt_based_evaluators.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluation_cluster_insight.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluation_compare_insight.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_ai_assisted.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_dataset_id.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data_oai.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_traces.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_graders.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_evaluations_score_model_grader_with_image.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_model_evaluation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_redteam_evaluations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/evaluations/sample_scheduled_evaluations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/files/data/test_file.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/files/sample_files.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/files/sample_files_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/dpo_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/dpo_validation_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/rft_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/rft_validation_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/sft_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/data/sft_validation_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/indexes/sample_indexes.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/indexes/sample_indexes_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/mcp_client/assets/product_info.md (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/mcp_client/sample_mcp_tool_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_advanced.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_advanced_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_basic.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_basic_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_crud.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/memories/sample_memory_crud_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/red_team/sample_red_team.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/red_team/sample_red_team_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_basic.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_basic_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_image_input.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_stream_events.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_stream_manager.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/responses/sample_responses_structured_output.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/telemetry/sample_telemetry.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/samples/telemetry/sample_telemetry_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/README.md (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/gen_ai_trace_verifier.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/memory_trace_exporter.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_ai_instrumentor_base.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_metrics.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_agent_responses_crud.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_agent_responses_crud_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_agents_crud.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_agents_crud_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_container_app_agents.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_container_app_agents_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_conversation_crud.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_conversation_crud_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_conversation_items_crud.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_conversation_items_crud_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/test_hosted_agents.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/__init__.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/multitool/test_agent_code_interpreter_and_function.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_code_interpreter.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_function.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_code_interpreter_function.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/multitool/test_multitool_with_conversations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_ai_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_ai_search_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_bing_grounding.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_file_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_file_search_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_function_tool.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_function_tool_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_image_generation.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_image_generation_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_mcp.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_mcp_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_memory_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_memory_search_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_openapi.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_openapi_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_tools_with_conversations.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_web_search.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/agents/tools/test_agent_web_search_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/conftest.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/connections/test_connections.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/connections/test_connections_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/datasets/test_datasets.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/datasets/test_datasets_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/deployments/test_deployments.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/deployments/test_deployments_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/files/test_files.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/files/test_files_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/finetuning/test_finetuning.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/finetuning/test_finetuning_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/indexes/test_indexes.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/indexes/test_indexes_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/redteams/test_redteams.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/redteams/test_redteams_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/responses/test_responses.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/responses/test_responses_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/samples/test_samples.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/samples/test_samples_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/telemetry/test_telemetry.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/telemetry/test_telemetry_async.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_base.py (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/datasets/data_file1.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/datasets/data_file2.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file3.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file4.txt (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/files/.gitattributes (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/files/test_file.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/dpo_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/dpo_validation_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/rft_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/rft_validation_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/sft_training_set.jsonl (100%) rename sdk/{ai => aiprojects}/azure-ai-projects/tests/test_data/finetuning/sft_validation_set.jsonl (100%) create mode 100644 sdk/aiprojects/ci.yml create mode 100644 sdk/aiprojects/platform-matrix.json create mode 100644 sdk/aiprojects/tests.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dc7dc89e90d7..90b1e11394ba 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -35,6 +35,10 @@ # PRLabel: %AI /sdk/ai/ @luigiw @needuv @paulshealy1 @singankit @dargilco @trrwilson +# PRLabel: %AI Projects +# ServiceLabel: %AI Projects %Service Attention +/sdk/aiprojects @dargilco @trrwilson @trangevi @glharper @nick863 @howieleung @kingernupur @singankit + # ServiceOwners: @luigiw @needuv @singankit # ServiceLabel: %Evaluation @@ -255,15 +259,10 @@ # ServiceLabel: %AI Agents %Service Attention /sdk/ai/azure-ai-agents/ @dargilco @trrwilson @trangevi @glharper @nick863 @howieleung -# PRLabel: %AI Projects -# ServiceLabel: %AI Projects %Service Attention -/sdk/ai/azure-ai-projects/ @dargilco @trrwilson @trangevi @glharper @nick863 @howieleung @kingernupur - # PRLabel: %Voice Live # ServiceLabel: %Voice Live %Service Attention /sdk/ai/azure-ai-voicelive/ @rhurey @xitzhang @amber-yujueWang - # PRLabel: %HDInsight /sdk/hdinsight/ @idear1203 diff --git a/conda/conda-recipes/azure-ai-projects/meta.yaml b/conda/conda-recipes/azure-ai-projects/meta.yaml index 6d14fdf75d02..8f22805ea1ea 100644 --- a/conda/conda-recipes/azure-ai-projects/meta.yaml +++ b/conda/conda-recipes/azure-ai-projects/meta.yaml @@ -36,7 +36,7 @@ test: - azure.ai.projects about: - home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/ai/azure-ai-projects" + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/aiprojects/azure-ai-projects" license: MIT license_family: MIT license_file: diff --git a/eng/.docsettings.yml b/eng/.docsettings.yml index 8289d6d95909..dc260e72ce68 100644 --- a/eng/.docsettings.yml +++ b/eng/.docsettings.yml @@ -16,7 +16,7 @@ omitted_paths: - sdk/vision/azure-ai-vision-imageanalysis/tests/* - sdk/ai/azure-ai-agents/tests/* - sdk/ai/azure-ai-inference/tests/* - - sdk/ai/azure-ai-projects/tests/* + - sdk/aiprojects/azure-ai-projects/tests/* - sdk/storage/azure-storage-extensions/* language: python diff --git a/sdk/ai/azure-ai-projects/tsp-location.yaml b/sdk/ai/azure-ai-projects/tsp-location.yaml deleted file mode 100644 index 80b8dc2ae282..000000000000 --- a/sdk/ai/azure-ai-projects/tsp-location.yaml +++ /dev/null @@ -1,4 +0,0 @@ -directory: specification/ai/Azure.AI.Projects -commit: 78bfd335c31b8764578cfb9840f3b74349c10354 -repo: Azure/azure-rest-api-specs-pr -additionalDirectories: diff --git a/sdk/ai/ci.yml b/sdk/ai/ci.yml index 43dbf57d4feb..a1a163615ab2 100644 --- a/sdk/ai/ci.yml +++ b/sdk/ai/ci.yml @@ -42,8 +42,6 @@ extends: MatrixFilters: - PythonVersion=^(?!pypy3).* Artifacts: - - name: azure-ai-projects - safeName: azureaiprojects - name: azure-ai-agents safeName: azureaiagents - name: azure-ai-voicelive diff --git a/sdk/ai/azure-ai-projects/.env.template b/sdk/aiprojects/azure-ai-projects/.env.template similarity index 100% rename from sdk/ai/azure-ai-projects/.env.template rename to sdk/aiprojects/azure-ai-projects/.env.template diff --git a/sdk/ai/azure-ai-projects/CHANGELOG.md b/sdk/aiprojects/azure-ai-projects/CHANGELOG.md similarity index 100% rename from sdk/ai/azure-ai-projects/CHANGELOG.md rename to sdk/aiprojects/azure-ai-projects/CHANGELOG.md diff --git a/sdk/ai/azure-ai-projects/LICENSE b/sdk/aiprojects/azure-ai-projects/LICENSE similarity index 100% rename from sdk/ai/azure-ai-projects/LICENSE rename to sdk/aiprojects/azure-ai-projects/LICENSE diff --git a/sdk/ai/azure-ai-projects/MANIFEST.in b/sdk/aiprojects/azure-ai-projects/MANIFEST.in similarity index 100% rename from sdk/ai/azure-ai-projects/MANIFEST.in rename to sdk/aiprojects/azure-ai-projects/MANIFEST.in diff --git a/sdk/ai/azure-ai-projects/README.md b/sdk/aiprojects/azure-ai-projects/README.md similarity index 100% rename from sdk/ai/azure-ai-projects/README.md rename to sdk/aiprojects/azure-ai-projects/README.md diff --git a/sdk/ai/azure-ai-projects/_metadata.json b/sdk/aiprojects/azure-ai-projects/_metadata.json similarity index 100% rename from sdk/ai/azure-ai-projects/_metadata.json rename to sdk/aiprojects/azure-ai-projects/_metadata.json diff --git a/sdk/ai/azure-ai-projects/_tsp-location.yaml b/sdk/aiprojects/azure-ai-projects/_tsp-location.yaml similarity index 100% rename from sdk/ai/azure-ai-projects/_tsp-location.yaml rename to sdk/aiprojects/azure-ai-projects/_tsp-location.yaml diff --git a/sdk/ai/azure-ai-projects/apiview-properties.json b/sdk/aiprojects/azure-ai-projects/apiview-properties.json similarity index 100% rename from sdk/ai/azure-ai-projects/apiview-properties.json rename to sdk/aiprojects/azure-ai-projects/apiview-properties.json diff --git a/sdk/ai/azure-ai-projects/assets.json b/sdk/aiprojects/azure-ai-projects/assets.json similarity index 100% rename from sdk/ai/azure-ai-projects/assets.json rename to sdk/aiprojects/azure-ai-projects/assets.json diff --git a/sdk/ai/azure-ai-projects/azure/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_client.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_client.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_client.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_client.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_configuration.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_configuration.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_configuration.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_configuration.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_patch.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_patch.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_patch.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_patch.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_types.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_types.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_types.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_types.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_utils/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_utils/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_utils/model_base.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/model_base.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_utils/model_base.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/model_base.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_utils/serialization.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/serialization.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_utils/serialization.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_utils/serialization.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_validation.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_validation.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_validation.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_validation.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/_version.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/_version.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/_version.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/_version.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/_client.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_client.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/_client.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_client.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/_configuration.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_configuration.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/_configuration.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_configuration.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/_patch.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_patch.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/_patch.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/_patch.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_operations.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_connections_async.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_connections_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_connections_async.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_connections_async.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_datasets_async.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_datasets_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_datasets_async.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_datasets_async.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_memories_async.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_memories_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_memories_async.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_memories_async.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_telemetry_async.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_telemetry_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/aio/operations/_patch_telemetry_async.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/aio/operations/_patch_telemetry_async.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/models/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/models/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/models/_enums.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_enums.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/models/_enums.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_enums.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/models/_models.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_models.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/models/_models.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_models.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/models/_patch.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_patch.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/models/_patch.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/models/_patch.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_operations.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_operations.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_operations.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_operations.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_connections.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_connections.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_connections.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_connections.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_datasets.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_datasets.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_datasets.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_datasets.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_memories.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_memories.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_memories.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_memories.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_telemetry.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_telemetry.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/operations/_patch_telemetry.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/operations/_patch_telemetry.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/py.typed b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/py.typed similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/py.typed rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/py.typed diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/__init__.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/__init__.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/__init__.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_ai_project_instrumentor.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_ai_project_instrumentor.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_ai_project_instrumentor.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_ai_project_instrumentor.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_responses_instrumentor.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_responses_instrumentor.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_responses_instrumentor.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_responses_instrumentor.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_trace_function.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_trace_function.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_trace_function.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_trace_function.py diff --git a/sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_utils.py b/sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_utils.py similarity index 100% rename from sdk/ai/azure-ai-projects/azure/ai/projects/telemetry/_utils.py rename to sdk/aiprojects/azure-ai-projects/azure/ai/projects/telemetry/_utils.py diff --git a/sdk/ai/azure-ai-projects/cspell.json b/sdk/aiprojects/azure-ai-projects/cspell.json similarity index 100% rename from sdk/ai/azure-ai-projects/cspell.json rename to sdk/aiprojects/azure-ai-projects/cspell.json diff --git a/sdk/ai/azure-ai-projects/dev_requirements.txt b/sdk/aiprojects/azure-ai-projects/dev_requirements.txt similarity index 100% rename from sdk/ai/azure-ai-projects/dev_requirements.txt rename to sdk/aiprojects/azure-ai-projects/dev_requirements.txt diff --git a/sdk/ai/azure-ai-projects/post-emitter-fixes.cmd b/sdk/aiprojects/azure-ai-projects/post-emitter-fixes.cmd similarity index 100% rename from sdk/ai/azure-ai-projects/post-emitter-fixes.cmd rename to sdk/aiprojects/azure-ai-projects/post-emitter-fixes.cmd diff --git a/sdk/ai/azure-ai-projects/pyproject.toml b/sdk/aiprojects/azure-ai-projects/pyproject.toml similarity index 100% rename from sdk/ai/azure-ai-projects/pyproject.toml rename to sdk/aiprojects/azure-ai-projects/pyproject.toml diff --git a/sdk/ai/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json similarity index 100% rename from sdk/ai/azure-ai-projects/pyrightconfig.json rename to sdk/aiprojects/azure-ai-projects/pyrightconfig.json diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/cua_browser_search.png b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_browser_search.png similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/cua_browser_search.png rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_browser_search.png diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/cua_search_results.png b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_search_results.png similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/cua_search_results.png rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_search_results.png diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/cua_search_typed.png b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_search_typed.png similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/cua_search_typed.png rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/cua_search_typed.png diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/product_info.md b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/product_info.md similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/product_info.md rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/product_info.md diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/synthetic_500_quarterly_results.csv b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/synthetic_500_quarterly_results.csv similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/synthetic_500_quarterly_results.csv rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/synthetic_500_quarterly_results.csv diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/tripadvisor_openapi.json b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/tripadvisor_openapi.json similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/tripadvisor_openapi.json rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/tripadvisor_openapi.json diff --git a/sdk/ai/azure-ai-projects/samples/agents/assets/weather_openapi.json b/sdk/aiprojects/azure-ai-projects/samples/agents/assets/weather_openapi.json similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/assets/weather_openapi.json rename to sdk/aiprojects/azure-ai-projects/samples/agents/assets/weather_openapi.json diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_basic.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_basic.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_basic.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_basic.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_basic_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_basic_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_basic_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_basic_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_retrieve_basic.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_retrieve_basic.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_retrieve_basic.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_retrieve_basic.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_retrieve_basic_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_retrieve_basic_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_retrieve_basic_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_retrieve_basic_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_stream_events.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_stream_events.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_stream_events.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_stream_events.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_structured_output.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_structured_output.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_structured_output.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_structured_output.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_agent_structured_output_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_structured_output_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_agent_structured_output_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_agent_structured_output_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_workflow_multi_agent.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_workflow_multi_agent.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_workflow_multi_agent.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_workflow_multi_agent.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/sample_workflow_multi_agent_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/sample_workflow_multi_agent_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/sample_workflow_multi_agent_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/sample_workflow_multi_agent_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py b/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py b/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py b/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/computer_use_util.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/computer_use_util.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/computer_use_util.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/computer_use_util.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_computer_use_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_computer_use_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_computer_use_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_computer_use_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search_in_stream_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_function_tool_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_function_tool_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_function_tool_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_function_tool_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_image_generation_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_image_generation_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_image_generation_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_image_generation_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_memory_search_async.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_memory_search_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_memory_search_async.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_memory_search_async.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py diff --git a/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py b/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py rename to sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py diff --git a/sdk/ai/azure-ai-projects/samples/assets/image_input.png b/sdk/aiprojects/azure-ai-projects/samples/assets/image_input.png similarity index 100% rename from sdk/ai/azure-ai-projects/samples/assets/image_input.png rename to sdk/aiprojects/azure-ai-projects/samples/assets/image_input.png diff --git a/sdk/ai/azure-ai-projects/samples/connections/sample_connections.py b/sdk/aiprojects/azure-ai-projects/samples/connections/sample_connections.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/connections/sample_connections.py rename to sdk/aiprojects/azure-ai-projects/samples/connections/sample_connections.py diff --git a/sdk/ai/azure-ai-projects/samples/connections/sample_connections_async.py b/sdk/aiprojects/azure-ai-projects/samples/connections/sample_connections_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/connections/sample_connections_async.py rename to sdk/aiprojects/azure-ai-projects/samples/connections/sample_connections_async.py diff --git a/sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_file1.txt b/sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_file1.txt similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_file1.txt rename to sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_file1.txt diff --git a/sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_file2.txt b/sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_file2.txt similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_file2.txt rename to sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_file2.txt diff --git a/sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file3.txt b/sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file3.txt similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file3.txt rename to sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file3.txt diff --git a/sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file4.txt b/sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file4.txt similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file4.txt rename to sdk/aiprojects/azure-ai-projects/samples/datasets/data_folder/data_subfolder/data_file4.txt diff --git a/sdk/ai/azure-ai-projects/samples/datasets/sample_datasets.py b/sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/sample_datasets.py rename to sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets.py diff --git a/sdk/ai/azure-ai-projects/samples/datasets/sample_datasets_async.py b/sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/sample_datasets_async.py rename to sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets_async.py diff --git a/sdk/ai/azure-ai-projects/samples/datasets/sample_datasets_download.py b/sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets_download.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/datasets/sample_datasets_download.py rename to sdk/aiprojects/azure-ai-projects/samples/datasets/sample_datasets_download.py diff --git a/sdk/ai/azure-ai-projects/samples/deployments/sample_deployments.py b/sdk/aiprojects/azure-ai-projects/samples/deployments/sample_deployments.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/deployments/sample_deployments.py rename to sdk/aiprojects/azure-ai-projects/samples/deployments/sample_deployments.py diff --git a/sdk/ai/azure-ai-projects/samples/deployments/sample_deployments_async.py b/sdk/aiprojects/azure-ai-projects/samples/deployments/sample_deployments_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/deployments/sample_deployments_async.py rename to sdk/aiprojects/azure-ai-projects/samples/deployments/sample_deployments_async.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_coherence.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_coherence.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_coherence.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_coherence.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_fluency.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_fluency.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_fluency.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_fluency.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/agent_utils.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/agent_utils.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/agent_utils.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/agent_utils.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/sample_generic_agentic_evaluator.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/sample_generic_agentic_evaluator.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/sample_generic_agentic_evaluator.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/sample_generic_agentic_evaluator.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/schema_mappings.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/schema_mappings.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/schema_mappings.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_generic_agentic_evaluator/schema_mappings.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_groundedness.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_groundedness.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_groundedness.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_groundedness.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_intent_resolution.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_intent_resolution.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_intent_resolution.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_intent_resolution.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_relevance.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_relevance.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_relevance.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_relevance.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_response_completeness.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_response_completeness.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_response_completeness.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_response_completeness.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_adherence.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_adherence.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_adherence.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_adherence.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_completion.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_completion.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_completion.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_completion.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_navigation_efficiency.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_navigation_efficiency.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_navigation_efficiency.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_task_navigation_efficiency.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_accuracy.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_accuracy.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_accuracy.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_accuracy.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_success.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_success.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_success.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_call_success.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_input_accuracy.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_input_accuracy.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_input_accuracy.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_input_accuracy.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_output_utilization.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_output_utilization.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_output_utilization.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_output_utilization.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_selection.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_selection.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_selection.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/agentic_evaluators/sample_tool_selection.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/data_folder/sample_data_evaluation.jsonl b/sdk/aiprojects/azure-ai-projects/samples/evaluations/data_folder/sample_data_evaluation.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/data_folder/sample_data_evaluation.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/data_folder/sample_data_evaluation.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/data_folder/sample_evaluations_score_model_grader_with_image.jpg b/sdk/aiprojects/azure-ai-projects/samples/evaluations/data_folder/sample_evaluations_score_model_grader_with_image.jpg similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/data_folder/sample_evaluations_score_model_grader_with_image.jpg rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/data_folder/sample_evaluations_score_model_grader_with_image.jpg diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_evaluation.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_evaluation.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_evaluation.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_evaluation.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation_with_function_tool.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation_with_function_tool.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation_with_function_tool.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_agent_response_evaluation_with_function_tool.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_continuous_evaluation_rule.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_continuous_evaluation_rule.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_continuous_evaluation_rule.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_continuous_evaluation_rule.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog_code_based_evaluators.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog_code_based_evaluators.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog_code_based_evaluators.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog_code_based_evaluators.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog_prompt_based_evaluators.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog_prompt_based_evaluators.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_eval_catalog_prompt_based_evaluators.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_eval_catalog_prompt_based_evaluators.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluation_cluster_insight.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluation_cluster_insight.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluation_cluster_insight.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluation_cluster_insight.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluation_compare_insight.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluation_compare_insight.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluation_compare_insight.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluation_compare_insight.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_ai_assisted.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_ai_assisted.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_ai_assisted.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_ai_assisted.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_dataset_id.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_dataset_id.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_dataset_id.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_dataset_id.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data_oai.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data_oai.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data_oai.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_inline_data_oai.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_traces.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_traces.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_traces.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_builtin_with_traces.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_graders.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_graders.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_graders.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_graders.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_score_model_grader_with_image.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_score_model_grader_with_image.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_evaluations_score_model_grader_with_image.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_evaluations_score_model_grader_with_image.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_model_evaluation.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_model_evaluation.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_model_evaluation.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_model_evaluation.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_redteam_evaluations.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_redteam_evaluations.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_redteam_evaluations.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_redteam_evaluations.py diff --git a/sdk/ai/azure-ai-projects/samples/evaluations/sample_scheduled_evaluations.py b/sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_scheduled_evaluations.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/evaluations/sample_scheduled_evaluations.py rename to sdk/aiprojects/azure-ai-projects/samples/evaluations/sample_scheduled_evaluations.py diff --git a/sdk/ai/azure-ai-projects/samples/files/data/test_file.jsonl b/sdk/aiprojects/azure-ai-projects/samples/files/data/test_file.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/files/data/test_file.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/files/data/test_file.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/files/sample_files.py b/sdk/aiprojects/azure-ai-projects/samples/files/sample_files.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/files/sample_files.py rename to sdk/aiprojects/azure-ai-projects/samples/files/sample_files.py diff --git a/sdk/ai/azure-ai-projects/samples/files/sample_files_async.py b/sdk/aiprojects/azure-ai-projects/samples/files/sample_files_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/files/sample_files_async.py rename to sdk/aiprojects/azure-ai-projects/samples/files/sample_files_async.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/dpo_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/dpo_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/dpo_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/dpo_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/dpo_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/dpo_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/dpo_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/dpo_validation_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/rft_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/rft_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/rft_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/rft_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/rft_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/rft_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/rft_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/rft_validation_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/sft_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/sft_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/sft_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/sft_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/data/sft_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/samples/finetuning/data/sft_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/data/sft_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/data/sft_validation_set.jsonl diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job_async.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job_async.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_dpo_job_async.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job_async.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job_async.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_oss_models_supervised_job_async.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job_async.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job_async.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_reinforcement_job_async.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job.py diff --git a/sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job_async.py b/sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job_async.py rename to sdk/aiprojects/azure-ai-projects/samples/finetuning/sample_finetuning_supervised_job_async.py diff --git a/sdk/ai/azure-ai-projects/samples/indexes/sample_indexes.py b/sdk/aiprojects/azure-ai-projects/samples/indexes/sample_indexes.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/indexes/sample_indexes.py rename to sdk/aiprojects/azure-ai-projects/samples/indexes/sample_indexes.py diff --git a/sdk/ai/azure-ai-projects/samples/indexes/sample_indexes_async.py b/sdk/aiprojects/azure-ai-projects/samples/indexes/sample_indexes_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/indexes/sample_indexes_async.py rename to sdk/aiprojects/azure-ai-projects/samples/indexes/sample_indexes_async.py diff --git a/sdk/ai/azure-ai-projects/samples/mcp_client/assets/product_info.md b/sdk/aiprojects/azure-ai-projects/samples/mcp_client/assets/product_info.md similarity index 100% rename from sdk/ai/azure-ai-projects/samples/mcp_client/assets/product_info.md rename to sdk/aiprojects/azure-ai-projects/samples/mcp_client/assets/product_info.md diff --git a/sdk/ai/azure-ai-projects/samples/mcp_client/sample_mcp_tool_async.py b/sdk/aiprojects/azure-ai-projects/samples/mcp_client/sample_mcp_tool_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/mcp_client/sample_mcp_tool_async.py rename to sdk/aiprojects/azure-ai-projects/samples/mcp_client/sample_mcp_tool_async.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_advanced.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_advanced.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_advanced.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_advanced.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_advanced_async.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_advanced_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_advanced_async.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_advanced_async.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_basic.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_basic.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_basic.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_basic.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_basic_async.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_basic_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_basic_async.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_basic_async.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_crud.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_crud.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_crud.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_crud.py diff --git a/sdk/ai/azure-ai-projects/samples/memories/sample_memory_crud_async.py b/sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_crud_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/memories/sample_memory_crud_async.py rename to sdk/aiprojects/azure-ai-projects/samples/memories/sample_memory_crud_async.py diff --git a/sdk/ai/azure-ai-projects/samples/red_team/sample_red_team.py b/sdk/aiprojects/azure-ai-projects/samples/red_team/sample_red_team.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/red_team/sample_red_team.py rename to sdk/aiprojects/azure-ai-projects/samples/red_team/sample_red_team.py diff --git a/sdk/ai/azure-ai-projects/samples/red_team/sample_red_team_async.py b/sdk/aiprojects/azure-ai-projects/samples/red_team/sample_red_team_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/red_team/sample_red_team_async.py rename to sdk/aiprojects/azure-ai-projects/samples/red_team/sample_red_team_async.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_async.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_async.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_async.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient_async.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient_async.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_basic_without_aiprojectclient_async.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_image_input.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_image_input.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_image_input.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_image_input.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_stream_events.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_stream_events.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_stream_events.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_stream_events.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_stream_manager.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_stream_manager.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_stream_manager.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_stream_manager.py diff --git a/sdk/ai/azure-ai-projects/samples/responses/sample_responses_structured_output.py b/sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_structured_output.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/responses/sample_responses_structured_output.py rename to sdk/aiprojects/azure-ai-projects/samples/responses/sample_responses_structured_output.py diff --git a/sdk/ai/azure-ai-projects/samples/telemetry/sample_telemetry.py b/sdk/aiprojects/azure-ai-projects/samples/telemetry/sample_telemetry.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/telemetry/sample_telemetry.py rename to sdk/aiprojects/azure-ai-projects/samples/telemetry/sample_telemetry.py diff --git a/sdk/ai/azure-ai-projects/samples/telemetry/sample_telemetry_async.py b/sdk/aiprojects/azure-ai-projects/samples/telemetry/sample_telemetry_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/samples/telemetry/sample_telemetry_async.py rename to sdk/aiprojects/azure-ai-projects/samples/telemetry/sample_telemetry_async.py diff --git a/sdk/ai/azure-ai-projects/tests/README.md b/sdk/aiprojects/azure-ai-projects/tests/README.md similarity index 100% rename from sdk/ai/azure-ai-projects/tests/README.md rename to sdk/aiprojects/azure-ai-projects/tests/README.md diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/gen_ai_trace_verifier.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/gen_ai_trace_verifier.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/gen_ai_trace_verifier.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/gen_ai_trace_verifier.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/memory_trace_exporter.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/memory_trace_exporter.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/memory_trace_exporter.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/memory_trace_exporter.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_agents_instrumentor_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_instrumentor_base.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_instrumentor_base.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_ai_instrumentor_base.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_ai_instrumentor_base.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_metrics.py b/sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_metrics.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_metrics.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/telemetry/test_responses_instrumentor_metrics.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_agent_responses_crud.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_agent_responses_crud.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_agent_responses_crud.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_agent_responses_crud.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_agent_responses_crud_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_agent_responses_crud_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_agent_responses_crud_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_agent_responses_crud_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_agents_crud.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_agents_crud.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_agents_crud.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_agents_crud.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_agents_crud_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_agents_crud_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_agents_crud_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_agents_crud_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_container_app_agents.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_container_app_agents.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_container_app_agents.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_container_app_agents.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_container_app_agents_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_container_app_agents_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_container_app_agents_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_container_app_agents_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_conversation_crud.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_crud.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_conversation_crud.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_crud.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_conversation_crud_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_crud_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_conversation_crud_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_crud_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_conversation_items_crud.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_items_crud.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_conversation_items_crud.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_items_crud.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_conversation_items_crud_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_items_crud_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_conversation_items_crud_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_conversation_items_crud_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/test_hosted_agents.py b/sdk/aiprojects/azure-ai-projects/tests/agents/test_hosted_agents.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/test_hosted_agents.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/test_hosted_agents.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/__init__.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/__init__.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/__init__.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/__init__.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_code_interpreter_and_function.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_code_interpreter_and_function.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_code_interpreter_and_function.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_code_interpreter_and_function.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_code_interpreter.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_code_interpreter.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_code_interpreter.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_code_interpreter.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_function.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_function.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_function.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_and_function.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_code_interpreter_function.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_code_interpreter_function.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_code_interpreter_function.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_agent_file_search_code_interpreter_function.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_multitool_with_conversations.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_multitool_with_conversations.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/multitool/test_multitool_with_conversations.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/multitool/test_multitool_with_conversations.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_ai_search.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_ai_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_ai_search.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_ai_search.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_ai_search_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_ai_search_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_ai_search_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_ai_search_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_bing_grounding.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_bing_grounding.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_bing_grounding.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_bing_grounding.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_code_interpreter_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_file_search_stream_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_function_tool.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_function_tool.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_function_tool.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_function_tool.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_function_tool_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_function_tool_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_function_tool_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_function_tool_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_image_generation.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_image_generation.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_image_generation.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_image_generation.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_image_generation_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_image_generation_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_image_generation_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_image_generation_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_mcp.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_mcp.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_mcp.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_mcp.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_mcp_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_mcp_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_mcp_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_mcp_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_memory_search.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_memory_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_memory_search.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_memory_search.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_memory_search_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_memory_search_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_memory_search_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_memory_search_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_openapi.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_openapi.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_openapi.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_openapi.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_openapi_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_openapi_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_openapi_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_openapi_async.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_tools_with_conversations.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_tools_with_conversations.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_tools_with_conversations.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_tools_with_conversations.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_web_search.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_web_search.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_web_search.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_web_search.py diff --git a/sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_web_search_async.py b/sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_web_search_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/agents/tools/test_agent_web_search_async.py rename to sdk/aiprojects/azure-ai-projects/tests/agents/tools/test_agent_web_search_async.py diff --git a/sdk/ai/azure-ai-projects/tests/conftest.py b/sdk/aiprojects/azure-ai-projects/tests/conftest.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/conftest.py rename to sdk/aiprojects/azure-ai-projects/tests/conftest.py diff --git a/sdk/ai/azure-ai-projects/tests/connections/test_connections.py b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/connections/test_connections.py rename to sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py diff --git a/sdk/ai/azure-ai-projects/tests/connections/test_connections_async.py b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/connections/test_connections_async.py rename to sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py diff --git a/sdk/ai/azure-ai-projects/tests/datasets/test_datasets.py b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/datasets/test_datasets.py rename to sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py diff --git a/sdk/ai/azure-ai-projects/tests/datasets/test_datasets_async.py b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/datasets/test_datasets_async.py rename to sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py diff --git a/sdk/ai/azure-ai-projects/tests/deployments/test_deployments.py b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/deployments/test_deployments.py rename to sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py diff --git a/sdk/ai/azure-ai-projects/tests/deployments/test_deployments_async.py b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/deployments/test_deployments_async.py rename to sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py diff --git a/sdk/ai/azure-ai-projects/tests/files/test_files.py b/sdk/aiprojects/azure-ai-projects/tests/files/test_files.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/files/test_files.py rename to sdk/aiprojects/azure-ai-projects/tests/files/test_files.py diff --git a/sdk/ai/azure-ai-projects/tests/files/test_files_async.py b/sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/files/test_files_async.py rename to sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py diff --git a/sdk/ai/azure-ai-projects/tests/finetuning/test_finetuning.py b/sdk/aiprojects/azure-ai-projects/tests/finetuning/test_finetuning.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/finetuning/test_finetuning.py rename to sdk/aiprojects/azure-ai-projects/tests/finetuning/test_finetuning.py diff --git a/sdk/ai/azure-ai-projects/tests/finetuning/test_finetuning_async.py b/sdk/aiprojects/azure-ai-projects/tests/finetuning/test_finetuning_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/finetuning/test_finetuning_async.py rename to sdk/aiprojects/azure-ai-projects/tests/finetuning/test_finetuning_async.py diff --git a/sdk/ai/azure-ai-projects/tests/indexes/test_indexes.py b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/indexes/test_indexes.py rename to sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py diff --git a/sdk/ai/azure-ai-projects/tests/indexes/test_indexes_async.py b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/indexes/test_indexes_async.py rename to sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py diff --git a/sdk/ai/azure-ai-projects/tests/redteams/test_redteams.py b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/redteams/test_redteams.py rename to sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py diff --git a/sdk/ai/azure-ai-projects/tests/redteams/test_redteams_async.py b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/redteams/test_redteams_async.py rename to sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py diff --git a/sdk/ai/azure-ai-projects/tests/responses/test_responses.py b/sdk/aiprojects/azure-ai-projects/tests/responses/test_responses.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/responses/test_responses.py rename to sdk/aiprojects/azure-ai-projects/tests/responses/test_responses.py diff --git a/sdk/ai/azure-ai-projects/tests/responses/test_responses_async.py b/sdk/aiprojects/azure-ai-projects/tests/responses/test_responses_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/responses/test_responses_async.py rename to sdk/aiprojects/azure-ai-projects/tests/responses/test_responses_async.py diff --git a/sdk/ai/azure-ai-projects/tests/samples/test_samples.py b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/samples/test_samples.py rename to sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py diff --git a/sdk/ai/azure-ai-projects/tests/samples/test_samples_async.py b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/samples/test_samples_async.py rename to sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py diff --git a/sdk/ai/azure-ai-projects/tests/telemetry/test_telemetry.py b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/telemetry/test_telemetry.py rename to sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py diff --git a/sdk/ai/azure-ai-projects/tests/telemetry/test_telemetry_async.py b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/telemetry/test_telemetry_async.py rename to sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py diff --git a/sdk/ai/azure-ai-projects/tests/test_base.py b/sdk/aiprojects/azure-ai-projects/tests/test_base.py similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_base.py rename to sdk/aiprojects/azure-ai-projects/tests/test_base.py diff --git a/sdk/ai/azure-ai-projects/tests/test_data/datasets/data_file1.txt b/sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_file1.txt similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/datasets/data_file1.txt rename to sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_file1.txt diff --git a/sdk/ai/azure-ai-projects/tests/test_data/datasets/data_file2.txt b/sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_file2.txt similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/datasets/data_file2.txt rename to sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_file2.txt diff --git a/sdk/ai/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file3.txt b/sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file3.txt similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file3.txt rename to sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file3.txt diff --git a/sdk/ai/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file4.txt b/sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file4.txt similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file4.txt rename to sdk/aiprojects/azure-ai-projects/tests/test_data/datasets/data_subfolder/data_file4.txt diff --git a/sdk/ai/azure-ai-projects/tests/test_data/files/.gitattributes b/sdk/aiprojects/azure-ai-projects/tests/test_data/files/.gitattributes similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/files/.gitattributes rename to sdk/aiprojects/azure-ai-projects/tests/test_data/files/.gitattributes diff --git a/sdk/ai/azure-ai-projects/tests/test_data/files/test_file.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/files/test_file.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/files/test_file.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/files/test_file.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/dpo_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/dpo_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/dpo_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/dpo_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/dpo_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/dpo_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/dpo_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/dpo_validation_set.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/rft_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/rft_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/rft_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/rft_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/rft_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/rft_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/rft_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/rft_validation_set.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/sft_training_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/sft_training_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/sft_training_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/sft_training_set.jsonl diff --git a/sdk/ai/azure-ai-projects/tests/test_data/finetuning/sft_validation_set.jsonl b/sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/sft_validation_set.jsonl similarity index 100% rename from sdk/ai/azure-ai-projects/tests/test_data/finetuning/sft_validation_set.jsonl rename to sdk/aiprojects/azure-ai-projects/tests/test_data/finetuning/sft_validation_set.jsonl diff --git a/sdk/aiprojects/ci.yml b/sdk/aiprojects/ci.yml new file mode 100644 index 000000000000..00148c2d7888 --- /dev/null +++ b/sdk/aiprojects/ci.yml @@ -0,0 +1,46 @@ +# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file. + +trigger: + branches: + include: + - main + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/ai/ + - sdk/core/ + +pr: + branches: + include: + - main + - feature/* + - hotfix/* + - release/* + - restapi* + paths: + include: + - sdk/ai/ + - sdk/core/ + +extends: + template: /eng/pipelines/templates/stages/archetype-sdk-client.yml + parameters: + ServiceDirectory: aiprojects + TestProxy: true + BuildDocs: true + TestTimeoutInMinutes: 60 + # The job "Test ubuntu2404_pypy39" in the "python - aiprojects" pipeline hangs and eventually times out. + # Disable it until the issue is understood. + MatrixConfigs: + - Name: communication_ci_matrix + Path: sdk/aiprojects/platform-matrix.json + Selection: sparse + GenerateVMJobs: true + MatrixFilters: + - PythonVersion=^(?!pypy3).* + Artifacts: + - name: azure-ai-projects + safeName: azureaiprojects diff --git a/sdk/aiprojects/platform-matrix.json b/sdk/aiprojects/platform-matrix.json new file mode 100644 index 000000000000..b3e63e38fdf7 --- /dev/null +++ b/sdk/aiprojects/platform-matrix.json @@ -0,0 +1,6 @@ +{ + "matrix": { + "$IMPORT": "eng/pipelines/templates/stages/platform-matrix.json", + "InstallPortAudio": [ "1" ] + } +} \ No newline at end of file diff --git a/sdk/aiprojects/tests.yml b/sdk/aiprojects/tests.yml new file mode 100644 index 000000000000..5df3c2640b90 --- /dev/null +++ b/sdk/aiprojects/tests.yml @@ -0,0 +1,8 @@ +trigger: none + +# NOTE: Service live tests are NOT enabled. This file only enables the analyze stage currently. +extends: + template: /eng/pipelines/templates/stages/python-analyze-weekly-standalone.yml + parameters: + ServiceDirectory: aiprojects + From 04722463209853564f6a0cd1a1a0faafa6edafb2 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 06:55:30 -0800 Subject: [PATCH 02/13] Update links in README.md and pyproject.toml --- sdk/aiprojects/azure-ai-projects/README.md | 48 +++++++++---------- .../azure-ai-projects/pyproject.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/sdk/aiprojects/azure-ai-projects/README.md b/sdk/aiprojects/azure-ai-projects/README.md index e546e9d64c67..76fb2d36722e 100644 --- a/sdk/aiprojects/azure-ai-projects/README.md +++ b/sdk/aiprojects/azure-ai-projects/README.md @@ -223,7 +223,7 @@ tool = CodeInterpreterTool(container=CodeInterpreterToolAuto(file_ids=[file.id]) *After calling `responses.create()`, check for generated files in response annotations (type `container_file_citation`) and download them using `openai_client.containers.files.content.retrieve()`.* -See the full sample code in [sample_agent_code_interpreter.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py). +See the full sample code in [sample_agent_code_interpreter.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_code_interpreter.py). **File Search** @@ -250,7 +250,7 @@ tool = FileSearchTool(vector_store_ids=[vector_store.id]) -See the full sample code in [sample_agent_file_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py). +See the full sample code in [sample_agent_file_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_file_search.py). **Image Generation** @@ -284,7 +284,7 @@ if image_data and image_data[0]: -See the full sample code in [sample_agent_image_generation.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py). +See the full sample code in [sample_agent_image_generation.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_image_generation.py). **Web Search** @@ -299,7 +299,7 @@ tool = WebSearchPreviewTool(user_location=ApproximateLocation(country="GB", city -See the full sample code in [sample_agent_web_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py). +See the full sample code in [sample_agent_web_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_web_search.py). **Computer Use** @@ -315,7 +315,7 @@ tool = ComputerUsePreviewTool(display_width=1026, display_height=769, environmen *After calling `responses.create()`, process the response in an interaction loop. Handle `computer_call` output items and provide screenshots as `computer_call_output` with `computer_screenshot` type to continue the interaction.* -See the full sample code in [sample_agent_computer_use.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py). +See the full sample code in [sample_agent_computer_use.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_computer_use.py). **Model Context Protocol (MCP)** @@ -335,7 +335,7 @@ mcp_tool = MCPTool( *After calling `responses.create()`, check for `mcp_approval_request` items in the response output. Send back `McpApprovalResponse` with your approval decision to allow the agent to continue its work.* -See the full sample code in [sample_agent_mcp.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py). +See the full sample code in [sample_agent_mcp.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp.py). **OpenAPI** @@ -359,7 +359,7 @@ tool = OpenApiAgentTool( -See the full sample code in [sample_agent_openapi.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py). +See the full sample code in [sample_agent_openapi.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi.py). **Function Tool** @@ -390,7 +390,7 @@ tool = FunctionTool( *After calling `responses.create()`, process `function_call` items from response output, execute your function logic with the provided arguments, and send back `FunctionCallOutput` with the results.* -See the full sample code in [sample_agent_function_tool.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py). +See the full sample code in [sample_agent_function_tool.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_function_tool.py). * **Memory Search Tool** @@ -411,9 +411,9 @@ See the full sample code in [sample_agent_function_tool.py](https://github.com/A ``` - See the full [sample_agent_memory_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py) showing how to create an Agent with a memory store, and use it in multiple conversations. + See the full [sample_agent_memory_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_memory_search.py) showing how to create an Agent with a memory store, and use it in multiple conversations. - See also samples in the folder [samples\memories](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/ai/azure-ai-projects/samples/memories) showing how to manage memory stores. + See also samples in the folder [samples\memories](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/aiprojects/azure-ai-projects/samples/memories) showing how to manage memory stores. #### Connection-Based Tools @@ -441,7 +441,7 @@ tool = AzureAISearchAgentTool( -See the full sample code in [sample_agent_ai_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py). +See the full sample code in [sample_agent_ai_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_ai_search.py). **Bing Grounding** @@ -461,7 +461,7 @@ tool = BingGroundingAgentTool( -See the full sample code in [sample_agent_bing_grounding.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py). +See the full sample code in [sample_agent_bing_grounding.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_grounding.py). **Bing Custom Search** @@ -484,7 +484,7 @@ tool = BingCustomSearchAgentTool( -See the full sample code in [sample_agent_bing_custom_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py). +See the full sample code in [sample_agent_bing_custom_search.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_bing_custom_search.py). **Microsoft Fabric** @@ -504,7 +504,7 @@ tool = MicrosoftFabricAgentTool( -See the full sample code in [sample_agent_fabric.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py). +See the full sample code in [sample_agent_fabric.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_fabric.py). **SharePoint** @@ -524,7 +524,7 @@ tool = SharepointAgentTool( -See the full sample code in [sample_agent_sharepoint.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py). +See the full sample code in [sample_agent_sharepoint.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_sharepoint.py). **Browser Automation** @@ -544,7 +544,7 @@ tool = BrowserAutomationAgentTool( -See the full sample code in [sample_agent_browser_automation.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py). +See the full sample code in [sample_agent_browser_automation.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_browser_automation.py). **MCP with Project Connection** @@ -564,7 +564,7 @@ tool = MCPTool( -See the full sample code in [sample_agent_mcp_with_project_connection.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py). +See the full sample code in [sample_agent_mcp_with_project_connection.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_mcp_with_project_connection.py). **Agent-to-Agent (A2A)** @@ -583,7 +583,7 @@ if os.environ.get("A2A_ENDPOINT"): -See the full sample code in [sample_agent_to_agent.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py). +See the full sample code in [sample_agent_to_agent.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_to_agent.py). **OpenAPI with Project Connection** @@ -611,9 +611,9 @@ tool = OpenApiAgentTool( -See the full sample code in [sample_agent_openapi_with_project_connection.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py). +See the full sample code in [sample_agent_openapi_with_project_connection.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools/sample_agent_openapi_with_project_connection.py). -For complete working examples of all tools, see the [sample tools directory](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/tools). +For complete working examples of all tools, see the [sample tools directory](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/tools). ### Evaluation @@ -976,7 +976,7 @@ with tracer.start_as_current_span(scenario): -See the full sample code in [sample_agent_basic_with_azure_monitor_tracing.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py). +See the full sample code in [sample_agent_basic_with_azure_monitor_tracing.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_azure_monitor_tracing.py). In addition, you might find it helpful to see the tracing logs in the console. You can achieve this with the following code: @@ -997,7 +997,7 @@ AIProjectInstrumentor().instrument() -See the full sample code in [sample_agent_basic_with_console_tracing.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py). +See the full sample code in [sample_agent_basic_with_console_tracing.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing.py). ### Enabling content recording @@ -1075,7 +1075,7 @@ provider.add_span_processor(CustomAttributeSpanProcessor()) -See the full sample code in [sample_agent_basic_with_console_tracing_custom_attributes.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/ai/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py). +See the full sample code in [sample_agent_basic_with_console_tracing_custom_attributes.py](https://github.com/Azure/azure-sdk-for-python/blob/main/sdk/aiprojects/azure-ai-projects/samples/agents/telemetry/sample_agent_basic_with_console_tracing_custom_attributes.py). ### Additional resources @@ -1156,7 +1156,7 @@ To report an issue with the client library, or request additional features, plea ## Next steps -Have a look at the [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/ai/azure-ai-projects/samples) folder, containing fully runnable Python code for synchronous and asynchronous clients. +Have a look at the [Samples](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/aiprojects/azure-ai-projects/samples) folder, containing fully runnable Python code for synchronous and asynchronous clients. ## Contributing diff --git a/sdk/aiprojects/azure-ai-projects/pyproject.toml b/sdk/aiprojects/azure-ai-projects/pyproject.toml index d5d669150aa4..59232ebaecb0 100644 --- a/sdk/aiprojects/azure-ai-projects/pyproject.toml +++ b/sdk/aiprojects/azure-ai-projects/pyproject.toml @@ -43,7 +43,7 @@ dynamic = [ ] [project.urls] -repository = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/ai/azure-ai-projects" +repository = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/aiprojects/azure-ai-projects" [tool.setuptools.dynamic] version = {attr = "azure.ai.projects._version.VERSION"} From 6d55f21fd8c673cd82c9cc08a169ae9ba4eb29c5 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 07:07:15 -0800 Subject: [PATCH 03/13] Update link in tests --- sdk/aiprojects/azure-ai-projects/tests/README.md | 2 +- .../azure-ai-projects/tests/connections/test_connections.py | 2 +- .../tests/connections/test_connections_async.py | 3 +-- .../azure-ai-projects/tests/datasets/test_datasets.py | 4 ++-- .../azure-ai-projects/tests/datasets/test_datasets_async.py | 4 ++-- .../azure-ai-projects/tests/deployments/test_deployments.py | 2 +- .../tests/deployments/test_deployments_async.py | 2 +- sdk/aiprojects/azure-ai-projects/tests/files/test_files.py | 2 +- .../azure-ai-projects/tests/files/test_files_async.py | 2 +- .../azure-ai-projects/tests/indexes/test_indexes.py | 2 +- .../azure-ai-projects/tests/indexes/test_indexes_async.py | 2 +- .../azure-ai-projects/tests/redteams/test_redteams.py | 2 +- .../azure-ai-projects/tests/redteams/test_redteams_async.py | 2 +- .../azure-ai-projects/tests/telemetry/test_telemetry.py | 2 +- .../azure-ai-projects/tests/telemetry/test_telemetry_async.py | 2 +- 15 files changed, 17 insertions(+), 18 deletions(-) diff --git a/sdk/aiprojects/azure-ai-projects/tests/README.md b/sdk/aiprojects/azure-ai-projects/tests/README.md index b9737eb32591..416db499422d 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/README.md +++ b/sdk/aiprojects/azure-ai-projects/tests/README.md @@ -5,7 +5,7 @@ The instructions below are for running tests locally, on a Windows machine, agai ## Build and install the client library - Clone or download this sample repository. -- Open a command prompt window in the folder `sdk\ai\azure-ai-projects` +- Open a command prompt window in the folder `sdk\aiprojects\azure-ai-projects` - Install development dependencies: ```bash pip install -r dev_requirements.txt diff --git a/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py index 968fe4d7a503..c6db7ef534ed 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py +++ b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections.py @@ -9,7 +9,7 @@ class TestConnections(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_connections.py::TestConnections::test_connections -s @servicePreparer() @recorded_by_proxy diff --git a/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py index b98cdacad711..4576d21f0635 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/connections/test_connections_async.py @@ -3,14 +3,13 @@ # Licensed under the MIT License. # ------------------------------------ -from azure.ai.projects.aio import AIProjectClient from test_base import TestBase, servicePreparer from devtools_testutils.aio import recorded_by_proxy_async class TestConnectionsAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_connections_async.py::TestConnectionsAsync::test_connections_async -s @servicePreparer() @recorded_by_proxy_async diff --git a/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py index 542c1090a384..c6d4e276ac79 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py +++ b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets.py @@ -22,7 +22,7 @@ class TestDatasets(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_datasets.py::TestDatasets::test_datasets_upload_file -s @servicePreparer() @pytest.mark.skipif( @@ -130,7 +130,7 @@ def test_datasets_upload_file(self, **kwargs): assert "Could not find asset with ID" in e.message assert exception_thrown - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_datasets.py::TestDatasets::test_datasets_upload_folder -s @servicePreparer() @pytest.mark.skipif( diff --git a/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py index c8445a2d8410..0303022555e5 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/datasets/test_datasets_async.py @@ -23,7 +23,7 @@ class TestDatasetsAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_datasets_async.py::TestDatasetsAsync::test_datasets_upload_file_async -s @servicePreparer() @pytest.mark.skipif( @@ -131,7 +131,7 @@ async def test_datasets_upload_file(self, **kwargs): assert "Could not find asset with ID" in e.message assert exception_thrown - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_datasets_async.py::TestDatasetsAsync::test_datasets_upload_folder_async -s @servicePreparer() @pytest.mark.skipif( diff --git a/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py index 8bc90ee53a4c..c33a279adf64 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py +++ b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments.py @@ -10,7 +10,7 @@ class TestDeployments(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_deployments.py::TestDeployments::test_deployments -s @servicePreparer() @recorded_by_proxy diff --git a/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py index 92549800faa2..012bc9c21ffa 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/deployments/test_deployments_async.py @@ -10,7 +10,7 @@ class TestDeploymentsAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_deployments_async.py::TestDeploymentsAsync::test_deployments_async -s @servicePreparer() @recorded_by_proxy_async diff --git a/sdk/aiprojects/azure-ai-projects/tests/files/test_files.py b/sdk/aiprojects/azure-ai-projects/tests/files/test_files.py index f934ce955547..42f4e0743797 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/files/test_files.py +++ b/sdk/aiprojects/azure-ai-projects/tests/files/test_files.py @@ -12,7 +12,7 @@ class TestFiles(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_files.py::TestFiles::test_files -s @servicePreparer() @recorded_by_proxy(RecordedTransport.HTTPX) diff --git a/sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py b/sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py index cc85b778e1a5..488d3033ed43 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/files/test_files_async.py @@ -13,7 +13,7 @@ class TestFilesAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_files_async.py::TestFilesAsync::test_files_async -s @servicePreparer() @recorded_by_proxy_async(RecordedTransport.HTTPX) diff --git a/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py index eb22ca9ff27b..439daea0ce52 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py +++ b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes.py @@ -12,7 +12,7 @@ class TestIndexes(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_indexes.py::TestIndexes::test_indexes -s @servicePreparer() @recorded_by_proxy diff --git a/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py index eb88e0d9a915..89918c29309a 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/indexes/test_indexes_async.py @@ -12,7 +12,7 @@ class TestIndexesAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_indexes_async.py::TestIndexesAsync::test_indexes_async -s @servicePreparer() @recorded_by_proxy_async diff --git a/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py index 2aefc6cef437..14b1ba4a12fa 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py +++ b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams.py @@ -16,7 +16,7 @@ class TestRedTeams(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_redteams.py::TestRedTeams::test_red_teams -s @servicePreparer() @recorded_by_proxy diff --git a/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py index d6809d2d785b..ecf4ca92b385 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/redteams/test_redteams_async.py @@ -16,7 +16,7 @@ class TestRedTeams(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\test_redteams.py::TestRedTeams::test_red_teams_async -s @servicePreparer() @recorded_by_proxy_async diff --git a/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py index 9ade1692ae0a..0de26b44e778 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py +++ b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry.py @@ -11,7 +11,7 @@ class TestTelemetry(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\telemetry\test_telemetry.py::TestTelemetry::test_telemetry -s @servicePreparer() @recorded_by_proxy diff --git a/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py index d0aee2d61e4b..0de42974c330 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/telemetry/test_telemetry_async.py @@ -12,7 +12,7 @@ class TestTelemetryAsync(TestBase): - # To run this test, use the following command in the \sdk\ai\azure-ai-projects folder: + # To run this test, use the following command in the \sdk\aiprojects\azure-ai-projects folder: # cls & pytest tests\telemetry\test_telemetry_async.py::TestTelemetryAsync::test_telemetry_async -s @servicePreparer() @recorded_by_proxy_async From e86f25e61241cb0383e1b85b7c06e1d9306c3df5 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 11:03:07 -0800 Subject: [PATCH 04/13] update cspell.json --- sdk/aiprojects/azure-ai-projects/cspell.json | 40 +++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/sdk/aiprojects/azure-ai-projects/cspell.json b/sdk/aiprojects/azure-ai-projects/cspell.json index 12f5733ae5c7..24cb74691400 100644 --- a/sdk/aiprojects/azure-ai-projects/cspell.json +++ b/sdk/aiprojects/azure-ai-projects/cspell.json @@ -2,31 +2,35 @@ "ignoreWords": [ "agentic", "aiproject", - "azureopenai", - "GLEU", + "aiprojectclient", + "aiprojects", "aiservices", - "azureai", - "GENAI", - "UPIA", "ansii", - "getconnectionwithcredentials", - "quantitive", - "balapvbyostoragecanary", - "fspath", "aread", - "inpainting", - "CSDL", - "fstring", - "aiprojectclient", - "Tadmaq", - "Udbk", - "Ministral", + "azureai", + "azureml", + "azureopenai", + "balapvbyostoragecanary", + "closefd", "cogsvc", + "CSDL", "evals", "FineTuning", - "ftjob", + "fspath", + "fstring", "ftchkpt", - "closefd" + "ftjob", + "GENAI", + "getconnectionwithcredentials", + "GLEU", + "inpainting", + "Ministral", + "quantitive", + "roups", + "Tadmaq", + "Udbk", + "UPIA", + "wsid" ], "ignorePaths": [ "*.csv", From cfdeaa587f8ee2e0ecc641523c2fb1e9c95c2d40 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 11:16:06 -0800 Subject: [PATCH 05/13] use vanity link in pyproject.toml --- sdk/aiprojects/azure-ai-projects/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/aiprojects/azure-ai-projects/pyproject.toml b/sdk/aiprojects/azure-ai-projects/pyproject.toml index 59232ebaecb0..410bc99ea30e 100644 --- a/sdk/aiprojects/azure-ai-projects/pyproject.toml +++ b/sdk/aiprojects/azure-ai-projects/pyproject.toml @@ -43,7 +43,7 @@ dynamic = [ ] [project.urls] -repository = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/aiprojects/azure-ai-projects" +repository = "https://aka.ms/azsdk/azure-ai-projects-v2/python/code" [tool.setuptools.dynamic] version = {attr = "azure.ai.projects._version.VERSION"} From 5a823f9d416b1ebc03245bdb01bbbfe0a2768ad6 Mon Sep 17 00:00:00 2001 From: Scott Beddall Date: Thu, 18 Dec 2025 20:21:44 +0000 Subject: [PATCH 06/13] revert all matrix changes. lets see if aiprojects works properly on pypy311 and if it DOES, then cool no custom matrix necessary. OTHERWISE I'll add another commit that targets a platform matrix that doesn't include it. --- sdk/aiprojects/ci.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sdk/aiprojects/ci.yml b/sdk/aiprojects/ci.yml index 00148c2d7888..954f313073c4 100644 --- a/sdk/aiprojects/ci.yml +++ b/sdk/aiprojects/ci.yml @@ -34,13 +34,6 @@ extends: TestTimeoutInMinutes: 60 # The job "Test ubuntu2404_pypy39" in the "python - aiprojects" pipeline hangs and eventually times out. # Disable it until the issue is understood. - MatrixConfigs: - - Name: communication_ci_matrix - Path: sdk/aiprojects/platform-matrix.json - Selection: sparse - GenerateVMJobs: true - MatrixFilters: - - PythonVersion=^(?!pypy3).* Artifacts: - name: azure-ai-projects safeName: azureaiprojects From 4e4ead03331ce29ec72fc404ae1e162090d6bf51 Mon Sep 17 00:00:00 2001 From: Scott Beddall Date: Thu, 18 Dec 2025 22:20:25 +0000 Subject: [PATCH 07/13] recording locations should now match up with what is automatically checked out --- sdk/aiprojects/azure-ai-projects/assets.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/aiprojects/azure-ai-projects/assets.json b/sdk/aiprojects/azure-ai-projects/assets.json index 1ebde2ec9637..2d6b0bc1d712 100644 --- a/sdk/aiprojects/azure-ai-projects/assets.json +++ b/sdk/aiprojects/azure-ai-projects/assets.json @@ -1,6 +1,6 @@ { "AssetsRepo": "Azure/azure-sdk-assets", "AssetsRepoPrefixPath": "python", - "TagPrefix": "python/ai/azure-ai-projects", - "Tag": "python/ai/azure-ai-projects_ae8b55e649" + "TagPrefix": "python/aiprojects/azure-ai-projects", + "Tag": "python/aiprojects/azure-ai-projects_e889d3e836" } From ce9a926d84634c7c8aa56a0757ddb8c191df770e Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 16:09:12 -0800 Subject: [PATCH 08/13] update main cspell.json, to supress error from /sdk/aiprojects/tests.yml --- .vscode/cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/cspell.json b/.vscode/cspell.json index c4b5b0967b70..4c022e6a26ec 100644 --- a/.vscode/cspell.json +++ b/.vscode/cspell.json @@ -185,6 +185,7 @@ "adls", "aenter", "aiohttp", + "aiprojects", "alru", "amqp", "amqps", From 573a5a519c0f22991017836bef7bc38d7435147a Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Thu, 18 Dec 2025 16:35:13 -0800 Subject: [PATCH 09/13] Set python version to 3.10 in pyrightconfig.json per CoPilot advice --- sdk/aiprojects/azure-ai-projects/pyrightconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json index b5a3fafb4354..086a597dded8 100644 --- a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json +++ b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json @@ -1,7 +1,7 @@ { "reportTypeCommentUsage": true, "reportMissingImports": false, - "pythonVersion": "3.11", + "pythonVersion": "3.10", "exclude": [ ], "extraPaths": [ From 749f7fc7f1d1adce2a67c4e562563db72dba0aca Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 19 Dec 2025 08:01:58 -0800 Subject: [PATCH 10/13] Update to Python 3.14 in pyrightconfig.json --- sdk/aiprojects/azure-ai-projects/pyrightconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json index 086a597dded8..a55ae941c2b2 100644 --- a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json +++ b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json @@ -1,7 +1,7 @@ { "reportTypeCommentUsage": true, "reportMissingImports": false, - "pythonVersion": "3.10", + "pythonVersion": "3.14", "exclude": [ ], "extraPaths": [ From 9853dec28b9bafdf4fccd8daf04b62bb67cb67b7 Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 19 Dec 2025 09:41:11 -0800 Subject: [PATCH 11/13] Try again --- sdk/aiprojects/azure-ai-projects/pyrightconfig.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json index a55ae941c2b2..51dd33c49e63 100644 --- a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json +++ b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json @@ -1,7 +1,16 @@ { "reportTypeCommentUsage": true, "reportMissingImports": false, - "pythonVersion": "3.14", + "reportAbstractUsage": false, + "reportArgumentType": false, + "reportAttributeAccessIssue": false, + "reportCallIssue": false, + "reportGeneralTypeIssues": false, + "reportInvalidTypeForm": false, + "reportPossiblyUnboundVariable": false, + "reportRedeclaration": false, + "reportUndefinedVariable": false, + "pythonVersion": "3.10", "exclude": [ ], "extraPaths": [ From 6fccc41ab72f2e40b541c27c3e75c02a5aae020d Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Fri, 19 Dec 2025 09:46:08 -0800 Subject: [PATCH 12/13] Restore original python version --- sdk/aiprojects/azure-ai-projects/pyrightconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json index 51dd33c49e63..ecc5eb6c574e 100644 --- a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json +++ b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json @@ -10,7 +10,7 @@ "reportPossiblyUnboundVariable": false, "reportRedeclaration": false, "reportUndefinedVariable": false, - "pythonVersion": "3.10", + "pythonVersion": "3.11", "exclude": [ ], "extraPaths": [ From 31fb33d9d9bd9651c2e5b7ef7a86c00c58be18ce Mon Sep 17 00:00:00 2001 From: Darren Cohen <39422044+dargilco@users.noreply.github.com> Date: Mon, 22 Dec 2025 09:10:50 -0800 Subject: [PATCH 13/13] Bring over test fixes to unblock test failures in release pipeline --- pyrightconfig.json | 2 +- .../azure-ai-projects/pyrightconfig.json | 1 + .../tests/samples/sample_executor_helpers.py | 206 ++++++++++++ .../tests/samples/test_samples.py | 292 +++--------------- .../tests/samples/test_samples_async.py | 82 ++++- 5 files changed, 323 insertions(+), 260 deletions(-) create mode 100644 sdk/aiprojects/azure-ai-projects/tests/samples/sample_executor_helpers.py diff --git a/pyrightconfig.json b/pyrightconfig.json index 23f5155848f6..db13108dd6ae 100644 --- a/pyrightconfig.json +++ b/pyrightconfig.json @@ -1,5 +1,5 @@ { "reportTypeCommentUsage": true, "reportMissingImports": false, - "pythonVersion": "3.9" + "pythonVersion": "3.11" } diff --git a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json index ecc5eb6c574e..0c640286b01d 100644 --- a/sdk/aiprojects/azure-ai-projects/pyrightconfig.json +++ b/sdk/aiprojects/azure-ai-projects/pyrightconfig.json @@ -1,4 +1,5 @@ { + // See https://github.com/microsoft/pyright/blob/main/docs/configuration.md#pyright-configuration "reportTypeCommentUsage": true, "reportMissingImports": false, "reportAbstractUsage": false, diff --git a/sdk/aiprojects/azure-ai-projects/tests/samples/sample_executor_helpers.py b/sdk/aiprojects/azure-ai-projects/tests/samples/sample_executor_helpers.py new file mode 100644 index 000000000000..8697362b1631 --- /dev/null +++ b/sdk/aiprojects/azure-ai-projects/tests/samples/sample_executor_helpers.py @@ -0,0 +1,206 @@ +# pylint: disable=line-too-long,useless-suppression +# ------------------------------------ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# ------------------------------------ +"""Shared base code for sample tests - sync dependencies only.""" +import os +import sys +import pytest +import inspect +import importlib.util +from typing import Optional +from pydantic import BaseModel + + +class BaseSampleExecutor: + """Base helper class for executing sample files with proper environment setup. + + This class contains all shared logic that doesn't require async/aio imports. + Subclasses implement sync/async specific credential and execution logic. + """ + + class TestReport(BaseModel): + """Schema for validation test report.""" + + model_config = {"extra": "forbid"} + correct: bool + reason: str + + def __init__(self, test_instance, sample_path: str, env_var_mapping: dict[str, str], **kwargs): + self.test_instance = test_instance + self.sample_path = sample_path + self.print_calls: list[str] = [] + self._original_print = print + + # Prepare environment variables + self.env_vars = {} + for sample_var, test_var in env_var_mapping.items(): + value = kwargs.pop(test_var, None) + if value is not None: + self.env_vars[sample_var] = value + + # Add the sample's directory to sys.path so it can import local modules + self.sample_dir = os.path.dirname(sample_path) + if self.sample_dir not in sys.path: + sys.path.insert(0, self.sample_dir) + + # Create module spec for dynamic import + module_name = os.path.splitext(os.path.basename(self.sample_path))[0] + spec = importlib.util.spec_from_file_location(module_name, self.sample_path) + if spec is None or spec.loader is None: + raise ImportError(f"Could not load module {module_name} from {self.sample_path}") + + self.module = importlib.util.module_from_spec(spec) + self.spec = spec + + def _capture_print(self, *args, **kwargs): + """Capture print calls while still outputting to console.""" + self.print_calls.append(" ".join(str(arg) for arg in args)) + self._original_print(*args, **kwargs) + + def _get_validation_request_params(self) -> dict: + """Get common parameters for validation request.""" + return { + "model": "gpt-4o", + "instructions": """We just run Python code and captured a Python array of print statements. +Validating the printed content to determine if correct or not: +Respond false if any entries show: +- Error messages or exception text +- Empty or null results where data is expected +- Malformed or corrupted data +- Timeout or connection errors +- Warning messages indicating failures +- Failure to retrieve or process data +- Statements saying documents/information didn't provide relevant data +- Statements saying unable to find/retrieve information +- Asking the user to specify, clarify, or provide more details +- Suggesting to use other tools or sources +- Asking follow-up questions to complete the task +- Indicating lack of knowledge or missing information +- Responses that defer answering or redirect the question +Respond with true only if the result provides a complete, substantive answer with actual data/information. +Always respond with `reason` indicating the reason for the response.""", + "text": { + "format": { + "type": "json_schema", + "name": "TestReport", + "schema": self.TestReport.model_json_schema(), + } + }, + # The input field is sanitized in recordings (see conftest.py) by matching the unique prefix + # "print contents array = ". This allows sample print statements to change without breaking playback. + # The instructions field is preserved as-is in recordings. If you modify the instructions, + # you must re-record the tests. + "input": f"print contents array = {self.print_calls}", + } + + def _assert_validation_result(self, test_report: dict) -> None: + """Assert validation result and print reason.""" + if not test_report["correct"]: + # Write print statements to log file in temp folder for debugging + import tempfile + from datetime import datetime + + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + log_file = os.path.join(tempfile.gettempdir(), f"sample_validation_error_{timestamp}.log") + with open(log_file, "w") as f: + f.write(f"Sample: {self.sample_path}\n") + f.write(f"Validation Error: {test_report['reason']}\n\n") + f.write("Print Statements:\n") + f.write("=" * 80 + "\n") + for i, print_call in enumerate(self.print_calls, 1): + f.write(f"{i}. {print_call}\n") + print(f"\nValidation failed! Print statements logged to: {log_file}") + assert test_report["correct"], f"Error is identified: {test_report['reason']}" + print(f"Reason: {test_report['reason']}") + + +class SamplePathPasser: + """Decorator for passing sample path to test functions.""" + + def __call__(self, fn): + if inspect.iscoroutinefunction(fn): + + async def _wrapper_async(test_class, sample_path, **kwargs): + return await fn(test_class, sample_path, **kwargs) + + return _wrapper_async + else: + + def _wrapper_sync(test_class, sample_path, **kwargs): + return fn(test_class, sample_path, **kwargs) + + return _wrapper_sync + + +def get_sample_paths( + sub_folder: str, + *, + samples_to_skip: Optional[list[str]] = None, + is_async: Optional[bool] = False, +) -> list: + """Get list of sample paths for testing.""" + # Get the path to the samples folder + current_dir = os.path.dirname(os.path.abspath(__file__)) + samples_folder_path = os.path.normpath(os.path.join(current_dir, os.pardir, os.pardir)) + target_folder = os.path.join(samples_folder_path, "samples", *sub_folder.split("/")) + + if not os.path.exists(target_folder): + raise ValueError(f"Target folder does not exist: {target_folder}") + + print("Target folder for samples:", target_folder) + print("is_async:", is_async) + print("samples_to_skip:", samples_to_skip) + # Discover all sync or async sample files in the folder + all_files = [ + f + for f in os.listdir(target_folder) + if ( + f.startswith("sample_") + and (f.endswith("_async.py") if is_async else (f.endswith(".py") and not f.endswith("_async.py"))) + ) + ] + + if samples_to_skip: + files_to_test = [f for f in all_files if f not in samples_to_skip] + else: + files_to_test = all_files + + print(f"Running the following samples as test:\n{files_to_test}") + + # Create pytest.param objects + samples = [] + for filename in sorted(files_to_test): + sample_path = os.path.join(target_folder, filename) + test_id = filename.replace(".py", "") + samples.append(pytest.param(sample_path, id=test_id)) + + return samples + + +def get_sample_environment_variables_map(operation_group: Optional[str] = None) -> dict[str, str]: + """Get the mapping of sample environment variables to test environment variables. + + Args: + operation_group: Optional operation group name (e.g., "agents") to scope the endpoint variable. + + Returns: + Dictionary mapping sample env var names to test env var names. + """ + return { + "AZURE_AI_PROJECT_ENDPOINT": ( + "azure_ai_projects_tests_project_endpoint" + if operation_group is None + else f"azure_ai_projects_tests_{operation_group}_project_endpoint" + ), + "AZURE_AI_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_model_deployment_name", + "IMAGE_GENERATION_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_image_generation_model_deployment_name", + "AI_SEARCH_PROJECT_CONNECTION_ID": "azure_ai_projects_tests_ai_search_project_connection_id", + "AI_SEARCH_INDEX_NAME": "azure_ai_projects_tests_ai_search_index_name", + "AI_SEARCH_USER_INPUT": "azure_ai_projects_tests_ai_search_user_input", + "SHAREPOINT_USER_INPUT": "azure_ai_projects_tests_sharepoint_user_input", + "SHAREPOINT_PROJECT_CONNECTION_ID": "azure_ai_projects_tests_sharepoint_project_connection_id", + "MEMORY_STORE_CHAT_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_memory_store_chat_model_deployment_name", + "MEMORY_STORE_EMBEDDING_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_memory_store_embedding_model_deployment_name", + } diff --git a/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py index db1eadb4d8cb..f606368a3b12 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py +++ b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples.py @@ -3,188 +3,74 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ -import os, pytest, inspect, sys, json -import importlib.util +import os +import json import unittest.mock as mock -from typing import Optional, Union, cast, overload +from typing import cast +import pytest from azure.core.credentials import TokenCredential -from azure.core.credentials_async import AsyncTokenCredential -from devtools_testutils.aio import recorded_by_proxy_async -from devtools_testutils import recorded_by_proxy, AzureRecordedTestCase, RecordedTransport from devtools_testutils.fake_credentials import FakeTokenCredential -from devtools_testutils.fake_credentials_async import AsyncFakeCredential -from test_base import servicePreparer, patched_open_crlf_to_lf -from pytest import MonkeyPatch +from devtools_testutils import recorded_by_proxy, AzureRecordedTestCase, RecordedTransport from azure.ai.projects import AIProjectClient -from azure.ai.projects.aio import AIProjectClient as AsyncAIProjectClient -from pydantic import BaseModel - - -class SampleExecutor: - """Helper class for executing sample files with proper environment setup and credential mocking.""" - - # Note that Python 3.9 doesn't support the | operator for type unions in annotations. That syntax was introduced - # in Python 3.10. So here we use Union from the typing module instead. - tokenCredential: Optional[ - Union[TokenCredential, AsyncTokenCredential, FakeTokenCredential, AsyncFakeCredential] - ] = None - - class TestReport(BaseModel): - """Schema for validation test report.""" - - model_config = {"extra": "forbid"} - correct: bool - reason: str - - def __init__( - self, test_instance: "AzureRecordedTestCase", sample_path: str, env_var_mapping: dict[str, str], **kwargs - ): - self.test_instance = test_instance - self.sample_path = sample_path - self.print_calls: list[str] = [] - self._original_print = print - - # Prepare environment variables - self.env_vars = {} - for sample_var, test_var in env_var_mapping.items(): - value = kwargs.pop(test_var, None) - if value is not None: - self.env_vars[sample_var] = value - - # Add the sample's directory to sys.path so it can import local modules - self.sample_dir = os.path.dirname(sample_path) - if self.sample_dir not in sys.path: - sys.path.insert(0, self.sample_dir) +from pytest import MonkeyPatch +from test_base import servicePreparer +from sample_executor_helpers import ( + BaseSampleExecutor, + SamplePathPasser, + get_sample_paths, + get_sample_environment_variables_map, +) - # Create module spec for dynamic import - module_name = os.path.splitext(os.path.basename(self.sample_path))[0] - spec = importlib.util.spec_from_file_location(module_name, self.sample_path) - if spec is None or spec.loader is None: - raise ImportError(f"Could not load module {module_name} from {self.sample_path}") - self.module = importlib.util.module_from_spec(spec) - self.spec = spec +class SyncSampleExecutor(BaseSampleExecutor): + """Synchronous sample executor that only uses sync credentials.""" - def _capture_print(self, *args, **kwargs): - """Capture print calls while still outputting to console.""" - self.print_calls.append(" ".join(str(arg) for arg in args)) - self._original_print(*args, **kwargs) + def __init__(self, test_instance, sample_path: str, env_var_mapping: dict[str, str], **kwargs): + super().__init__(test_instance, sample_path, env_var_mapping, **kwargs) + self.tokenCredential: TokenCredential | FakeTokenCredential | None = None - def _get_mock_credential(self, is_async: bool): + def _get_mock_credential(self): """Get a mock credential that supports context manager protocol.""" - self.tokenCredential = self.test_instance.get_credential(AIProjectClient, is_async=is_async) - if is_async: - patch_target = "azure.identity.aio.DefaultAzureCredential" - else: - patch_target = "azure.identity.DefaultAzureCredential" + self.tokenCredential = self.test_instance.get_credential(AIProjectClient, is_async=False) + patch_target = "azure.identity.DefaultAzureCredential" # Create a mock that returns a context manager wrapping the credential mock_credential_class = mock.MagicMock() mock_credential_class.return_value.__enter__ = mock.MagicMock(return_value=self.tokenCredential) mock_credential_class.return_value.__exit__ = mock.MagicMock(return_value=None) - mock_credential_class.return_value.__aenter__ = mock.AsyncMock(return_value=self.tokenCredential) - mock_credential_class.return_value.__aexit__ = mock.AsyncMock(return_value=None) return mock.patch(patch_target, new=mock_credential_class) - def execute(self, enable_llm_validation: bool = True): + def execute(self, enable_llm_validation: bool = True, patched_open_fn=None): """Execute a synchronous sample with proper mocking and environment setup.""" + # Import patched_open_crlf_to_lf here to avoid circular import + if patched_open_fn is None: + from test_base import patched_open_crlf_to_lf + + patched_open_fn = patched_open_crlf_to_lf with ( MonkeyPatch.context() as mp, - self._get_mock_credential(is_async=False), + self._get_mock_credential(), ): for var_name, var_value in self.env_vars.items(): mp.setenv(var_name, var_value) - with ( - mock.patch("builtins.print", side_effect=self._capture_print), - mock.patch("builtins.open", side_effect=patched_open_crlf_to_lf), - ): - if self.spec.loader is None: - raise ImportError(f"Could not load module {self.spec.name} from {self.sample_path}") - self.spec.loader.exec_module(self.module) + self._execute_module(patched_open_fn) if enable_llm_validation: self._validate_output() - async def execute_async(self, enable_llm_validation: bool = True): - """Execute an asynchronous sample with proper mocking and environment setup.""" + def _execute_module(self, patched_open_fn): + """Execute the module with environment setup and mocking.""" + if self.spec.loader is None: + raise ImportError(f"Could not load module {self.spec.name} from {self.sample_path}") with ( - MonkeyPatch.context() as mp, - self._get_mock_credential(is_async=True), + mock.patch("builtins.print", side_effect=self._capture_print), + mock.patch("builtins.open", side_effect=patched_open_fn), ): - for var_name, var_value in self.env_vars.items(): - mp.setenv(var_name, var_value) - - with ( - mock.patch("builtins.open", side_effect=patched_open_crlf_to_lf), - mock.patch("builtins.print", side_effect=self._capture_print), - ): - if self.spec.loader is None: - raise ImportError(f"Could not load module {self.spec.name} from {self.sample_path}") - self.spec.loader.exec_module(self.module) - await self.module.main() - - if enable_llm_validation: - await self._validate_output_async() - - def _get_validation_request_params(self) -> dict: - """Get common parameters for validation request.""" - return { - "model": "gpt-4o", - "instructions": """We just run Python code and captured a Python array of print statements. -Validating the printed content to determine if correct or not: -Respond false if any entries show: -- Error messages or exception text -- Empty or null results where data is expected -- Malformed or corrupted data -- Timeout or connection errors -- Warning messages indicating failures -- Failure to retrieve or process data -- Statements saying documents/information didn't provide relevant data -- Statements saying unable to find/retrieve information -- Asking the user to specify, clarify, or provide more details -- Suggesting to use other tools or sources -- Asking follow-up questions to complete the task -- Indicating lack of knowledge or missing information -- Responses that defer answering or redirect the question -Respond with true only if the result provides a complete, substantive answer with actual data/information. -Always respond with `reason` indicating the reason for the response.""", - "text": { - "format": { - "type": "json_schema", - "name": "TestReport", - "schema": self.TestReport.model_json_schema(), - } - }, - # The input field is sanitized in recordings (see conftest.py) by matching the unique prefix - # "print contents array = ". This allows sample print statements to change without breaking playback. - # The instructions field is preserved as-is in recordings. If you modify the instructions, - # you must re-record the tests. - "input": f"print contents array = {self.print_calls}", - } - - def _assert_validation_result(self, test_report: dict) -> None: - """Assert validation result and print reason.""" - if not test_report["correct"]: - # Write print statements to log file in temp folder for debugging - import tempfile - from datetime import datetime - - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") - log_file = os.path.join(tempfile.gettempdir(), f"sample_validation_error_{timestamp}.log") - with open(log_file, "w") as f: - f.write(f"Sample: {self.sample_path}\n") - f.write(f"Validation Error: {test_report['reason']}\n\n") - f.write("Print Statements:\n") - f.write("=" * 80 + "\n") - for i, print_call in enumerate(self.print_calls, 1): - f.write(f"{i}. {print_call}\n") - print(f"\nValidation failed! Print statements logged to: {log_file}") - assert test_report["correct"], f"Error is identified: {test_report['reason']}" - print(f"Reason: {test_report['reason']}") + self.spec.loader.exec_module(self.module) def _validate_output(self): """Validate sample output using synchronous OpenAI client.""" @@ -203,110 +89,6 @@ def _validate_output(self): test_report = json.loads(response.output_text) self._assert_validation_result(test_report) - async def _validate_output_async(self): - """Validate sample output using asynchronous OpenAI client.""" - endpoint = os.environ["AZURE_AI_PROJECT_ENDPOINT"] - print(f"For validating console output, creating AIProjectClient with endpoint: {endpoint}") - assert isinstance(self.tokenCredential, AsyncTokenCredential) or isinstance( - self.tokenCredential, AsyncFakeCredential - ) - async with ( - AsyncAIProjectClient( - endpoint=endpoint, credential=cast(AsyncTokenCredential, self.tokenCredential) - ) as project_client, - ): - async with project_client.get_openai_client() as openai_client: - response = await openai_client.responses.create(**self._get_validation_request_params()) - test_report = json.loads(response.output_text) - self._assert_validation_result(test_report) - - -class SamplePathPasser: - def __call__(self, fn): - if inspect.iscoroutinefunction(fn): - - async def _wrapper_async(test_class, sample_path, **kwargs): - return await fn(test_class, sample_path, **kwargs) - - return _wrapper_async - else: - - def _wrapper_sync(test_class, sample_path, **kwargs): - return fn(test_class, sample_path, **kwargs) - - return _wrapper_sync - - -def get_sample_paths( - sub_folder: str, - *, - samples_to_skip: Optional[list[str]] = None, - is_async: Optional[bool] = False, -) -> list: - # Get the path to the samples folder - current_dir = os.path.dirname(os.path.abspath(__file__)) - samples_folder_path = os.path.normpath(os.path.join(current_dir, os.pardir, os.pardir)) - target_folder = os.path.join(samples_folder_path, "samples", *sub_folder.split("/")) - - if not os.path.exists(target_folder): - raise ValueError(f"Target folder does not exist: {target_folder}") - - print("Target folder for samples:", target_folder) - print("is_async:", is_async) - print("samples_to_skip:", samples_to_skip) - # Discover all sync or async sample files in the folder - all_files = [ - f - for f in os.listdir(target_folder) - if ( - f.startswith("sample_") - and (f.endswith("_async.py") if is_async else (f.endswith(".py") and not f.endswith("_async.py"))) - ) - ] - - if samples_to_skip: - files_to_test = [f for f in all_files if f not in samples_to_skip] - else: - files_to_test = all_files - - print(f"Running the following samples as test:\n{files_to_test}") - - # Create pytest.param objects - samples = [] - for filename in sorted(files_to_test): - sample_path = os.path.join(target_folder, filename) - test_id = filename.replace(".py", "") - samples.append(pytest.param(sample_path, id=test_id)) - - return samples - - -def get_sample_environment_variables_map(operation_group: Optional[str] = None) -> dict[str, str]: - """Get the mapping of sample environment variables to test environment variables. - - Args: - operation_group: Optional operation group name (e.g., "agents") to scope the endpoint variable. - - Returns: - Dictionary mapping sample env var names to test env var names. - """ - return { - "AZURE_AI_PROJECT_ENDPOINT": ( - "azure_ai_projects_tests_project_endpoint" - if operation_group is None - else f"azure_ai_projects_tests_{operation_group}_project_endpoint" - ), - "AZURE_AI_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_model_deployment_name", - "IMAGE_GENERATION_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_image_generation_model_deployment_name", - "AI_SEARCH_PROJECT_CONNECTION_ID": "azure_ai_projects_tests_ai_search_project_connection_id", - "AI_SEARCH_INDEX_NAME": "azure_ai_projects_tests_ai_search_index_name", - "AI_SEARCH_USER_INPUT": "azure_ai_projects_tests_ai_search_user_input", - "SHAREPOINT_USER_INPUT": "azure_ai_projects_tests_sharepoint_user_input", - "SHAREPOINT_PROJECT_CONNECTION_ID": "azure_ai_projects_tests_sharepoint_project_connection_id", - "MEMORY_STORE_CHAT_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_memory_store_chat_model_deployment_name", - "MEMORY_STORE_EMBEDDING_MODEL_DEPLOYMENT_NAME": "azure_ai_projects_tests_memory_store_embedding_model_deployment_name", - } - class TestSamples(AzureRecordedTestCase): @@ -333,5 +115,5 @@ class TestSamples(AzureRecordedTestCase): @recorded_by_proxy(RecordedTransport.AZURE_CORE, RecordedTransport.HTTPX) def test_agent_tools_samples(self, sample_path: str, **kwargs) -> None: env_var_mapping = get_sample_environment_variables_map(operation_group="agents") - executor = SampleExecutor(self, sample_path, env_var_mapping, **kwargs) + executor = SyncSampleExecutor(self, sample_path, env_var_mapping, **kwargs) executor.execute() diff --git a/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py index 8c8bca337f6a..72e0ba9b7f33 100644 --- a/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py +++ b/sdk/aiprojects/azure-ai-projects/tests/samples/test_samples_async.py @@ -3,18 +3,92 @@ # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # ------------------------------------ +import os +import json +import unittest.mock as mock +from typing import cast import pytest +from azure.core.credentials_async import AsyncTokenCredential +from devtools_testutils.fake_credentials_async import AsyncFakeCredential from devtools_testutils.aio import recorded_by_proxy_async from devtools_testutils import AzureRecordedTestCase, RecordedTransport -from test_samples import ( - SampleExecutor, +from azure.ai.projects.aio import AIProjectClient as AsyncAIProjectClient +from pytest import MonkeyPatch +from test_base import servicePreparer +from sample_executor_helpers import ( + BaseSampleExecutor, SamplePathPasser, get_sample_paths, get_sample_environment_variables_map, - servicePreparer, ) +class AsyncSampleExecutor(BaseSampleExecutor): + """Asynchronous sample executor that uses async credentials.""" + + def __init__(self, test_instance, sample_path: str, env_var_mapping: dict[str, str], **kwargs): + super().__init__(test_instance, sample_path, env_var_mapping, **kwargs) + self.tokenCredential: AsyncTokenCredential | AsyncFakeCredential | None = None + + def _get_mock_credential(self): + """Get a mock credential that supports async context manager protocol.""" + self.tokenCredential = self.test_instance.get_credential(AsyncAIProjectClient, is_async=True) + patch_target = "azure.identity.aio.DefaultAzureCredential" + + # Create a mock that returns an async context manager wrapping the credential + mock_credential_class = mock.MagicMock() + mock_credential_class.return_value.__aenter__ = mock.AsyncMock(return_value=self.tokenCredential) + mock_credential_class.return_value.__aexit__ = mock.AsyncMock(return_value=None) + + return mock.patch(patch_target, new=mock_credential_class) + + async def execute_async(self, enable_llm_validation: bool = True, patched_open_fn=None): + """Execute an asynchronous sample with proper mocking and environment setup.""" + # Import patched_open_crlf_to_lf here to avoid circular import + if patched_open_fn is None: + from test_base import patched_open_crlf_to_lf + + patched_open_fn = patched_open_crlf_to_lf + + with ( + MonkeyPatch.context() as mp, + self._get_mock_credential(), + mock.patch("builtins.print", side_effect=self._capture_print), + mock.patch("builtins.open", side_effect=patched_open_fn), + ): + for var_name, var_value in self.env_vars.items(): + mp.setenv(var_name, var_value) + + self._execute_module() + await self.module.main() + + if enable_llm_validation: + await self._validate_output_async() + + def _execute_module(self): + """Execute the module without applying patches (patches applied at caller level).""" + if self.spec.loader is None: + raise ImportError(f"Could not load module {self.spec.name} from {self.sample_path}") + self.spec.loader.exec_module(self.module) + + async def _validate_output_async(self): + """Validate sample output using asynchronous OpenAI client.""" + endpoint = os.environ["AZURE_AI_PROJECT_ENDPOINT"] + print(f"For validating console output, creating AIProjectClient with endpoint: {endpoint}") + assert isinstance(self.tokenCredential, AsyncTokenCredential) or isinstance( + self.tokenCredential, AsyncFakeCredential + ) + async with ( + AsyncAIProjectClient( + endpoint=endpoint, credential=cast(AsyncTokenCredential, self.tokenCredential) + ) as project_client, + ): + async with project_client.get_openai_client() as openai_client: + response = await openai_client.responses.create(**self._get_validation_request_params()) + test_report = json.loads(response.output_text) + self._assert_validation_result(test_report) + + def _get_async_sample_paths(sub_folder: str, *, samples_to_skip: list[str]) -> list: return get_sample_paths(sub_folder, samples_to_skip=samples_to_skip, is_async=True) @@ -38,5 +112,5 @@ class TestSamplesAsync(AzureRecordedTestCase): @recorded_by_proxy_async(RecordedTransport.AZURE_CORE, RecordedTransport.HTTPX) async def test_agent_tools_samples_async(self, sample_path: str, **kwargs) -> None: env_var_mapping = get_sample_environment_variables_map(operation_group="agents") - executor = SampleExecutor(self, sample_path, env_var_mapping, **kwargs) + executor = AsyncSampleExecutor(self, sample_path, env_var_mapping, **kwargs) await executor.execute_async()