Sample retrieval-augmented generation (RAG) AI chatbot app using Next.js, shadcn/ui, Azure AI Search, Azure OpenAI, and Vercel AI SDK
A Next.js application, powered by the Vercel AI SDK, that uses retrieval-augmented generation (RAG) to reason and respond with information outside of the model's training data.
streamText
functionuseChat
hookTo get the project up and running, follow these steps:
Install dependencies:
npm install
Copy the example environment file:
cp .env.example .env
Create prerequisite resources in Azure AI:
Note: create a vector search index via REST API or within Azure Portal)
Note: see available Azure OpenAI models here and deploy them using this guide
Add your Azure OpenAI and Azure AI Search variables to the .env
file:
AZURE_SEARCH_ENDPOINT=your_azure_search_endpoint_here
AZURE_SEARCH_KEY=your_azure_search_key_here
AZURE_SEARCH_INDEX_NAME=your_azure_search_index_name_here
AZURE_SEARCH_CONTENT_FIELD=your_azure_search_content_field_here
AZURE_SEARCH_VECTOR_FIELD=your_azure_search_vector_field_here # include if using vector search
AZURE_SEARCH_SEMANTIC_CONFIGURATION_NAME=your_azure_search_semantic_configuration_name_here # include if using semantic search
AZURE_OPENAI_API_ENDPOINT=your_azure_openai_api_endpoint_here
AZURE_RESOURCE_NAME=your_azure_resource_name_here
AZURE_DEPLOYMENT_NAME=your_azure_deployment_name_here # chat model deployment name
AZURE_EMBEDDING_DEPLOYMENT_NAME=your_azure_embedding_deployment_name_here # embedding model deployment name
AZURE_API_KEY=your_azure_api_key_here
Start the development server:
npm run dev
Your project should now be running on http://localhost:3000.
This template includes code from Vercel's AI SDK RAG Template, which is licensed under the MIT license.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.
Sample retrieval-augmented generation (RAG) AI chatbot app using Next.js, shadcn/ui, Azure AI Search, Azure OpenAI, and Vercel AI SDK
A Next.js application, powered by the Vercel AI SDK, that uses retrieval-augmented generation (RAG) to reason and respond with information outside of the model's training data.
streamText
functionuseChat
hookTo get the project up and running, follow these steps:
Install dependencies:
npm install
Copy the example environment file:
cp .env.example .env
Create prerequisite resources in Azure AI:
Note: create a vector search index via REST API or within Azure Portal)
Note: see available Azure OpenAI models here and deploy them using this guide
Add your Azure OpenAI and Azure AI Search variables to the .env
file:
AZURE_SEARCH_ENDPOINT=your_azure_search_endpoint_here
AZURE_SEARCH_KEY=your_azure_search_key_here
AZURE_SEARCH_INDEX_NAME=your_azure_search_index_name_here
AZURE_SEARCH_CONTENT_FIELD=your_azure_search_content_field_here
AZURE_SEARCH_VECTOR_FIELD=your_azure_search_vector_field_here # include if using vector search
AZURE_SEARCH_SEMANTIC_CONFIGURATION_NAME=your_azure_search_semantic_configuration_name_here # include if using semantic search
AZURE_OPENAI_API_ENDPOINT=your_azure_openai_api_endpoint_here
AZURE_RESOURCE_NAME=your_azure_resource_name_here
AZURE_DEPLOYMENT_NAME=your_azure_deployment_name_here # chat model deployment name
AZURE_EMBEDDING_DEPLOYMENT_NAME=your_azure_embedding_deployment_name_here # embedding model deployment name
AZURE_API_KEY=your_azure_api_key_here
Start the development server:
npm run dev
Your project should now be running on http://localhost:3000.
This template includes code from Vercel's AI SDK RAG Template, which is licensed under the MIT license.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.