| File: Program.cs | Web Access |
| Project: src\playground\Qdrant\Qdrant.ApiService\Qdrant.ApiService.csproj (Qdrant.ApiService) |
using Qdrant.Client; using Qdrant.Client.Grpc; var builder = WebApplication.CreateBuilder(args); // Add service defaults & Aspire client integrations. builder.AddServiceDefaults(); // Add services to the container. builder.Services.AddProblemDetails(); builder.AddQdrantClient("qdrant"); var app = builder.Build(); // Configure the HTTP request pipeline. app.UseExceptionHandler(); app.MapGet("/create", async (QdrantClient client, ILogger<Program> logger) => { var collections = await client.ListCollectionsAsync(); if (collections.Any(x => x.Contains("movie_collection"))) { await client.DeleteCollectionAsync("movie_collection"); } await client.CreateCollectionAsync("movie_collection", new VectorParams { Size = 2, Distance = Distance.Cosine }); var collectionInfo = await client.GetCollectionInfoAsync("movie_collection"); logger.LogInformation(collectionInfo.ToString()); // generate some vectors var data = new[] { new PointStruct { Id = 1, Vectors = new [] {0.10022575f, -0.23998135f}, Payload = { ["title"] = "The Lion King" } }, new PointStruct { Id = 2, Vectors = new [] {0.10327095f, 0.2563685f}, Payload = { ["title"] = "Inception" } }, new PointStruct { Id = 3, Vectors = new [] {0.095857024f, -0.201278f}, Payload = { ["title"] = "Toy Story" } }, new PointStruct { Id = 4, Vectors = new [] {0.106827796f, 0.21676421f}, Payload = { ["title"] = "Pulp Function" } }, new PointStruct { Id = 5, Vectors = new [] {0.09568083f, -0.21177962f}, Payload = { ["title"] = "Shrek" } }, }; var updateResult = await client.UpsertAsync("movie_collection", data); return updateResult.Status; }); app.MapGet("/search", async (QdrantClient client) => { var results = await client.SearchAsync("movie_collection", new[] { 0.12217915f, -0.034832448f }, limit: 3); return results.Select(titles => titles.Payload["title"].StringValue); }); app.MapDefaultEndpoints(); app.Run();