Copilot stack
Project Miyagi - Envisioning sample for“Start with the customer experience and work backwards for the technology” - Steve Jobs
"Change is the only constant" - Ancient wisdom
Project Miyagi showcases Microsoft's Copilot Stack in an envisioning workshop aimed at designing, developing, and deploying enterprise-grade intelligent apps. By exploring both generative and traditional ML use cases, Miyagi offers an experiential approach to developing AI-infused product experiences that enhance productivity and enable hyper-personalization. Additionally, the workshop introduces traditional software engineers to emerging design patterns in prompt engineering, such as chain-of-thought and retrieval-augmentation, as well as to techniques like vectorization for long-term memory, fine-tuning of OSS models, and plugins or tools for augmenting and grounding LLMs.
Note
Work in Progress. Meanwhile, signup at intelligentapp.dev for updates and checkout our related repo that showcases Generative AI capabilities for cloud-native, event-driven microservices: Azure/reddog-solutions.For a preview, catch the recording on Cosmos DB Live TV
The project includes examples of usage for Semantic Kernel, Promptflow, LlamaIndex, LangChain, vector stores (Azure Cognitive Search, CosmosDB Postgres pgvector, and generative image utilities such as DreamFusion and ControlNet. Additionally, it features fine-tuned foundation Models from AzureML such as Llama2. Utilize this project to gain insights as you modernize and transform your applications with AI and fine-tune your private data to build your own Copilots.
This polyglot codebase relies on a multitude of microservices, implementing several use cases using our Copilot stack. It includes generative text and images for personalized financial coaching, summarization, and agent-like orchestration. Built on a cloud-native event-diven architecture (EDA) backbone, the design and codebase ensures enterprise-grade quality attributes such as availability, scalability, and maintainability.
Embark on a journey to transform your applications into cutting-edge, intelligent systems with the self-guided workshop and discover the art of the possible.
Partial Implementations
Due to the rapid pace of advancements in foundation models, we are incrementally implementing use cases for Miyagi in the experiments folder. So far, we have the following implemented:
- MVP with Personalize (Synthesis via Semantic Kernel) and Chat on Azure Container Apps.
- Miyagi ChatGPT Plugin
- Knowledge Graph memory using Langchain's entity cache
- Qdrant vector store for embeddings via Langchain
- MS Graph API intent invoked via Semantic Kernel's skills
- Miyagi prompt engineered chat interaction using LangChain's PromptTemplate
- Azure OpenAI GPT-3.5 basic flow
- GPT-3.5-turbo and Whisper-1 usage to transcribe audio and demonstrate few-shot example
- DeepSpeed Chat MiyagiGPT (BYO Weights w/ RLHF - Reinforcement Learning from Human Feedback) - coming soon
Frontend
Interaction with foundation models is more than chat. This sample shows a few use cases
Architecture
High-level logical architecture
Semantic Kernel Orchestration for Miyagi usecase
In-context learning flow
30k foot view
Prompt Flow
OSS Pre-trained Foundation Models
Initial ideation for EDA + SK flow
Generative image use case architecture with Dreambooth
This will be similar to reddog product image generation use case.
Tech Stack
Copilot Stack
Services and capabilities
- Azure OpenAI
- gpt-4
- gpt-35-turbo
- text-embedding-ada-002
- Semantic Kernel
- Use your own data with Azure OpenAI
- AzureML PromptFlow
- TypeChat
- Azure Functions
- APIM
- Service Bus
- Event Grid
- Logic Apps
- AKS / ACA
- Cosmos DB
- Github Actions
- Azure Monitor
- Azure DB for PostgreSQL
- Azure Redis Cache
- Azure Storage
- Apache Kafka on Azure Event Hubs
- Azure HuggingFace Inference Endpoints
- LangChain
- Foundation Models from CogServices
- Qdrant
- Microsoft DeepSpeed Chat
- Azure Web PubSub
- Azure Communication Services (ACS)
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Disclaimer
This software is provided for demonstration purposes only. It is not intended to be relied upon for any purpose. The creators of this software make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the software or the information, products, services, or related graphics contained in the software for any purpose. Any reliance you place on such information is therefore strictly at your own risk.
License
This software is provided for demonstration purposes only. It is not intended to be relied upon for any purpose. The software is provided “as is” and without any warranties, express or implied. The software is not intended to be used for any commercial purpose. The software is provided solely for demonstration purposes and should not be used for any other purpose. The software is provided without any warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. The software is provided “as is” and without any warranty of any kind. The user assumes all risk and responsibility for the use of the software.