MCPcopy Index your code
hub / github.com/dotnet/eShopSupport

github.com/dotnet/eShopSupport @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,428 symbols 2,629 edges 136 files 21 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

eShopSupport

A sample .NET application showcasing common use cases and development practices for build AI solutions in .NET (Generative AI, specifically). This sample demonstrates a customer support application for an e-commerce website using a services-based architecture with .NET Aspire. It includes support for the following AI use cases:

  • Text classification, applying labels based on content
  • Sentiment analysis based on message content
  • Summarization of large sets of text
  • Synthetic data generation, creating test content for the sample
  • Chat bot interactions with chat history and suggested responses

This sample also demonstrates the following development practices:

  • Developing a solution locally, using small local models
  • Evaluating the quality of AI responses using grounded Q&A data
  • Leveraging Python projects as part of a .NET Aspire solution
  • Deploying the application, including small local models, to the Cloud (coming soon)

Architecture

image

Getting Started

Prerequisites

Windows with Visual Studio

Mac, Linux, & Windows without Visual Studio

powershell dotnet workload update dotnet workload install aspire dotnet restore eShopSupport.sln - (Optionally) Install Visual Studio Code with the C# Dev Kit extension

Install Python requirements

From the Terminal, at the root of the cloned repo, run:

pip install -r src/PythonInference/requirements.txt

Note: If the above command doesn't work on Windows, use the following command:

py -m pip install -r src/PythonInference/requirements.txt

Running the solution

[!WARNING] Remember to ensure that Docker is started.

  • (Windows only) Run the application from Visual Studio:
  • Open the eShopSupport.sln file in Visual Studio
  • Ensure that AppHost is your startup project
  • Hit Ctrl-F5 to launch .NET Aspire

  • Or run the application from your terminal:

powershell dotnet run --project src/AppHost

then look for lines like this in the console output in order to find the URL to open the Aspire dashboard:

sh Login to the dashboard at: http://localhost:17191/login?t=uniquelogincodeforyou

You may need to install ASP.NET Core HTTPS development certificates first, and then close all browser tabs. Learn more at https://aka.ms/aspnet/https-trust-dev-cert

Contributing

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Sample data

The sample data is defined in seeddata. All products/descriptions/brands, manuals, customers, and support tickets names are fictional and were generated using GPT-35-Turbo using the included DataGenerator project.

Core symbols most depended-on inside this repo

get
called by 101
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
_on
called by 88
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
dispatch
called by 71
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
push
called by 70
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
has
called by 33
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
set
called by 32
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
remove
called by 28
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs
render
called by 16
src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs

Shape

Method 886
Class 313
Function 220
Enum 7
Route 2

Languages

TypeScript67%
C#32%
Python1%

Modules by API surface

src/StaffWebUI/wwwroot/pdfjs-4.2.67-dist/web/viewer.mjs955 symbols
src/ServiceDefaults/Clients/Backend/StaffBackendClient.cs25 symbols
seeddata/DataGenerator/Generators/GeneratorBase.cs13 symbols
src/ServiceDefaults/Clients/ChatCompletion/TestCachingChatClientBuilderExtensions.cs12 symbols
seeddata/DataGenerator/Generators/TicketThreadGenerator.cs12 symbols
seeddata/DataGenerator/Generators/TicketSummaryGenerator.cs12 symbols
test/EvaluationTests/EvaluationTests.cs11 symbols
src/IdentityServer/Pages/Telemetry.cs11 symbols
src/AppHost/Ollama/OllamaResourceExtensions.cs11 symbols
src/Backend/Services/ProductManualSemanticSearch.cs10 symbols
seeddata/DataGenerator/Generators/ManualGenerator.cs10 symbols
test/E2ETest/TicketAssistantTest.cs8 symbols

For agents

$ claude mcp add eShopSupport \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact