https://github.com/expecho/spiderai
Spider AI showcases what is possible using LLMs using .Net
https://github.com/expecho/spiderai
azure-openai csharp dotnet dotnet-aspire llm open-telemetry semantic-kernel
Last synced: 5 months ago
JSON representation
Spider AI showcases what is possible using LLMs using .Net
- Host: GitHub
- URL: https://github.com/expecho/spiderai
- Owner: Expecho
- Created: 2024-12-23T15:11:57.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-02-19T17:59:20.000Z (5 months ago)
- Last Synced: 2025-02-26T20:44:32.771Z (5 months ago)
- Topics: azure-openai, csharp, dotnet, dotnet-aspire, llm, open-telemetry, semantic-kernel
- Language: C#
- Homepage:
- Size: 442 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# Spider AI
Spider AI showcases what is possible using LLMs using .Net. It is build using
- [Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/overview/)
- [.Net Aspire](https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview)
- [Open Telemetry](https://opentelemetry.io/)## Features
- Support for [Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-services/openai/overview)
## Solution Structure
The solution consists of the following projects:
### SpiderAI.Core
The heart of the solution. It contains the core logic for the application built using Semantic Kernel. It calls the AI models and is responsible for handling model state and configuration.
### SpiderAI.Server
Provides http endpoint to interact with the core logic.
### SpiderAI.Client
Contains clients to interact with the server built using .Net Maui.
### SpiderAI.Web(.Client)
Web app and Blazor client to interact with the server.
### SpiderAI.Shared
Defines the shared layout used by the Blazor client and .Net Maui clients.
### SpiderAI.AppHost
.Aspire project, this project is defined as the startup project for the solution and starts the web server, blazor client and the web api.
## Getting Started
### Configuration
Currently the configuration is retrieved from a url. The url can be congifured by configuring the value of the setting "BlobStorageConfiguration" in the `appsettings.json` file of the *SpiderAI.Server* project .
#### Azure Open AI Configuration
The configuration for Azure Open AI is expected to be in the following format:
```json
"AzureOpenAI": {
"Endpoint": "https://xxx.openai.azure.com/",
"ApiKey": "xxx",
"Models": [
{
"ModelId": "xxx",
"Capability": "Chat",
"Name": "Chat"
},
{
"ModelId": "yyy",
"Capability": "TextEmbedding",
"Name": "Text Embedding"
},
{
"ModelId": "zzz",
"Capability": "ImageGeneration",
"Name": "Image Generation"
}
]
}
```- ModelId must be a valid model id from Azure OpenAI.
- Capability is used to determine which model to use for the given request or task.
- Name is used to select a model in the UI.