// the find
Azure-Samples/chat-with-your-data-solution-accelerator
A Solution Accelerator for the RAG pattern running in Azure, using Azure AI Search for retrieval and Azure OpenAI large language models to power ChatGPT-style and Q&A experiences. This includes most common requirements and best practices.
A Microsoft-maintained reference implementation for RAG on Azure, wiring together Azure AI Search, Azure OpenAI, Document Intelligence, and a React frontend into a deployable chatbot. It's aimed at enterprise teams who need more control than the out-of-box 'Azure OpenAI on your data' feature but don't want to design the plumbing themselves. Active maintenance, 630 forks, and a Teams extension suggest it's actually being used in production contexts.
The ingestion pipeline is genuinely thorough — multiple chunking strategies (fixed-size, layout-aware, paragraph, page), multiple document loaders, and push/pull ingestion modes mean you're not stuck with one approach that fails on PDFs with tables. The orchestrator abstraction supports four backends (Semantic Kernel, LangChain, OpenAI Functions, Prompt Flow) as swappable strategies, which is useful if your team needs to migrate between them. PostgreSQL + pgvector as an alternative to Cosmos DB is a practical addition — one less managed service to run if you're already on Postgres. The CI pipeline is comprehensive with functional tests, bicep audits, broken link checks, and automated Dependabot merges.
The deployment surface is enormous — App Service, Functions, AI Search, OpenAI, Document Intelligence, CosmosDB or PostgreSQL, Storage, Speech Service, Bot Service — with no guidance on what a minimal viable subset looks like; you either deploy everything or spend a week figuring out what to cut. The four orchestrator backends are minimally tested against each other, and the feature matrix between them is undocumented, so you'll discover at runtime that something only works with Semantic Kernel. Local dev setup requires a devcontainer or significant manual environment wiring; there's no quick 'run this against a small SQLite mock' path for frontend work. The admin site is a Streamlit app bolted onto the Python backend, which means a completely separate web framework in the same repo — it works but feels like it was added in a hurry.