EasyAppDev.Blazor.AutoComplete.AI
1.0.7
dotnet add package EasyAppDev.Blazor.AutoComplete.AI --version 1.0.7
NuGet\Install-Package EasyAppDev.Blazor.AutoComplete.AI -Version 1.0.7
<PackageReference Include="EasyAppDev.Blazor.AutoComplete.AI" Version="1.0.7" />
<PackageVersion Include="EasyAppDev.Blazor.AutoComplete.AI" Version="1.0.7" />
<PackageReference Include="EasyAppDev.Blazor.AutoComplete.AI" />
paket add EasyAppDev.Blazor.AutoComplete.AI --version 1.0.7
#r "nuget: EasyAppDev.Blazor.AutoComplete.AI, 1.0.7"
#:package EasyAppDev.Blazor.AutoComplete.AI@1.0.7
#addin nuget:?package=EasyAppDev.Blazor.AutoComplete.AI&version=1.0.7
#tool nuget:?package=EasyAppDev.Blazor.AutoComplete.AI&version=1.0.7
EasyAppDev.Blazor.AutoComplete.AI
AI-powered semantic search for the Blazor AutoComplete component. Search by meaning, not just keywords.
Features
- Semantic Search: Understands meaning, synonyms, and concepts
- SIMD Acceleration: 3-5x faster similarity calculations
- Dual Caching: Separate item/query caches with LRU eviction
- Multiple Providers: OpenAI, Azure OpenAI, Ollama, or custom
- Hybrid Search: Falls back to text matching for short queries
Installation
dotnet add package EasyAppDev.Blazor.AutoComplete.AI
Note: This package includes the core AutoComplete component as a dependency.
Quick Start
1. Configure OpenAI
Option A: appsettings.json (Recommended)
{
"OpenAI": {
"ApiKey": "sk-proj-...",
"Model": "text-embedding-3-small"
}
}
// Program.cs
builder.Services.AddAutoCompleteSemanticSearch(builder.Configuration);
Option B: Direct API Key
builder.Services.AddAutoCompleteSemanticSearch(
apiKey: "sk-proj-...",
model: "text-embedding-3-small");
2. Use the Component
@using EasyAppDev.Blazor.AutoComplete.AI
<SemanticAutoComplete TItem="Document"
Items="@docs"
SearchFields="@(d => new[] { d.Title, d.Description })"
TextField="@(d => d.Title)"
SimilarityThreshold="0.15"
@bind-Value="@selectedDoc"
Placeholder="Search by meaning..." />
Supported Providers
| Provider | Setup Method | Cost | Privacy |
|---|---|---|---|
| OpenAI | AddAutoCompleteSemanticSearch() |
$ | Cloud |
| Azure OpenAI | AddAutoCompleteSemanticSearchWithAzure() |
$ | Azure |
| Ollama | Custom IEmbeddingGenerator |
Free | Local |
Azure OpenAI
builder.Services.AddAutoCompleteSemanticSearchWithAzure(
endpoint: "https://my-resource.openai.azure.com/",
apiKey: "your-azure-api-key",
deploymentName: "text-embedding-ada-002");
Ollama (Local)
using OllamaSharp;
var ollamaClient = new OllamaApiClient("http://localhost:11434");
builder.Services.AddSingleton<IEmbeddingGenerator<string, Embedding<float>>>(
ollamaClient.AsEmbeddingGenerator("nomic-embed-text"));
Advanced Configuration
<SemanticAutoComplete TItem="Product"
Items="@products"
SearchFields="@(p => new[] { p.Name, p.Description })"
@* Cache Configuration *@
ItemCacheDuration="TimeSpan.FromHours(2)"
QueryCacheDuration="TimeSpan.FromMinutes(30)"
MaxItemCacheSize="20000"
@* Pre-warming *@
PreWarmCache="true"
ShowCacheStatus="true"
@* Search Tuning *@
SimilarityThreshold="0.15"
MinSearchLength="3"
DebounceMs="500"
@bind-Value="@selectedProduct" />
Vector Database Providers
For production-grade semantic search with persistent storage, use vector database providers:
| Package | Provider |
|---|---|
EasyAppDev.Blazor.AutoComplete.AI.PostgreSql |
PostgreSQL/pgvector |
EasyAppDev.Blazor.AutoComplete.AI.AzureSearch |
Azure AI Search |
EasyAppDev.Blazor.AutoComplete.AI.Pinecone |
Pinecone |
EasyAppDev.Blazor.AutoComplete.AI.Qdrant |
Qdrant |
EasyAppDev.Blazor.AutoComplete.AI.CosmosDb |
Azure CosmosDB |
Performance
- SIMD Acceleration: 3-5x faster cosine similarity
- Cache Hit Rate: 80%+ after warm-up
- API Cost Reduction: 80%+ due to caching
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- EasyAppDev.Blazor.AutoComplete (>= 1.0.7)
- Microsoft.Extensions.AI.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.SemanticKernel (>= 1.68.0)
- Microsoft.SemanticKernel.Connectors.OpenAI (>= 1.68.0)
- System.Numerics.Tensors (>= 10.0.0)
-
net9.0
- EasyAppDev.Blazor.AutoComplete (>= 1.0.7)
- Microsoft.Extensions.AI.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.SemanticKernel (>= 1.68.0)
- Microsoft.SemanticKernel.Connectors.OpenAI (>= 1.68.0)
- System.Numerics.Tensors (>= 10.0.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on EasyAppDev.Blazor.AutoComplete.AI:
| Package | Downloads |
|---|---|
|
EasyAppDev.Blazor.AutoComplete.AI.CosmosDb
Azure CosmosDB provider for EasyAppDev.Blazor.AutoComplete.AI semantic search. Provides multi-model database with DiskANN vector search for production-scale autocomplete scenarios with global distribution. |
|
|
EasyAppDev.Blazor.AutoComplete.AI.PostgreSql
PostgreSQL/pgvector provider for EasyAppDev.Blazor.AutoComplete.AI semantic search. Provides persistent vector storage with HNSW indexing for production-scale autocomplete scenarios. |
|
|
EasyAppDev.Blazor.AutoComplete.AI.Pinecone
Pinecone provider for EasyAppDev.Blazor.AutoComplete.AI semantic search. Provides serverless vector storage with high-performance similarity search for production-scale autocomplete scenarios. |
|
|
EasyAppDev.Blazor.AutoComplete.AI.AzureSearch
Azure AI Search provider for EasyAppDev.Blazor.AutoComplete.AI semantic search. Provides cloud-native vector search with hybrid (vector + keyword) search and semantic ranking support. |
|
|
EasyAppDev.Blazor.AutoComplete.AI.Qdrant
Qdrant provider for EasyAppDev.Blazor.AutoComplete.AI semantic search. Provides open-source vector storage with HNSW indexing for production-scale autocomplete scenarios. Supports self-hosted and cloud deployments. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version 1.0.7 - Added AOT-compatible JSON serialization overloads for all vector database providers. Fixed exception handling in GetItem to return default on deserialization failure. Added cancellation token propagation in Azure Search hybrid search. Improved robustness and trimming compatibility.