October 24th, 2024

eShop infused with AI – a comprehensive intelligent app sample with Semantic Kernel

Today we’re featuring a sample application, called eShop. You can read the entire blog post and steps for running the application here: eShop infused with AI – a comprehensive intelligent app sample – .NET Blog

Below, we have a brief summary of eShop and the integration with Semantic Kernel.

Introducing eShop “support with AI” edition

The AI-enhanced eShopSupport application is a support site that customers use to inquire about products. The eShop staff have a workflow for tracking these inquiries, conversing with the customers, and categorizing and eventually closing these inquiries. Through a variety of features, this sample moves past the popular “chatbot” scenario to illustrate several ways AI can boost your developer productivity while increasing the level of individualized customer support you are able to provide.

This demo illustrates how AI can be used to enhance a variety of features in an existing line-of-business application and is not just for “green field” or new apps. For example, why not enhance your search with semantic search that can find things even when the user doesn’t type the exact phrase or use proper spelling? Do you need to add new languages to your app? Large language models, or LLMs, are capable of handling multiple language inputs and outputs. Do you have a lot of data you sift through to find trends? Use the LLM to help summarize your data. If it is going into a pipeline, consider automating classification and sentiment analysis.

Architecture diagram for eShop support

The demo also uses .NET Aspire to take advantage of its ability to orchestrate across services, data stores, containers, and even technologies. Python is a popular language in the data science world, but that doesn’t mean you have to switch everything to Python or even convert Python to C#. This example shows one approach to interoperability and hosts a Python microservice using .NET Aspire.

Features

AI-related features in the sample include:

Feature Description Code implementation
Semantic search Find things without knowing an exact phrase or description and even with improper spelling src / Backend / Services / SemanticSeach
Summarization Avoid “getting in the weeds” to re-read history to gain context and just focus on the relevant bits src / Backend / Services / TicketSummarizer
Classification Automate workflows without requiring human intervention src / PythonInference / routers / classifier
Sentiment scoring Help triage and prioritize feedback and discussions to understand how well a product or campaign is received src / Backend / Services / TicketSummarizer
Internal Q&A chatbot Help staff answer technical and business related questions with citations for proof, and auto-generate the draft of the reply src / ServiceDefaults / Clients / Backend / StaffBackendClient
Test data generation Generate large volumes of data based on the rules you provide seeddata / DataGenerator / Generators
Evaluation tool Objectively score the behavior of your bots/agents based on accuracy, speed, and cost, and systematically improve them over time src / Evaluator / Program
E2E testing An example (experimental) approach to providing deterministic test gates when the product itself is not deterministic test / E2ETest

.NET Aspire is used to manage the resources such as LLMs and databases. Microsoft.Extensions.AI is a set of common building blocks and primitives for intelligent apps. Developers benefit by using a standard set of APIs to perform common tasks, while library and framework providers can build on these common, standard interfaces and classes to provide a consistent experience throughout the .NET ecosystem. As the Semantic Kernel team announced in their blog, the Microsoft.Extensions.AI release does not replace Semantic Kernel. Instead, it provides a set of abstractions, APIs, and primitive building blocks that will be implemented by Semantic Kernel along with additional features like semantic chunking.

Conclusion

As next steps you can clone and run it locally by following the instructions here: https://devblogs.microsoft.com/dotnet/e-shop-infused-with-ai-comprehensive-intelligent-dotnet-app-sample/#instructions-for-cloning-and-running-locally

Please reach out if you have any questions or feedback through our Semantic Kernel GitHub Discussion Channel. We look forward to hearing from you! We would also love your support — if you’ve enjoyed using Semantic Kernel, give us a star on GitHub.

0 comments