在Sqlite中检索增强发电
这个分为两部分的系列使用SQLite进行机器学习探索。 上一篇文章讨论了SQLite在生产就绪的Web应用程序中的越来越多的作用。本文着重于使用sqlite实施检索功能。
>>用于使用生成AI的自定义Web应用程序,请访问losangelesaiapps.com >
代码可用>在此处。。
传统的抹布实施通常涉及:
- >在抹布上搜索教程。
- 选择一个流行的框架(Langchain,LlamainDex)。
- 选择一个云向量数据库(Pinecone,Weaviate)。 >
- 集成这些组件。
- 有效,这种方法可能过于复杂,尤其是对于初学者而言。 本文使用SQLITE和
>
sqlite-vec
这种方法消除了对云矢量数据库和笨重框架的需求。
Sqlite的强度在于其可扩展性。 与Python库类似的扩展名添加了C中写入的功能。一个很好的示例是全文搜索(FTS)扩展。 添加矢量搜索功能,从而使语义理解超出关键字匹配。 寻找“马”可能会返回“马术”或“小马”。
使用虚拟表,提供:sqlite-vec
>sqlite-vec
>自定义数据源:
- 灵活功能:支持专业的索引和复杂的数据类型。
- >无缝集成:与标准sqlite查询语法集成。
- 后端逻辑是在单独的模块中实现的。 使用: >创建虚拟表
- >指定模块(在此,
CREATE VIRTUAL TABLE my_table USING my_extension_module();
my_extension_module()
vec0
代码(sqlite-vec
repo link
文件作为示例数据(主要是物理相关)。 是sqlite数据库文件。
,- ,
- )。创建一个虚拟环境并运行
requirements.txt
sqlite-vec
>openai
openai api键:python-dotenv
获取openai api键。pip install -r requirements.txt
-
> 加载扩展名:python代码加载
sqlite-vec
>扩展名并创建一个虚拟表:
CREATE VIRTUAL TABLE my_table USING my_extension_module();
documents
表存储嵌入式(embedding
),fileNames(file_name
)和content(content
)。
表示辅助字段。
- >>嵌入和插入:
.txt
代码通过 文件迭代,使用OpenAI API生成嵌入式,然后将它们插入数据库:
db.enable_load_extension(True) sqlite_vec.load(db) db.enable_load_extension(False) db.execute(''' CREATE VIRTUAL TABLE documents USING vec0( embedding float[1536], +file_name TEXT, +content TEXT ) ''')
- rag查询:
# ... (OpenAI embedding function) ... for file_name in os.listdir("data"): # ... (Open file, get content, get embedding) ... db.execute( 'INSERT INTO documents (embedding, file_name, content) VALUES (?, ?, ?)', (serialize_float32(embedding), file_name, content) ) db.commit()
>
结论
>大大简化了抹布。 它消除了对复杂框架和云服务的需求,使其具有成本效益且易于迭代。 虽然缩放可能最终需要一个更健壮的数据库,但sqlite-vec
>为较小的项目提供了引人注目的解决方案。 扩展名支持多种编程语言。sqlite-vec
以上是在Sqlite中检索增强发电的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

介绍 Openai已根据备受期待的“草莓”建筑发布了其新模型。这种称为O1的创新模型增强了推理能力,使其可以通过问题进行思考

介绍 想象一下,穿过美术馆,周围是生动的绘画和雕塑。现在,如果您可以向每一部分提出一个问题并获得有意义的答案,该怎么办?您可能会问:“您在讲什么故事?

SQL的Alter表语句:动态地将列添加到数据库 在数据管理中,SQL的适应性至关重要。 需要即时调整数据库结构吗? Alter表语句是您的解决方案。本指南的详细信息添加了Colu

斯坦福大学以人为本人工智能研究所发布的《2025年人工智能指数报告》对正在进行的人工智能革命进行了很好的概述。让我们用四个简单的概念来解读它:认知(了解正在发生的事情)、欣赏(看到好处)、接纳(面对挑战)和责任(弄清我们的责任)。 认知:人工智能无处不在,并且发展迅速 我们需要敏锐地意识到人工智能发展和传播的速度有多快。人工智能系统正在不断改进,在数学和复杂思维测试中取得了优异的成绩,而就在一年前,它们还在这些测试中惨败。想象一下,人工智能解决复杂的编码问题或研究生水平的科学问题——自2023年
