microsoft / AI-Chat-App-Hack

HackTogether: The Microsoft Python Chatbot Hack | Register, Hack, Win
MIT License
216 stars 42 forks source link

Project: Microsoft Azure solution architecture brainstorming buddy #92

Open ace-racer opened 4 months ago

ace-racer commented 4 months ago

Project name

Microsoft Azure solution architecture brainstorming buddy

Description

Description

In the world of cloud computing, designing the right architecture for your Microsoft Azure project can sometimes be a daunting challenge. To assist with this, introducing the Microsoft Azure solution architecture brainstorming buddy. This Retrieval-Augmented Generation (RAG) based chat application is designed to help you navigate existing Azure architectures to brainstorm design decisions especially for analytics use cases.

Relevant Azure architectures were identified from the Azure Architecture Centre. The content from these links were downloaded and post processed by splitting the text and adding metadata. Embeddings for the text content was generated using Sentence transformers. The final output was stored locally in ChromaDB.

The chat app developed using Streamlit has 2 prompts which are sent to OpenAI's chat completion models. The first prompt is used to generate a highly relevant search query to get the relevant documents from ChromaDB based on the current conversation. The second prompt is used to synthesize an answer for the user query using the relevant documents. Prompts are stored as Jinja templates for faster iteration. The final search results are streamed to the user for lower perceived latency.

The main beneficiaries of this app would be the solution architects or Azure developers in different enterprises who need a brainstorming buddy to come up with an initial architecture for a solution in Azure with references from existing successful Microsoft Azure solution implementations.

Going forward

The same could be implemented in the Microsoft Azure ecosystem where both the chat completion and embeddings models are deployed in Azure OpenAI. The vector database ChromaDB can be replaced by the more powerful Azure AI search service. The streamlit app itself could be deployed to Azure App Service with user authentication via Microsoft Entra ID.

The performance of the application itself could be further improved by extracting topics and tags from the articles and creating a knowledge graph by combining such topics and tags using a data Ontology. During the query the user's question could then find the relevant articles both from the vector database and the knowledge graph and the final answer is derived from a combination of the 2 results.

Language

English

Project Repository URL

https://github.com/ace-racer/azure-architectures-chat-app

Deployed Endpoint URL

No response

Project video

https://youtu.be/A-sTTBofIA4

Team members

ace-racer

Showcase Consent

Yes