新闻详情

新闻详情

首页 / 资讯中心 / 详情

Android开发转AI Agent:第11天——Chroma向量数据库,3行替代手写10行检索

发布时间:2026/9/10 11:53:35来源:尧图网络
Android开发转AI Agent:第11天——Chroma向量数据库,3行替代手写10行检索
作者一位Android开发工程师 | 2026年6月29日系列第10天手写了完整RAG今天用专业工具替代手写部分前言第9/10天我手写了向量检索——for 循环 余弦相似度 排序。这在知识库只有 5 条文档时没问题但如果知识库有 5000 条手写循环就太慢了。今天学 Chroma——一个专门做向量存储和检索的数据库。对比手写 vs Chroma手写版第10天8行q_vecmodel.encode(question)results[]fordocindocs:vecmodel.encode(doc)simnp.dot(vec,q_vec)/(norm(vec)*norm(q_vec))results.append((sim,doc))results.sort(reverseTrue)top3[docfor_,docinresults[:3]]Chroma 版3行collectionclient.create_collection(namemy_docs)collection.add(documentsdocs,idsids)resultscollection.query(query_texts[question],n_results3)Chroma 替你做了三件事向量化 存储 检索。完整代码importchromadbfromsentence_transformersimportSentenceTransformer# 自定义 Embedding 函数用本地中文模型classLocalEmbedding(EmbeddingFunction):def__init__(self):self.modelSentenceTransformer(shibing624/text2vec-base-chinese)def__call__(self,input):returnself.model.encode(input).tolist()# Chroma 核心 4 行clientchromadb.Client()collectionclient.create_collection(namemy_docs,embedding_functionLocalEmbedding())collection.add(documentsdocs,ids[fdoc_{i}foriinrange(len(docs))])resultscollection.query(query_texts[协程怎么管理生命周期],n_results3)踩坑中文模型选择一开始用all-MiniLM-L6-v2结果协程怎么管理生命周期检索到的第一条是 Room 数据库相关——不是生命周期那条。原因all-MiniLM-L6-v2对中文语义理解不够精确。换成专为中文优化的shibing624/text2vec-base-chinese后检索准确了——生命周期那条排到了第一。教训做中文 RAG 一定要用中文 Embedding 模型。Chroma 核心 4 行需要记住的clientchromadb.Client()# 1. 创建客户端collectionclient.create_collection(namexxx)# 2. 建集合类似 CREATE TABLEcollection.add(documentsdocs,idsids)# 3. 添加文档resultscollection.query(query_texts[q],n_results3)# 4. 查询今天的一句话总结Chroma 就是把第9天手写的 for 循环余弦相似度排序封装成了collection.query()一行。就像用 Room 数据库替代手写 SQLite——专业工具让代码更简洁。下一篇预告第12天Function Calling——让 LLM 不再只是说而是能做。Agent 最关键的能力。本系列记录一位Android开发者转行AI Agent的完整学习过程欢迎关注交流。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

CPython 修复 Context 迭代器内存泄漏:内部 HAMT 迭代器纳入垃圾回收追踪 2026/9/10 11:51:39

CPython 修复 Context 迭代器内存泄漏:内部 HAMT 迭代器纳入垃圾回收追踪

CPython 修复 Context 迭代器内存泄漏:内部 HAMT 迭代器纳入垃圾回收追踪 【免费下载链接】cpython The Python programming language 项目地址: https://gitcode.com/GitHub_Trending/cp/cpython 本文解析 CPython 上游 Misc/NEWS.d/next/Core_and_Builtins…

阅读更多 →
Metabase 嵌入式分析 SDK 自定义 Dashboard 卡片菜单项:CustomDashboardCardMenuItem 类型深入解析 2026/9/10 11:51:39

Metabase 嵌入式分析 SDK 自定义 Dashboard 卡片菜单项:CustomDashboardCardMenuItem 类型深入解析

Metabase 嵌入式分析 SDK 自定义 Dashboard 卡片菜单项:CustomDashboardCardMenuItem 类型深入解析 【免费下载链接】metabase The easy-to-use open source Business Intelligence and Embedded Analytics tool that lets everyone work with data :bar_chart: 项…

阅读更多 →
Generative AI 初学者课程第 16 课:开源模型(Open Source Models)全面解析与选型实战 2026/9/10 11:51:39

Generative AI 初学者课程第 16 课:开源模型(Open Source Models)全面解析与选型实战

Generative AI 初学者课程第 16 课:开源模型(Open Source Models)全面解析与选型实战 【免费下载链接】generative-ai-for-beginners 21 Lessons, Get Started Building with Generative AI 项目地址: https://gitcode.com/GitHub_Trendin…

阅读更多 →
Tabby Agent 版本演进全解析:从 LSP 语言服务器到上下文增强的代码补全引擎 2026/9/10 11:51:39

Tabby Agent 版本演进全解析:从 LSP 语言服务器到上下文增强的代码补全引擎

Tabby Agent 版本演进全解析:从 LSP 语言服务器到上下文增强的代码补全引擎 【免费下载链接】tabby Self-hosted AI coding assistant 项目地址: https://gitcode.com/GitHub_Trending/tab/tabby Tabby Agent 是 Tabby 自托管 AI 编程助手的通用客户端代理&a…

阅读更多 →
Sim 进程内缓存实践:用 lru-cache、fetchMethod 与 coalesceLocally 构建正确的 TTL 缓存 2026/9/10 11:51:39

Sim 进程内缓存实践:用 lru-cache、fetchMethod 与 coalesceLocally 构建正确的 TTL 缓存

Sim 进程内缓存实践:用 lru-cache、fetchMethod 与 coalesceLocally 构建正确的 TTL 缓存 【免费下载链接】sim Sim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000 builders. 项目地址: https://gitco…

阅读更多 →
超帧(Hyperframes)技术详解:从原理到PyTorch实现与调参 2026/9/10 11:48:38

超帧(Hyperframes)技术详解:从原理到PyTorch实现与调参

超帧(Hyperframes)这个词我最早是在一个视频动作识别项目里真正用起来的。当时模型在单张静态图上表现还行,一放到真实监控视频里就频繁出错——挥手、弯腰、快速刷卡这类动作在单帧里就是一团模糊,模型全靠猜。后来我尝试把连续多…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞