本地大模型编程实战(03)用本地矢量数据库实现语义检索(2)

上一篇文章: 本地大模型编程实战(02)语义检索(1) 详细介绍了如何使用 langchain 实现语义检索,为了演示方便,使用的是 langchain 提供的内存数据库。 在实际工作中,更多的使用场景是将矢量化的数据物理存储下来,在查询的时候在从存储介质中读取矢量数据进行查询,不会每次使用矢量数据时都必须想做嵌入。 本文描述了如何使用 Chroma 对csv数据进行矢量化,并且将矢量存储在硬盘中,未来查询矢量数据时,直接从硬盘中读取矢量数据进行查询。 另外,如果数据量大一些,矢量化数据是很花时间的,我们将使用进度条显示嵌入csv的进度。 ...

一月 26, 2025 · 1 分钟 · 火云

本地大模型编程实战(02)语义检索(1)

我们在百度、必应、谷歌等搜索引擎中使用的检索都是基于字符串的:用户输入字符串后,搜索引擎先对搜索内容进行分词,然后在已经进行了倒排索引的巨大数据库中找出最符合用户要求的结果。 语义检索与其主要的区别是:它根据文本的真正含义进行搜索,其基本思路是将待检索的内容都转变成矢量(这个过程也叫做嵌入),转化矢量的基本原则是:语义相近的内容距离更近、相似性更高。 当用户输入检索内容时,也是先把检索内容变成矢量,然后去矢量数据库中找到最相似的文档。这样检索出来的结果并不依据字面的意思,而是依据语义的相似度。 本文描述了如何使用 langchain 和 大语言模型 以及 矢量数据库 完成pdf内容的语义检索。 在对内容进行矢量化时使用了 nomic-embed-text,这个模型个头小,英文嵌入效果不错。 后面还将涉及到以下内容: 文档和文档加载器 文本分割器 嵌入 向量存储和检索器 ...

一月 25, 2025 · 5 分钟 · 火云

本地大模型编程实战(01)实现翻译功能

大语言模型的主要功能是预测:输入一些字符串,它预测输出另一些字符串,这个特点使它擅长翻译。 本文描述了如何使用大语言模型(LLM)实现基本的翻译功能,此翻译功能的特点是:无需指定源语言,只需要指定目标语言就可以进行翻译了。 ...

一月 24, 2025 · 2 分钟 · 火云

用图形验证码增强用户认证安全性[python+vuetify]

这里通过代码讲述了使用python生成以及校验图片验证码,增强用户认证安全性的过程。 客户端则使用 vue3 和 vuetify3 框架使用后台API生成的图片验证码。 ...

一月 5, 2025 · 3 分钟 · 火云

[python]实现可以自动清除过期条目的缓存

由于有缓存图片验证码的需要,所以我找了一些开源的缓存想直接使用,结果要么太老旧,要么太复杂,要么和 fastAPI 整合有问题,所以才想到自己写一个简单的,够用就好。 本文讲述了如何实现一个简单的内存缓存,他可以把过期的键值自动清除,在缓存验证码等场合应该很好用。 ...

一月 4, 2025 · 1 分钟 · 火云

基于OAuth2.0和JWT规范实现安全易用的用户认证

遵循OAuth2.0和JWT规范实现用户认证,不但具有很好的实用性,还能提供很不错的安全保障。 本文结合实用的代码讲述了基于OAuth2.0和JWT,在前后端分离的系统中,实现用户使用方便而又安全可靠的用户认证的基本思路。 ...

一月 1, 2025 · 4 分钟 · 火云

用vuetify3实现待办事项管理

这是使用vuetify3可以开发的一个待办事项管理实例。 它主要包含事项概览、我的项目、我的团队。其中事项概览中以列表的方式列出所有的事项,在这里可以添加事项、对事项进行排序。 vuetify官网的组件部分有大量控件,我想绝大部分应用使用这些控件拼凑就足够酷了。 一个快捷的方式是:到此官网找控件,把代码拷贝出来,修改一下直接使用。 请注意: 事项数据是存储在google的firebase中的,如果访问不便,可以使用代码中也提供的本地数据。 ...

十二月 19, 2024 · 5 分钟 · 火云

用vuetify3实现经典的登录页面

这是使用vuetify3可以开发的一个登录实例。 它包含了一个经典的包含系统消息、登录按钮、更换主题按钮的工具栏(toolbar)、轮播(carousel)和登录表单控件。 vuetify官网的组件部分有大量控件,我想绝大部分应用使用这些控件拼凑就足够酷了。 ...

十二月 17, 2024 · 2 分钟 · 火云

用vuetify3做一个简单的相册

这是使用vuetify3可以开发的一个简单的相册,通过菜单可以控制相册以彩色或者黑白方式显示。 在这个例子中,我们主要使用 抽屉式导航(Navigation drawers) 做导航,使用栅格(Grids)显示相册图片。 在整个过程中,我们可以直接使用vuetify3的各种控件,几乎不用写css。 ...

十二月 15, 2024 · 2 分钟 · 火云

用最快捷的方法创建vuetify3项目

有很多办法可以基于vue3创建vuetify3项目,本文介绍我认为最快捷的创建方式。 vuetify3是成熟的vue3框架: 严格遵循 Google 的 Material Design 规范,提供一致的设计语言和视觉体验,适合需要现代、简约风格的项目。 提供了超过 80 个功能强大的 UI 组件,例如按钮、表格、对话框、菜单等,能够满足大多数应用的开发需求,减少了第三方依赖。 完全重构以支持 Vue 3 的 Composition API 和其他新特性,与 Vue 3 的生态系统无缝集成。 提供动态主题和深色模式支持,允许开发者轻松自定义颜色、字体和其他主题元素,满足品牌化需求。 ...

十二月 13, 2024 · 1 分钟 · 火云