新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/18 8:26:46来源:尧图网络
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

相关资讯

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

较早相关资讯

最新相关资讯

LifeOS Science 技能实战:问题求解循环如何从 5 分钟排障扛到 2 周 A/B 实验 2026/9/18 17:30:02

LifeOS Science 技能实战:问题求解循环如何从 5 分钟排障扛到 2 周 A/B 实验

LifeOS Science 技能实战:问题求解循环如何从 5 分钟排障扛到 2 周 A/B 实验 【免费下载链接】LifeOS ⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work. 项目地址: https://gitcode.com/GitHub_Trending/p…

阅读更多 →
AIBrix vLLM Semantic Router 实战指南:基于 Envoy ext_proc 的多模型语义路由部署与配置 2026/9/18 17:30:02

AIBrix vLLM Semantic Router 实战指南:基于 Envoy ext_proc 的多模型语义路由部署与配置

AIBrix vLLM Semantic Router 实战指南:基于 Envoy ext_proc 的多模型语义路由部署与配置 【免费下载链接】aibrix Cost-efficient and pluggable Infrastructure components for GenAI inference 项目地址: https://gitcode.com/GitHub_Trending/ai/aibrix …

阅读更多 →
Cloudflare Workers 兼容性标志 `fetch_refuses_unknown_protocols`:未知协议 URL 从静默降级到显式拒绝的完整解析 2026/9/18 17:30:02

Cloudflare Workers 兼容性标志 `fetch_refuses_unknown_protocols`:未知协议 URL 从静默降级到显式拒绝的完整解析

Cloudflare Workers 兼容性标志 fetch_refuses_unknown_protocols:未知协议 URL 从静默降级到显式拒绝的完整解析 【免费下载链接】cloudflare-docs Cloudflare’s documentation 项目地址: https://gitcode.com/GitHub_Trending/cl/cloudflare-docs 本篇文章…

阅读更多 →
Security-101 課程深度解析:雲端共擔責任模型(Shared Responsibility Model)——理解 CSP 與客戶之間的安全控制責任邊界 2026/9/18 17:30:02

Security-101 課程深度解析:雲端共擔責任模型(Shared Responsibility Model)——理解 CSP 與客戶之間的安全控制責任邊界

Security-101 課程深度解析:雲端共擔責任模型(Shared Responsibility Model)——理解 CSP 與客戶之間的安全控制責任邊界 【免费下载链接】Security-101 8 Lessons, Kick-start Your Cybersecurity Learning. 项目地址: https://gitcode.co…

阅读更多 →
Cursor与IntelliJ IDEA双端协同开发:从环境配置到AI编程工作流实战 2026/9/18 17:30:02

Cursor与IntelliJ IDEA双端协同开发:从环境配置到AI编程工作流实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Java八股文核心考点精讲:从基础到多线程的面试通关指南 2026/9/18 17:27:01

Java八股文核心考点精讲:从基础到多线程的面试通关指南

简介:这是一份面向Java开发者的经典面试题总结PDF资料,内容覆盖Java基础语法、面向对象、异常处理、多线程、集合框架与网络编程等核心模块,既适合准备校招求职者系统梳理知识,也适合在职开发人员快速查漏补缺。资源为单个PDF文件…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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