azure
11 TopicsExploring the Advanced RAG (Retrieval Augmented Generation) Service
In the ever-evolving landscape of AI, LLM + RAG (Retrieval Augmented Generation) is a typical use scenario. Retrieving accurate related chunked data from complicated docs and then improving LLM response quality becomes challenge. There is no a silver bullet RAG can address all requirements so far. Developers need to verify different advanced RAG techs to find out which is a proper one for their scenarios considering accuracy, response speed, costs, etc. In order to solve this, with Azure Intelligent Document, Azure OpenAI, LlamaIndex, LangChain, Gradio..., I developed this AdvancedRAG service. This service is encapsulated in a Docker container, offers a streamlined way to experiment with different indexing techniques, evaluate their accuracy, and optimize performance for various RAG use cases. Whether you're building a quick MVP, a proof of concept, or simply exploring different indexing strategies, this service provides a versatile playground.9.2KViews3likes0CommentsCreate a 3D collaborative app for Teams Meeting using Live Share SDK, Live Share Canvas and Babylon
Using Teams Live Share SDK, Live Share Canvas, Babylon, Fluent UI Web Component, we can implement a collaborative inking 2D/3D objects teams meeting extension with Teams UI style.7.1KViews2likes0CommentsCreate a Skill Bot from Azure Question Answering Service
The bot generated by Azure Question Answering service uses a root bot pattern, which doesn’t include the authentication and error handling requirement for a typical skill bot. This article explains how to create Skill Bot from Azure Question Answering for developers7.1KViews0likes0CommentsAdd chat bot feature to your desktop app
Recently, we have seen a lot of chatbots. For example FAQ bots and navigation bots and more. If the app users are looking for how to use the app, then chatbot UI is a good way for asking about apps. You can create a FAQ bot using Azure Bot Service and QnA Maker. It is straightforward. The following document explains how to create QA bots. Use QnA Maker to answer questions If you want to integrate a bot feature in your app, then you can use DirectLine APIs. You can use it add Microsoft.Bot.Connector.DirectLine package using NuGet. How to use DirectLine? At first, you create a DirectLineClient instance. var directLineClient = new DirectLineClient("here is key that is got from Bot Channels Registration"); Next, start a conversation. var conversation = await directLineClient.Conversations.StartConversationAsync(); You can send a message to bot using the conversation id. await directLineClient.Conversations.PostActivityAsync(conversation.ConversationId, new Activity { From = new ChannelAccount("User id"), Text = "a message send to bot", Type = ActivityTypes.Message, }); And you can also get messages from the bot. string watermark = null; while(true) { var activitySet = await directLineClient.Conversations.GetActivitiesAsync(conversation.ConversationId, watermark); watermark = activitySet.Watermark; var botMessages = activitySet.Activities.Where(x => x.From.Id == "bot id"); foreach (var message in botMessages) { // process a message that is from the bot } await Task.Delay(2000); } It's very simple and easy. How to display rich contents? The bots that are created by Azure Bot Service send some rich contents like image contents ,and cards contents(hero cards, adaptive cards) ,and more. If you want to support those contents, then you can use AdaptiveCards Renderer. For WPF package For UWP package If you detect rich contents in attachments of the message, then convert it to an AdaptiveCard instance, and then you can render it using AdaptiveCards Renderer. The convert logic is like below: private IEnumerable<AdaptiveCard> ConvertAttachmentsToAdaptiveCard(IEnumerable<Attachment> attachments) { AdaptiveCard parseHeroCard(string json) { var heroCard = JsonConvert.DeserializeObject<HeroCard>(json); return new AdaptiveCard("1.0") { Body = new List<AdaptiveElement> { new AdaptiveTextBlock(heroCard.Title) { Size = AdaptiveTextSize.Medium, Weight = AdaptiveTextWeight.Bolder, }, new AdaptiveTextBlock(heroCard.Text), }, }; } return attachments?.Select(x => x.ContentType switch { "application/vnd.microsoft.card.hero" => parseHeroCard(x.Content.ToString()), "image/png" => new AdaptiveCard("1.0") { Body = new List<AdaptiveElement> { new AdaptiveImage(x.ContentUrl), } }, _ => null, }) ?.Where(x => x != null); } The rendering logic is like following code: // The code for UWP var renderer = new AdaptiveCardRenderer(); var adaptiveCard = ... // Get an AdaptiveCards.AdaptiveCard instance var renderedCard = renderer.RenderAdaptiveCard(AdaptiveCard.FromJsonString(adaptiveCard.ToJson())); renderedCard.FrameworkElement; // get result The sample program The following repository is a sample app to render simple text messages, Hero cards and images. https://github.com/runceel/DirectLineClient5.6KViews1like1CommentDeploy a Docker multi-container application on Azure Web Apps
First published on MSDN on Oct 24, 2018 In the last post of my series about Docker we have seen how, thanks to Docker Compose, it's easy to deploy an application composed by multiple components running in different containers.10KViews1like0CommentsBuild your first Alexa skill with Alexa.NET and Azure Functions - The certification
First published on MSDN on Nov 03, 2018 In the previous post we have learned how to build our first Alexa skill using a set of familiar tools and platforms: C#, Visual Studio and Azure Functions.2.2KViews0likes0Comments