Commit Graph

1 Commits

  • Python: Feature/azure ai search agentic rag (search as separate package) (#2328)
    * Python: Fix pyright errors and move search provider to core (#1546)
    
    * address pablo coments
    
    * update azure ai search pypi version to latest prev
    
    * init update
    
    * Fix MyPy type annotation errors in search provider
    
    - Add type annotation to DEFAULT_CONTEXT_PROMPT
    - Add type annotation to vectorizable_fields
    - Add union type annotation to vector_queries
    
    * Fix DEFAULT_CONTEXT_PROMPT MyPy error and update test
    
    - Rename DEFAULT_CONTEXT_PROMPT to _DEFAULT_SEARCH_CONTEXT_PROMPT to avoid conflict with base class Final variable
    - Update test to use new constant name
    - All core package tests passing (1123 passed)
    
    * Python: Move Azure AI Search to separate package per PR feedback
    
    Addresses reviewer feedback from PR #1546 by isolating the beta dependency
    (azure-search-documents==11.7.0b2) into a new agent-framework-aisearch package.
    
    Changes:
    - Created new agent-framework-aisearch package with complete structure
    - Moved AzureAISearchContextProvider from core to aisearch package
    - Added AzureAISearchSettings class for environment variable auto-loading
    - Added support for direct API key string (auto-converts to AzureKeyCredential)
    - Added azure_openai_api_key parameter for Knowledge Base authentication
    - Updated embedding_function type to Callable[[str], Awaitable[list[float]]]
    - Moved Role import to top-level imports
    - Maintained lazy loading through agent_framework.azure module
    - Removed beta dependency from core package
    - Updated all tests to use new package location
    - All quality checks pass: ruff format/lint, pyright, mypy (0 errors)
    - All 21 unit tests pass with 59% coverage
    
    Semantic search mode verified working with both API key and managed identity authentication.
    
    ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * Python: Clarify top_k parameter only applies to semantic mode
    
    Updated documentation to clarify that the top_k parameter only affects
    semantic search mode. In agentic mode, the server-side Knowledge Base
    determines retrieval based on query complexity and reasoning effort.
    
    ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * Python: Add Knowledge Base output mode and retrieval reasoning effort parameters
    
    Added support for configurable Knowledge Base behavior in agentic mode:
    
    - knowledge_base_output_mode: "extractive_data" (default) or "answer_synthesis"
      Some knowledge sources require answer_synthesis mode for proper functionality.
    
    - retrieval_reasoning_effort: "minimal" (default), "medium", or "low"
      Controls query planning complexity and multi-hop reasoning depth.
    
    These parameters give users fine-grained control over Knowledge Base behavior
    and enable support for knowledge sources that require answer synthesis.
    
    ๐Ÿค– Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    
    * effort and outputmode query params
    
    * Address PR review feedback for Azure AI Search context provider
    
    * comments eduward
    
    * ed latest comments
    
    ---------
    
    Co-authored-by: Farzad Sunavala <farzad.sunavala.enovate.ai>
    Co-authored-by: farzad528 <farzad528@users.noreply.github.com>
    Co-authored-by: Claude <noreply@anthropic.com>