技术速递|使用 Chroma 构建 .NET AI 应用
创始人
2025-03-12 20:42:04
0

Chroma 网站

https://trychroma.com/

开始在您的应用程序中使用 Chroma

在本示例中,我们将使用 ChromaDB.Client包连接到 Chroma 数据库并使用向量搜索来搜索电影。

最简单的启动方式是本地使用 Chroma Docker 映像。您也可以在 Azure 中部署实例

注意:ChromaDB.Client是一个由社区支持的开源库。

ChromaDB.Client

https://www.nuget.org/packages/ChromaDB.Client

Chroma Docker 映像

https://docs.trychroma.com/production/containers/docker

在 Azure 中部署实例

https://docs.trychroma.com/production/cloud-providers/azure

ChromaDB.Client

https://www.nuget.org/packages/ChromaDB.Client

开源

https://github.com/ssone95/ChromaDB.Client

连接数据库

  1. 创建 C# 控制台应用程序

  2. 安装 ChromaDB.Client NuGet 包

  3. 创建带有配置选项的 ChromaClient

usingChromaDB.Client;

varconfigOptions = newChromaConfigurationOptions(uri: "http://localhost:8000/api/v1/");usingvarhttpClient = newHttpClient;varclient = newChromaClient(configOptions, httpClient);

使用托管版本的 Chroma 时,请将 uri替换为您的托管端点。

创建集合

现在您有了客户端,请创建一个集合来存储电影数据。

varcollection = awaitclient.GetOrCreateCollection("movies");

要对该集合执行操作,您需要创建一个集合客户端。

varcollectionClient = newChromaCollectionClient(collection, configOptions, httpClient);

向集合中添加数据

创建集合后,就可以向其中添加数据了。我们存储的数据包括:

  1. 电影 ID

  2. 用于表示电影描述的嵌入向量。

  3. 包含电影标题的元数据

ID

标题

嵌入向量

电影描述

1

狮子王

[0.10022575, -0.23998135]

《狮子王》是一部经典的迪士尼动画电影,讲述了一只名叫辛巴的小狮子,在父亲不幸去世后踏上旅程,最终夺回荣耀大地王位的故事。

2

盗梦空间

[0.10327095, 0.2563685]

《盗梦空间》是一部由克里斯托弗·诺兰执导的烧脑科幻电影。影片讲述了多姆·柯布的故事,他是一名擅长进入他人梦境窃取机密的高手。然而,他接到了一个终极任务,需要在目标人物的潜意识中植入一个想法。

3

玩具总动员

[0.095857024, -0.201278]

《玩具总动员》是皮克斯制作的一部开创性动画电影。影片讲述了当主人安迪不在时,玩具们的秘密生活。胡迪和巴斯光年是这部感人故事的主角。

4

低俗小说

[0.106827796, 0.21676421]

《低俗小说》是昆汀·塔伦蒂诺执导的犯罪电影。它通过非线性叙事,将黑帮分子、职业杀手和其他丰富多彩的角色故事交织在一起,充满黑色幽默和暴力元素。

5

怪物史瑞克

[0.09568083, -0.21177962]

《怪物史瑞克》是一部动画喜剧电影,讲述了怪物史瑞克为了夺回自己的沼泽地,踏上旅程去解救被困在巨龙守护的高塔中的菲欧娜公主的冒险故事。

List<string> movieIds = ["1", "2", "3", "4", "5"];

Listfloat>> deionEmbeddings = [

new[] { 0.10022575f, -0.23998135f},new[] { 0.10327095f, 0.2563685f},new[] { 0.095857024f, -0.201278f},new[] { 0.106827796f, 0.21676421f},new[] { 0.09568083f, -0.21177962f},];

Liststring,object>> metadata = [new Dictionary { ["Title"] = "The Lion King"},newDictionary<string, object> { ["Title"] = "Inception"},newDictionary<string, object> { ["Title"] = "Toy Story"},newDictionary<string, object> { ["Title"] = "Pulp Fiction"},newDictionary<string, object> { ["Title"] = "Shrek"},];

awaitcollectionClient.Add(movieIds, deionEmbeddings, metadata);

搜索电影(使用向量搜索)

现在您的数据已存储在数据库中,您可以查询它。在本例中,我们使用向量搜索。

文本

嵌入向量

适合家庭观看的电影

[0.12217915, -0.034832448]

Listfloat>> queryEmbedding = [new([0.12217915f, -0.034832448f])];

varqueryResult = awaitcollectionClient.Query(queryEmbeddings: queryEmbedding,nResults: 2,include: ChromaQueryInclude.Metadatas | ChromaQueryInclude.Distances);

foreach(varresult inqueryResult){foreach(varitem inresult){Console.WriteLine($"Title: {(string)item.Metadata["Title"] ?? string.Empty}{(item.Distance)}");}}

结果应类似于以下输出。

Title: Toy Story 0.028396977

Title: Shrek 0.032012463

观看直播

观看 Jiří Činčura 的 2月26日 .NET 数据社区会议,了解有关如何使用 Chroma 和新 C# SDK 的更多信息。

2月26日 .NET 数据社区会议

https://www.youtube.com/watch?v=Nj0vYJ9HVGk

总结

这一最新功能增强了 .NET 中不断发展的 AI 生态系统。它为更简单地实现现有的语义内核连接器以及在您的 .NET 应用程序中无缝集成 Microsoft.Extensions.VectorDataMicrosoft.Extensions.AI等基础组件铺平了道路。

我们要感谢 @ssone95为该项目所做的工作和贡献。我们很高兴能继续与社区合作建立合作伙伴关系,使 .NET 开发人员能够构建 AI 应用程序。

要了解如何开始使用 Chroma 等数据库构建 AI 应用程序,请查看 .NET AI 文档

现在就试用 Chroma C# SDK 并提供反馈

Microsoft.Extensions.VectorData

https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-vector-data/

Microsoft.Extensions.AI

https://devblogs.microsoft.com/dotnet/introducing-microsoft-extensions-ai-preview/

@ssone95

https://github.com/ssone95

.NET AI 文档

https://learn.microsoft.com/dotnet/ai/quickstarts/quickstart-ai-chat-with-data?tabs=azd&pivots=openai

提供反馈

https://github.com/ssone95/ChromaDB.Client

微信

相关内容

国泰海通:维持海外AI算力...
国泰海通维持海外AI 算力及应用产业链“增持”评级。其研报指出,O...
2026-06-01 00:54:38
德勤:聚焦AI驱动产业变革...
上证报中国证券网讯(记者 汪友若)5月27日,“2026德勤中国高...
2026-05-28 21:01:39
AI业务商业化进程加速,可...
5月27日,快手科技发布2026年第一季度业绩。财报显示,2026...
2026-05-27 21:23:57
数字气味让《AI上黄鹤楼》...
“哇!好香啊!”5月25日晚,人民网AI魔术戏剧《AI上黄鹤楼》的...
2026-05-26 14:57:06
人工智能产业日报(05.2...
公司动态 华为“韬(τ)定律”引爆热点,寒武纪市值突破900...
2026-05-26 14:53:47

热门资讯

2024云栖大会|阿里云升级无... 北京商报讯(记者魏蔚)9月20日,阿里云无影AI云电脑在2024云栖大会上展出,该版本基于最新的终端...
MWC2025荣耀多款AI技术... 人民财讯3月6日电,2025世界移动通信大会(MWC 2025)上,荣耀MagicBook Pro ...
原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
摩尔线程发布AI算力笔记本MT... 钛媒体App 12月20日消息,摩尔线程创始人、董事长兼CEO张建中在摩尔线程首届MUSA开发者大会...
摩尔线程AI生图摩笔马良全新升... 快科技8月7日消息,作为国产GPU的杰出代表,摩尔线程在当下火爆的AIGC浪潮中也推出了自己的软硬一...
微软 Azure AI 语音服... IT之家 8 月 23 日消息,微软Azure AI 语音服务允许开发者构建多语言生成式 AI 语音...
谷歌打磨 Gemini AI ... IT之家 8 月 31 日消息,谷歌于 8 月 27 日发布博文,宣布旗下 Gemini AI 支持...
青云QingCloud Kub... 日前,青云科技宣布开源 Thanos 的企业级发行版 Whizard,为企业带来真正高可用、可扩展、...
Macos系统上一款强大的卸载... App Cleaner mac中文版是Mac os系统上一款强大 的mac卸载工具,以帮助您完全卸载...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...