当前位置: 首页 > news >正文

向量数据库与嵌入模型

参考:https://www.cnblogs.com/rude3knife/p/chroma_tutorial.html

向量数据库其实最早在传统的人工智能和机器学习场景中就有所应用。在大模型兴起后,由于目前大模型的token数限制,很多开发者倾向于将数据量庞大的知识、新闻、文献、语料等先通过嵌入(embedding)算法转变为向量数据,然后存储在Chroma等向量数据库中。当用户在大模型输入问题后,将问题本身也embedding,转化为向量,在向量数据库中查找与之最匹配的相关知识,组成大模型的上下文,将其输入给大模型,最终返回大模型处理后的文本给用户,这种方式不仅降低大模型的计算量,提高响应速度,也降低成本,并避免了大模型的tokens限制,是一种简单高效的处理手段。此外,向量数据库还在大模型记忆存储等领域发挥其不可替代的作用。

由于大模型的火热,现在市面上的向量数据库众多,主流的向量数据库对比如下所示:

向量数据库URLGitHub StarLanguage
chroma https://github.com/chroma-core/chroma 7.4K Python
milvus https://github.com/milvus-io/milvus 21.5K Go/Python/C++
pinecone https://www.pinecone.io/
qdrant https://github.com/qdrant/qdrant 11.8K Rust
typesense https://github.com/typesense/typesense 12.9K C++
weaviate https://github.com/weaviate/weaviate 6.9K Go

 

采用Chroma向量数据库

pip install chromadb

智谱清言提供了嵌入模型Embedding API:embedding-3

import os
from dotenv import load_dotenv, find_dotenv
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders.pdf import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter_ = load_dotenv(find_dotenv())# 读取原始文档
# raw_documents_sanguo = TextLoader('/Users/rude3knife/Desktop/三国演义.txt', encoding='utf-16').load()
# raw_documents_xiyou = TextLoader('/Users/rude3knife/Desktop/西游记.txt', encoding='utf-16').load()# # 分割文档
# text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=0)
# documents_sanguo = text_splitter.split_documents(raw_documents_sanguo)
# documents_xiyou = text_splitter.split_documents(raw_documents_xiyou)
# documents = documents_sanguo + documents_xiyou

loaders = [PyPDFLoader("D:/Users/yhexie/Downloads/三国演义.pdf"), # Duplicate documents on purpose - messy dataPyPDFLoader("D:/Users/yhexie/Downloads/西游记.pdf"),]
docs = []
for loader in loaders:docs.extend(loader.load())
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=150)
splits = text_splitter.split_documents(docs)
documents= splits
print("documents nums:", documents.__len__())# 生成向量(embedding)
embeddings = OpenAIEmbeddings(model="embedding-3",openai_api_key=os.getenv("ZHIPUAI_API_KEY"),openai_api_base="https://open.bigmodel.cn/api/paas/v4/",chunk_size=50,  # 智谱 embedding 单次最多64条
)db = Chroma.from_documents(documents, embedding=embeddings)# 检索
query = "美猴王是谁?"
docs = db.similarity_search(query, k=5)# 打印结果
for doc in docs:print("===")print("metadata:", doc.metadata)print("page_content:", doc.page_content)

 

 

http://www.jsqmd.com/news/592740/

相关文章:

  • 2026年全国心理咨询师考证培训正规机构综合实力测评报告 - 企业推荐官【官方】
  • 保姆级避坑指南:用MoveIt Setup Assistant配置UR3+AG95机械臂时,我踩过的三个编译与控制器大坑
  • 从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
  • 动态创建对象执行方法
  • 智能命名与文件管理:猫抓扩展的自动化命名规则实践指南
  • League-Toolkit:革新性英雄联盟全方位辅助工具集
  • 【5大突破】WarcraftHelper:让经典RTS重获新生的跨系统优化方案
  • 2026年心理咨询师行业合规发展深度报告:报考条件与正规培训机构全维度测评 - 企业推荐官【官方】
  • 瑞萨RH850F1KMS1串口DMA实战:用CS+和Smart Configurator解放CPU,实测吞吐量翻倍
  • 5分钟终极指南:如何让加密音乐文件重获自由
  • VMware ESXi 6.0实战:如何正确添加第二块磁盘作为数据存储(附RAID配置避坑指南)
  • BERTopic全栈应用指南:从认知颠覆到商业价值落地
  • NFL十年追踪数据与机器学习创新
  • 37、【Agent】【OpenCode】本地代理分析(一)
  • 2026年家庭教育指导师报考指南:行业合规测评、官方授权机构筛选与避坑标准全解析 - 企业推荐官【官方】
  • 用快马AI快速原型一个网页版PS基础工具:从描述到可运行代码
  • 打造个人游戏串流中心:Sunshine开源方案全攻略
  • [技术突破]:Qwen-Image-Edit-Rapid-AIO如何重构图像编辑效率边界?
  • 告别混乱:用Alternative Mod Launcher重塑XCOM 2模组管理体验
  • 5步攻克AI到PSD无损转换:设计师必备的矢量分层工作流指南
  • 38、【Agent】【OpenCode】本地代理分析(二)
  • 实测梦幻动漫魔法工坊:用LoRA调整画风,轻松打造不同风格的动漫作品
  • 浪琴官方售后服务中心新址实地考察报告(2026年4月最新地址电话) - 亨得利官方服务中心
  • 避坑指南:淘晶驰串口屏文件浏览器控件中文乱码?用UTF8字库5分钟搞定!
  • 亨得利官方售后服务中心新址实地考察报告(2026年4月最新地址电话) - 亨得利官方服务中心
  • MogFace-large部署案例:嵌入式AI盒子(Jetson Orin)上轻量运行方案
  • ODrive自定义控制算法开发:从架构思维到高级应用
  • MyKeymap应用专属键盘映射配置指南
  • 面向人形机器人的弹热冷却技术:高效热管理解决方案
  • VoxCPM-1.5-WEBUI作品集:高音质语音合成效果大赏