From 73de875de89daaaec4cdd835eced7db6e55a216f Mon Sep 17 00:00:00 2001 From: Mimisss Date: Fri, 2 Aug 2024 18:37:18 +0300 Subject: [PATCH] Correctly pass default or user-defined value of similarity threshold to LocalEmbedder for Smart ComboBox --- samples/ExampleMvcRazorPagesApp/Program.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/samples/ExampleMvcRazorPagesApp/Program.cs b/samples/ExampleMvcRazorPagesApp/Program.cs index e52ff3b..93a8baa 100644 --- a/samples/ExampleMvcRazorPagesApp/Program.cs +++ b/samples/ExampleMvcRazorPagesApp/Program.cs @@ -1,6 +1,9 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Globalization; +using Microsoft.Extensions.Primitives; +using SmartComponents.Inference; using SmartComponents.Inference.OpenAI; using SmartComponents.LocalEmbeddings; @@ -44,6 +47,19 @@ ["Groceries", "Utilities", "Rent", "Mortgage", "Car Payment", "Car Insurance", "Health Insurance", "Life Insurance", "Home Insurance", "Gas", "Public Transportation", "Dining Out", "Entertainment", "Travel", "Clothing", "Electronics", "Home Improvement", "Gifts", "Charity", "Education", "Childcare", "Pet Care", "Other"]); app.MapSmartComboBox("/api/suggestions/accounting-categories", - request => embedder.FindClosest(request.Query, expenseCategories)); + request => + { + StringValues minSimilarity; + request.HttpContext.Request.Form.TryGetValue("similarityThreshold", out minSimilarity); + + var query = new SimilarityQuery() + { + + SearchText = request.Query.SearchText, + MaxResults = request.Query.MaxResults, + MinSimilarity = Convert.ToSingle(minSimilarity.ToString(), new CultureInfo("en-US")) + }; + return embedder.FindClosest(query, expenseCategories); + }); app.Run();