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

什么是向量数据库向量搜索?

向量数据库
专为高效存储与检索高维向量设计,支持语义搜索、推荐系统等AI场景,如文本/图像嵌入的相似性匹配。

ChromaDB
轻量级开源向量数据库,优势在于易用性(快速部署、简洁API)和小规模场景(本地开发、原型验证),常与AI模型(如OpenAI)配合实现RAG等应用。

下面是一个简单的例子

# 1. 生成嵌入(使用OpenAI)
from openai import OpenAI
import chromadb#client = OpenAI()
client = OpenAI(api_key="sk-xx",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")text1 = "一只柯基在蹦蹦跳跳"
embedding_corgi = client.embeddings.create(model="text-embedding-v3", input=text1).data[0].embedding
text2 = "一只小狗在奔跑"
embedding_dog = client.embeddings.create(model="text-embedding-v3", input=text2).data[0].embedding
text3 = "一只鸟在飞"
embedding_bird = client.embeddings.create(model="text-embedding-v3", input=text3).data[0].embedding# 2. 初始化 ChromaDB 本地客户端
chroma_client = chromadb.PersistentClient(path="./chroma_animals_data")
collection = chroma_client.get_or_create_collection("animals")
collection.add(ids=["corgi"], embeddings=[embedding_corgi], documents=[text1])
collection.add(ids=["dog"], embeddings=[embedding_dog], documents=[text2])
collection.add(ids=["bird"], embeddings=[embedding_bird], documents=[text3])# 3. 相似性检索
query = "蹦蹦跳跳的小狗"
query_embedding = client.embeddings.create(model="text-embedding-v3", input=query).data[0].embedding
results = collection.query(query_embeddings=[query_embedding], n_results=3)
print("匹配结果:", results["documents"])
第一步:生成文本向量 (Embedding)
text1 = "一只柯基在蹦蹦跳跳"
embedding_corgi = client.embeddings.create(model="text-embedding-v3", input=text1).data[0].embedding
text2 = "一只小狗在奔跑"
embedding_dog = client.embeddings.create(model="text-embedding-v3", input=text2).data[0].embedding
text3 = "一只鸟在飞"
embedding_bird = client.embeddings.create(model="text-embedding-v3", input=text3).data[0].embedding
第二步:存入向量数据库 (ChromaDB)
chroma_client = chromadb.PersistentClient(path="./chroma_animals_data")
collection = chroma_client.get_or_create_collection("animals")
collection.add(ids=["corgi", "dog", "bird"],embeddings=[embedding_corgi, embedding_dog, embedding_bird],documents=[text1, text2, text3]
)

第三步:执行语义搜索
query_embedding = client.embeddings.create(model="text-embedding-v3", input=query).data[0].embedding
results = collection.query(query_embeddings=[query_embedding], n_results=3)
print("匹配结果:", results["documents"])

第四步:输出

相关文章:

什么是向量数据库向量搜索?

向量数据库 专为高效存储与检索高维向量设计,支持语义搜索、推荐系统等AI场景,如文本/图像嵌入的相似性匹配。 ChromaDB 轻量级开源向量数据库,优势在于易用性(快速部署、简洁API)和小规模场景(本地开发、…...

【WRF-Urban】使用 LCZ 替换 WRF 运行中的 LUCC 数据

使用 LCZ 替换 WRF 运行中的 LUCC 数据 WRF-UCM中的城市类型LCZ的背景介绍完整步骤总结1. 获取 LCZ 数据2. 获取 WRF 运行所需的 LUCC 数据3. 使用 w2w 替换 WRF 的 LUCC 数据4. 运行 WRF 预处理(WPS & REAL)5. 运行 WRF 并优化城市参数化Q1:使用 LCZ 替换 WRF 运行中的…...

centos 7 安装apache服务

四步骤 解包 使用tar -zxvf 对.tar.gz 进行解压 使用tar -jxvf 对.tar.bz2 进行解压 rpm命令使用集合 rpm -qa 查询系统已安装的软件包 rpm -ql查看指定软件包存放的位置 rpm -qi查看指定软件包的属性 rpm -qf查看指定文件或目录是由哪个软件包所安装的 rpm -qpi查看指…...

2025各省市建筑产业和工程建设计划安排

1. 前言 十四届全国人大三次会议3月5日上午9时在人民大会堂开幕,国务院总理李强作政府工作报告。 《2025年政府工作报告》(以下简称 “报告”)作为统筹国家经济、战略布局与社会发展的蓝图,与建筑业息息相关,为今后的…...

广告营销,会被AI重构吗?

DeepSeek设计,即梦AI绘图,剪映成片。 DeepSeek的热度还在高开疯走。 用户对于各个场景下DS应用的探索也还在持续,各种DS的模式被挖掘出来,超级个体们开始给手下的大模型团队进行分工,实践出各种场景下最佳的排列组合方…...

01 音视频知识学习(视频)

图像基础概念 ◼像素:像素是一个图片的基本单位,pix是英语单词picture的简写,加上英 语单词“元素element”,就得到了“pixel”,简称px,所以“像素”有“图像元素” 之意。 ◼ 分辨率:是指图像…...

深入探究 Ryu REST API

Ryu 4.34 REST API 详细接口说明与示例 Ryu 4.34 的 REST API 提供了对 SDN 网络的核心管理功能,涵盖交换机、流表、端口、拓扑和 QoS 等操作。以下是详细的接口分类、功能说明及 Python 示例代码。 1. 交换机管理 1.1 获取所有交换机 DPID 端点: GET /stats/swi…...

不同AI生成的PHP版雪花算法

OpenAI <?php /*** Snowflake 雪花算法生成器* 生成的 64 位 ID 结构&#xff1a;* 1 位 保留位&#xff08;始终为0&#xff0c;防止负数&#xff09;* 41 位 时间戳&#xff08;毫秒级&#xff0c;当前时间减去自定义纪元&#xff09;* 5 位 数据中心ID* 5 …...

texstudio: 编辑器显示行号+给PDF增加行号

texstudio在编辑器部分增加行号&#xff1a; texstudio默认在编辑器部分不显示行号&#xff0c;如下图&#xff1a; 要实现以下的在编辑部分增加行号&#xff1a; 执行如下操作&#xff1a; 选项-->设置TexStudio-->编辑器-->显示行号-->所有行号选择好后&…...

强化学习基础-马尔可夫决策过程与贝尔曼方程

马尔可夫决策过程 在老虎机问题中&#xff0c;无论智能代理采取什么行动&#xff0c;之后要解决的问题都是一样的。也就是寻找最好的老虎机。但现实生活中的问题是不同的。例如&#xff0c;在围棋游戏中&#xff0c;智能代理落子后&#xff0c;棋盘上的棋子排列会发生变化&…...

爬虫的精准识别:基于 User-Agent 的正则实现

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

Scala的初步使用

目录 1. Scala简介2. Scala编写的Hello World2.1 pom.xml中依赖和插件的配置2.2 安装Scala2.12.172.3 安装code-server插件2.4 helloworld.scala2.5 helloworld2.scala2.6 java调用scala object 3. Scala调用Java3.1 例子13.2 例子2 参考 1. Scala简介 Scala是一门多范式的编程…...

【Json RPC框架】框架介绍与环境搭建(Ubuntu 22.04)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Json RPC框架 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ JSon RPC框架系列文章Json RPC框架_我们的五年的博…...

python读取word文档 | AI应用开发

python读取word文档 | AI应用开发 RAG中python读取word文档 RAG系统中构建知识库流程中重要的一个步骤是读取外挂的知识文档&#xff0c;为word是其中比较常见的文件。 另一个值得注意的是&#xff0c;RAG在读取文档后需要对文档进行分割&#xff0c;而良好的分割需要有一定结…...

20、组件懒加载

组件懒加载&#xff0c;也被称为异步组件加载&#xff0c;是一种在 Vue 项目中提升性能的重要技术手段。下面从概念、实现原理、使用场景、实现方式几个方面详细介绍&#xff1a; 概念 在传统的 Vue 项目里&#xff0c;当应用启动时&#xff0c;所有的组件代码都会被一次性加…...

打造智能钉钉机器人:借助智谱GLM-4-Flash实现高效智能回复(文末附源码)

文章目录 前言一、准备工作&#xff08;一&#xff09;钉钉机器人&#xff08;二&#xff09;智谱 GLM-4-Flash&#xff08;三&#xff09;内网穿透工具 cpolar&#xff08;四&#xff09;需要准备的工具和环境 二、钉钉机器人的创建与配置步骤1&#xff1a;创建钉钉机器人步骤…...

【故障处理系列--docker卷的挂载】

一位伙伴需求是把容器的目录映射到宿主机且容器目录的内容不被宿主机的空白目录覆盖。我的第一反应是-v 卷的映射&#xff0c;参数是对的&#xff0c;但是用法是错的 1、容器卷的挂载方式 容器把目录映射到宿主机创建volume卷&#xff0c;然后把容器的目录和volume卷绑定 区别…...

兴达易控modbusTCP转profinet接防撞雷达测试

modbusTCP转profinet接防撞雷达测试 随着工业自动化程度的不断提高&#xff0c;现场设备之间的通信需求日益增长。ModbusTCP作为一种广泛应用的工业通信协议&#xff0c;因其简单、可靠的特点&#xff0c;被广泛应用于各种自动化设备中。而Profinet作为工业以太网的一种&#…...

Acknowledgment.nack方法重试消费kafka消息异常

文章目录 问题示例异常 原因nack方法Acknowledgment接口实现类&#xff1a;ConsumerAcknowledgment实现类&#xff1a;ConsumerBatchAcknowledgment 解决方案1 批量消费指定index示例 2 单条消费示例 问题 使用BatchAcknowledgingMessageListener 批量消费Kafka消息&#xff0…...

通过动态获取后端数据判断输入的值打小

eval() 函数在 JavaScript 中是一个非常强大的函数 【1】计算简单公式 很多时候如果需要动态的提供计算的公式&#xff0c;需要写一大段的公式计算逻辑去兼容&#xff0c;可能耗费大量的开发成本。为了快速了解 eval 的用法&#xff0c;直接 ① 打开浏览器&#xff1b;② F1…...

乐维网管平台核心功能解析(一)——告警关联知识

在数字化转型浪潮中&#xff0c;企业IT系统规模呈指数级增长&#xff0c;传统的"人工经验"运维模式已难以应对海量告警处理需求。某银行数据中心曾统计&#xff0c;其日均告警量突破10万条&#xff0c;关键故障的平均定位时间长达3.5小时&#xff0c;直接导致年损失超…...

数据结构_单链表

今天我们要开启链表的学习 &#x1f58b;️&#x1f58b;️&#x1f58b;️ 学了顺序表我们可以知道&#xff1a; &#x1f388;链表其实就是争对顺序表的缺点来设计的&#xff0c;补足的就是顺序表的缺点 &#x1f388;链表在物理上是上一个节点存放的下一个节点的地址 链表 …...

b站视频下载工具软件怎么下载

自行配置FFMPEG环境 请优先选择批量下载&#xff0c;会自处理视频和音频文件。 如果要下载更高质量请登陆。 没有配置FFMPEG下载后会有报错提示&#xff0c;视频音频文件无法合并生成mp4文件 更新批量下载标题&#xff0c;只取视频原标题&#xff0c;B站反爬机制登陆后下载多了…...

如何实现pinia的持久化存储

在 Vue 3 项目中使用 Pinia 进行状态管理时&#xff0c;若要实现持久化存储&#xff0c;可借助 pinia-plugin-persistedstate 插件&#xff0c;该插件能让 Pinia 存储的状态在页面刷新或关闭后依然保留。下面为你详细介绍实现步骤&#xff1a; 1. 安装插件 首先&#xff0c;在…...

webpack介绍

entry与output 入口是 Webpack 开始构建依赖图的起点&#xff0c;Webpack 会从入口文件开始&#xff0c;递归地分析项目的依赖图。输出指定 Webpack 打包后的文件存放位置和文件名。 const path require("path");module.exports {entry: "./src/index.js&qu…...

使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图

以下是使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图&#xff1a; graph TDA[开始移植] --> B[代码兼容性检查]B --> C[检查系统调用差异\nfork/exec -> CreateProcess]B --> D[检查文件路径格式\n/ vs \\]B --> E[检查依赖库兼容性\nPOSIX vs …...

蓝桥杯嵌入式组第七届省赛题目解析+STM32G431RBT6实现源码

文章目录 1.题目解析1.1 分而治之&#xff0c;藕断丝连1.2 模块化思维导图1.3 模块解析1.3.1 KEY模块1.3.2 ADC模块1.3.3 IIC模块1.3.4 UART模块1.3.5 LCD模块1.3.6 LED模块1.3.7 TIM模块 2.源码3.第七届题目 前言&#xff1a;STM32G431RBT6实现嵌入式组第七届题目解析源码&…...

【spring bean的生命周期】

以下是使用 Mermaid 绘制的 Spring Bean 生命周期流程图&#xff1a; 流程说明 实例化&#xff1a;Spring 容器创建 Bean 的实例。属性赋值&#xff1a;Spring 为 Bean 的属性注入值&#xff08;依赖注入&#xff09;。BeanPostProcessor.postProcessBeforeInitialization&…...

数据类设计_图片类设计之3_半规则图类设计(前端架构基础)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇讨论半规则图类型的设计 半规则图的定义 什么是半规则图?笔者看见了一些似乎规则又不是太规则的图形,例如带圆角的矩阵,在页面上找一个圆角框 为了…...

【leetcode hot 100 138】随机链表的复制

解决一&#xff1a;回溯 哈希表 本题要求我们对一个特殊的链表进行深拷贝。如果是普通链表&#xff0c;我们可以直接按照遍历的顺序创建链表节点。而本题中因为随机指针的存在&#xff0c;当我们拷贝节点时&#xff0c;「当前节点的随机指针指向的节点」可能还没创建&#xf…...

如何安全处置旧设备?

每年&#xff0c;数百万台旧设备因老化、故障或被新产品取代而被丢弃&#xff0c;这些设备上存储的数据可能带来安全风险。 如果设备没有被正确删除数据&#xff0c;这些数据往往仍可被恢复。因此&#xff0c;安全处置旧设备至关重要。 旧设备可能包含的敏感数据 旧设备中可能…...

Windows 万兴恢复专家 Wondershare Recoverit-v13.5.7.9-[电脑数据恢复工具]

Windows 万兴恢复专家Wondershare_Recoverit 链接&#xff1a;https://pan.xunlei.com/s/VOL3z608vzAj_IYTvH-F1q7kA1?pwdiu89# 1. 打开Setup.exe进行安装&#xff0c;安装完不要打开软件&#xff0c;记住安装目录 2. 将"Crack"文件夹内的所有文件复制到安装目录 …...

eLection: 1靶场渗透测试

eLection: 1 来自 <eLection: 1 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.196 3&#xff0c;对靶机进行端口服…...

类与对象(下)

1 . 再谈构造函数 1.1构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class B { public:B(int a0){_a a;} private:int _a; };虽然上述构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xf…...

数字人源头技术搭建模型--v10追踪推理逻辑

数字人源头技术搭建模型--v10追踪推理逻辑 #数字人# #数字人技术源头saas开发# 数字人源头技术搭建模型V10的追踪推理逻辑通常涉及以下几个关键方面&#xff1a; 数据收集与预处理 - 多模态数据采集&#xff1a;收集图像、音频等多模态数据。例如通过摄像头采集人物的面部…...

基于Asp.net的高校迎新管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

商业智能BI的未来,如何看待AI+BI这种模式?

昨天在和一位朋友线上聊天的时候&#xff0c;提了一个问题&#xff0c;你是如何看待AI&#xff08;人工智能&#xff09;BI&#xff08;商业智能&#xff09;这种模式和方向的&#xff0c;我大概来说一下我个人的看法。 以我在商业智能BI项目中接触到的行业和企业&#xff0c;…...

C++ 编程指南27 - 始终将 mutex 与它所保护的数据一起定义,并尽可能使用 synchronized_value<T>

一&#xff1a;概述 在多线程编程中&#xff0c;互斥锁&#xff08;std::mutex&#xff09;的作用是保护共享数据的访问。但如果 mutex 和它保护的数据分开定义&#xff0c;可能会导致以下问题&#xff1a; 锁的使用不明显&#xff1a;程序员可能会忘记获取 mutex 就访问数据&…...

选择 DotNetBrowser 还是 EO.WebBrowser

您是否正在为 .NET 应用寻找 Web 视图控件&#xff1f;如果是的话&#xff0c;那您真是太幸运了&#xff01;.NET 生态系统提供了丰富的选择。既有开源和专有的免费 Web 视图控件&#xff0c;也有许多企业广泛选择的商业 Web 视图控件。 在这篇博客文章中&#xff0c;我们将对…...

ngin配置内网服务-具体案例【天地图】

ngin配置内网服务-具体案例【天地图】 描述需求整体网络架构1. 政务内网服务器&#xff08;10.10.10.70&#xff09;2. 网闸&#xff08;10.10.10.240:8088&#xff09;3. 跳板机&#xff08;10.10.20.70:9109&#xff09;4. 天地图服务 具体步骤第一步&#xff1a;配置跳板机&…...

【网络】poll 与epoll(原理、工作模式LT、ET)

文章目录 1. poll2. epoll3. epoll原理4. epoll工作模式4.1 水平模式LT4.2 边缘模式ET 在前面用的select中&#xff0c;它的使用方式非常麻烦&#xff0c;而且能支持的文件描诉符太少了。 下面来介绍一下更加方便、高效的方式: 1. poll poll函数接口&#xff1a; include <…...

DeepIn Wps 字体缺失问题

系统缺失字体 Symbol 、Wingdings 、Wingdings2、Wingdings3、MT—extra 字体问题 问了下DeepSeek 在应用商店安装或者在windows 里面找 装了一个GB-18030 还是不行 在windows里面复制了缺失的字体 将字体复制到DeepIn 的字体目录&#xff08;Ubuntu 应该也是这个目录&am…...

Spring有哪些缺点?

大家好&#xff0c;我是锋哥。今天分享关于【Spring有哪些缺点?】面试题。希望对大家有帮助&#xff1b; Spring有哪些缺点? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring是一个非常流行的Java框架&#xff0c;提供了丰富的功能和灵活的配置选项&#xf…...

使用Dockerfile打包java项目生成镜像部署到Linux_java项目打docker镜像的dockerfile

比起容器、镜像来说&#xff0c;Dockerfile 非常普通&#xff0c;它就是一个纯文本&#xff0c;里面记录了一系列的构建指令&#xff0c;比如选择基础镜像、拷贝文件、运行脚本等等&#xff0c;每个指令都会生成一个 Layer&#xff0c;而 Docker 顺序执行这个文件里的所有步骤&…...

蓝桥杯刷题周计划(第二周)

目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目题解分析 题目九题目代码题解分析 题目十题目代码题解分析 题目十一题目代码题解分…...

03 | fastgo 项目规范及目录结构介绍

提示&#xff1a; 所有体系课见专栏&#xff1a;Go 项目开发极速入门实战课&#xff1b;欢迎加入我的训练营&#xff1a;云原生AI实战营&#xff0c;一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营。 为了让你更好的学习本课程。本节课&#xff0c;我来简单介绍下 fastgo…...

K8S学习之基础二十三:k8s的持久化存储之nfs

K8S持久化存储之nfs ​ 在 Kubernetes (k8s) 中使用 NFS&#xff08;Network File System&#xff09;作为存储解决方案是一种常见的方式&#xff0c;特别是在需要共享存储的场景中。以下是关于如何在 Kubernetes 中使用 NFS 存储的详细说明&#xff1a; 1. 准备 NFS 服务器 …...

CTF代码学习日记 Python

os模块 在Python中&#xff0c;os是一个内置的标准模块&#xff0c;主要用于与操作系统进行交互&#xff0c;提供了许多操作文件、目录、进程等的功能。 例如&#xff1a; os.mkdir()用于创建新目录os.rmdir()用于删除空目录os.listdir()可以列出指定目录下的所有文件和目录…...

存储优化(protobuf与mmkv)

存储优化&#xff08;protobuf与mmkv&#xff09; 在Android应用开发中&#xff0c;数据存储是一个基础且关键的环节。随着应用功能的日益复杂&#xff0c;数据量的增加&#xff0c;传统的存储方式如SharedPreferences、SQLite等在性能上的局限性逐渐显现。本文将深入探讨两种…...

MTK Android12 添加GMS后,报“设备未经过play保护认证“问题

文章目录 问题解决 问题 在MTK平台的Android12机柜上面&#xff0c;客户要求安装GMS。安装后&#xff0c;打开发现报"设备未经过play保护认证"问题&#xff0c;无法使用。解决 路径&#xff1a;/build/make/tools/buildinfo.sh diff --git a/build/make/tools/bui…...