Python: Fix Azure AI sample errors (#4021)

* Python: Fix Azure AI sample errors

- azure_ai_with_application_endpoint: Add missing name to Agent constructor
- azure_ai_with_file_search: Fix resource path (parents[2] -> parents[3])
- azure_ai_with_openapi: Fix resource path (parents[2] -> parents[3])
- azure_ai_with_session: Use get_agent/get_session to reuse existing agent
  version and preserve conversation context across agent instances

* Python: Fix resource paths in azure_ai_agent samples

- azure_ai_with_file_search: Fix path to employees.pdf (parent.parent -> parents[3]/shared)
- azure_ai_with_openapi_tools: Fix path to weather.json/countries.json (parents[2] -> parents[3])

* fix V1 SDK hosted tools (FileSearchTool, etc.) silently dropped during agent creation

* fix: V2 file search sample uses correct SDK (AIProjectClient instead of AgentsClient)

The azure_ai/azure_ai_with_file_search.py sample incorrectly used the V1
AgentsClient for file/vector store operations. Replaced with V2 pattern:
AIProjectClient + get_openai_client() for file upload and vector store
management, matching the official Azure AI Projects SDK samples.

* fix: use context manager for file open in V2 file search sample
This commit is contained in:
Giles Odigwe
2026-02-18 05:27:19 +00:00
committed by GitHub
parent 2dd731f90f
commit 28e3fc308b
8 changed files with 42 additions and 50 deletions
@@ -35,7 +35,7 @@ async def main() -> None:
):
try:
# 1. Upload file and create vector store
pdf_file_path = Path(__file__).parent.parent / "resources" / "employees.pdf"
pdf_file_path = Path(__file__).parents[3] / "shared" / "resources" / "employees.pdf"
print(f"Uploading file from: {pdf_file_path}")
file = await agents_client.files.upload_and_poll(file_path=str(pdf_file_path), purpose="assistants")
@@ -23,7 +23,7 @@ USER_INPUTS = [
def load_openapi_specs() -> tuple[dict[str, Any], dict[str, Any]]:
"""Load OpenAPI specification files."""
resources_path = Path(__file__).parents[2] / "shared" / "resources"
resources_path = Path(__file__).parents[3] / "shared" / "resources"
with open(resources_path / "weather.json") as weather_file:
weather_spec = json.load(weather_file)