sqlite-vec 简单试用

sqlite-vec 简单试用

sqlite-vec 官方实际有一些文档,同时github 也有不少示例,以下就是一个简单使用(集成python)

创建虚拟表

  • 参考命令

import sqlite3
import sqlite_vec
from sqlite_vec import serialize_float32
import numpy as np
import uuiddb = sqlite3.connect("demo3.db", isolation_level=None)
db.enable_load_extension(True)
sqlite_vec.load(db)
db.enable_load_extension(False)
dimension = 2
collection_name = "vec_documents"
# 注意我们可以使用给INTEGER 类型的做为主键,但是支持的类型有一些限制,比如text 是支持的,当然元数据列的定义也是类似的,对于vecro 也可以定义distance_metric 方便通过knn 检索处理
result = db.execute(f"create virtual table if not exists {collection_name} using vec0 (id text PRIMARY KEY, vector float[{dimension}] distance_metric=cosine, user_id text, type text, version text)")
  • 数据写入

注意存储是blob 我们可以通过serialize_float32 方法转换

for i in range(20,30):if  is_first:db.execute("insert into vec_documents (id, vector, user_id, type, version) values (?,?, ?, ?, ?)", (str(uuid.uuid4()), first_embedding, f"user_{i}", "text", "v1"))print(first_embedding)is_first = Falseelse:embedding = np.random.rand(2).astype(np.float32)print(embedding)db.execute("insert into vec_documents (id, vector, user_id, type, version) values (?,?, ?, ?, ?)", (str(uuid.uuid4()), serialize_float32(embedding), f"user_{i}", "text", "v1"))
  • 查询knn模式的 我们定义了distance_metric=cosine 这样,通过match 就可以返回余弦相似的数值了
search_result = db.execute("select id, user_id,vector, ROUND(vec_distance_cosine(vector,?), 7) distance from vec_documents where vector match ? and type = ? and version = ?  and k = 10 order by distance", (first_embedding,first_embedding,"text","v1")).fetchall()

说明

sqlite-vec 不少特性在官方文档都是有说明的,仔细阅读文档还是比较重要的,否则简单看官方一些示例可能会觉得不是很清晰(尤其是knn 匹配的metrics 问题,我们使用cosine的会多一些)

参考资料

https://github.com/asg017/sqlite-vec/tree/main

https://alexgarcia.xyz/sqlite-vec/python.html

https://alexgarcia.xyz/sqlite-vec/features/knn.html

https://alexgarcia.xyz/sqlite-vec/features/vec0.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 系统cshrc 资料

linux 系统cshrc 资料pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…

建设积分商城网站多少钱要交个人所得税

磁力猫磁力链接是一种特殊的下载链接,磁力猫磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远…

做搞机网站贵州最好的网站建设推广公司哪家好

写在前面的话AMF(Action Message Format)是一种二进制序列化格式,之前主要是Flash应用程序在使用这种格式。近期,Code White发现有多个Java AMF库中存在目前,漏洞相关信息已上报至美国CERT(详情请参考美国CERT VU#307983)概述目前&#xff0c…

冷库 东莞网站建设化妆品品牌策划方案

一、前言:二、什么是跨域问题?三、 为什么会出现跨域问题?四、什么情况下会出现跨域?五、如何解决跨域问题? 5.1 使用CrossOrigin注解5.2 使用WebMvcConfigurer5.3 使用Filter六、代码示例 前端代码:后端后…

详细介绍:Oracle与Kingbase深度兼容体验:从连接配置到性能优化全解析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

胶州专业建站免费制作论坛网站

synchronized重要!重要!重要!重要的事情说三遍,一定要记下来哦。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同…

[LeetCode] 1518. Water Bottles

There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle. The operation of drinking a full water …

2025 年西安品质楼盘住宅推荐排行榜权威发布,精选优质楼盘推荐

近年来,西安房地产市场持续发展,各类楼盘数量不断增多,但市场上楼盘品质参差不齐的问题也逐渐凸显。部分楼盘存在区位优势不明显、交通不便、周边配套不完善等情况,还有一些楼盘在建筑质量、户型设计、社区环境等方…

Python国庆祝福 - 指南

Python国庆祝福 - 指南2025-10-01 08:02 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

某商业银行项目管理建设演进报告 - 指南

某商业银行项目管理建设演进报告 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

建设网站的费用明细wordpress与微信连接

人永远是第一位的。 Scrum团队里有一个Scrum master、一个Product owner和若干个Developer。人数大概在10人左右,甚至更少。千万别在Scrum团队再搞什么小组,scrum团队就是最原子的团队了。我见过有些不专业的12人的scrum团队里,还安插了几个…

网站域名在哪买asp网站配置

Electron应用自动更新实现及打包部署全攻略 Electron自动更新原理配置更新服务器打包与发布更新全攻略实战步骤部署与测试部署更新测试更新流程错误处理与调试 高级特性与优化用户体验与反馈安全与隐私保护维护与持续集成性能优化结语 在现代跨平台桌面应用开发领域中&#xff…

怎么在建设厅网站报名wordpress 没有保存

1.DRAM技术简介 DRAM(Dynamic Random Access Memory,动态随机存取存储器)是一种用于计算机和其他电子设备中的主存储器类型,其主要由存储单元阵列构成,而每一个存储单元由一个电容器和一个晶体管组成,如图…

题解:P14073 [GESP202509 五级] 数字选取

题解:P14073 [GESP202509 五级] 数字选取 题目传送门 题意 给定 \(1,2,3,4,\cdots,n\) 一共 \(n\) 个整数,从这些数中选取一些数字,使得选取的整数中任意两个不同的整数均互质。 数据规模与约定 对于所有测试点,保…

电子商务网站建设需求概述成都网站建设138

背景:项目使用mybatis分页插件不生效,以及多租户使用时读取配置异常 分页插件不细述,网上很多方法试了还是不生效,最后修改到当前版本解决,直接上代码 多租户插件使用遇到的问题: 最开始在MyTenantLineH…

检测网站是否为WordPress怎样建移动网站

33、一致性哈希算法分区 一、背景二、介绍三、步骤1、算法构建一致性哈希环2、Redis服务器IP节点映射3、key落到服务器的落键规则 四、优点1、一致性哈希算法的容错性2、一致性哈希算法的扩展性 五、缺点1、一致性哈希算法的数据倾斜问题2、拓展 六、总结 一、背景 一致性哈希…

晋中市两学一做网站服务器如何做网站

继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电了设备中,是最重要的控制元件之一。继电器实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。…

2025西安新房住宅推荐排行榜发布,房屋品质、周边配套、交通便利性多维度选择指南!

当下西安新房市场呈现出房源丰富但品质参差不齐的态势,购房者在选择时常常面临诸多难题。一方面,市场上既有定位高端的豪宅项目,也有面向刚需群体的普通住宅,各类项目宣传信息繁杂,让购房者难以辨别真伪;另一方面…

猎头公司应坚持的原则有seo网站优化代码

表的优化1.定长与变长分离如 int,char(4),time核心且常用字段,建成定长,放在一张表;而varchar,text,blob这种变长字段适合单放一张表,用主键与核心表关联。2.常用字段和不常用字段要分离3.在 1 对多需要关联统计的字段上&#xff…

建筑设计公司经营范围seo优化专员

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 数据类型的长度(所占的字节数),与机器字长及编译器都有关系。 所以,int、long int、short int等数据类型的长度可能随编译器而异。 几条铁定的原则&#xff08…