(VectorAI已弃用,不再维护。我们建议使用Relevance AI来进行向量搜索,请访问https://tryrelevance.com)
Vector AI是一个旨在尽可能快速和轻松地构建生产级向量应用程序的框架。创建、存储、操作、搜索和分析向量以及JSON文档,以支持神经搜索、语义搜索、个性化推荐等应用。
- 访问我们的网站并注册获取API密钥:https://getvectorai.com
- Python文档:https://vector-ai.github.io/vectorai
- REST API文档:https://api.vctr.ai/documentation
- 加入我们的Discord:https://discord.gg/CbwUxyD
- 如需更温和的介绍来比较我们的功能,请阅读https://getvectorai.com/production-ready-search-in-5-minutes/
特性
- 多媒体数据向量化:图像转向量、音频转向量等(任何数据都可以通过机器学习转化为向量)
- 面向文档的存储:将向量与文档一起存储,无需为向量的元数据进行数据库查询。
- 向量相似度搜索:通过向量相似度搜索实现向量和丰富多媒体的搜索。这是许多流行AI用例的基础,如反向图像搜索、推荐、个性化等。
- 混合搜索:在某些情况下,向量搜索不如传统搜索有效,例如搜索SKU。Vector AI允许您将向量搜索与传统搜索的所有功能(如过滤、模糊搜索、关键词匹配)结合,创建更强大的搜索。
- 多模型加权搜索:我们的向量搜索高度可定制,您可以使用多个模型的多个向量进行搜索,并给予它们不同的权重。
- 向量运算:通过内置的向量操作实现灵活搜索。例如:平均值、中位数、求和等。
- 聚合:提供您所期望的所有传统聚合。例如:按平均值分组、数据透视表等。
- 聚类:通过将向量和数据分配到桶中来解释它们,并根据您提供的数据获取这些不同桶的统计信息。
- 向量分析:使用开箱即用的实用向量分析,更好地理解您的向量,让您更深入地了解向量的质量。
快速术语
- 模型/编码器(又称嵌入器)~ 将数据转换为向量,例如Word2Vec将单词转换为向量
- 向量相似度搜索(又称最近邻搜索、距离搜索)
- 集合(又称索引、表)~ 一个集合由多个文档组成
- 文档(又称Json、项目、字典、行)~ 一个文档可以包含向量、文本和视频/图像/音频的链接。
快速入门
通过pip安装!兼容任何操作系统。
pip install vectorai
如果由于持续改进需要使用每夜版本,可以使用以下命令安装:
pip install vectorai-nightly
注意:虽然每夜版本仍会通过自动化测试,但可能不稳定。
查看我们的快速入门笔记本,了解如何在5分钟内制作文本/图像/音频搜索引擎:quickstart.ipynb
from vectorai import ViClient, request_api_key
api_key = request_api_key(username=<用户名>, email=<邮箱>, description=<描述>, referral_code="github_referred")
vi_client = ViClient(username=用户名, api_key=api_key)
from vectorai.models.deployed import ViText2Vec
text_encoder = ViText2Vec(用户名, api_key)
documents = [
{
'_id': 0,
'color': 'red'
},
{
'_id': 1,
'color': 'blue'
}
]
# 插入数据
vi_client.insert_documents('test-collection', documents, models={'color': text_encoder.encode})
# 搜索数据
vi_client.search('test-collection', text_encoder.encode('maroon'), 'color_vector_', page_size=2)
# 获取推荐
vi_client.search_by_id('test-collection', '1', 'color_vector_', page_size=2)
访问强大的向量分析
Vector AI提供强大的可视化功能,让您能够尽可能轻松地分析向量 - 只需一行代码。
vi_client.plot_dimensionality_reduced_vectors(documents,
point_label='title',
dim_reduction_field='_dr_ivis',
cluster_field='centroid_title', cluster_label='centroid_title')
vi_client.plot_2d_cosine_similarity(
documents,
documents[0:2],
vector_fields=['use_vector_'],
label='name',
anchor_document=documents[0]
)
轻松比较向量及其在文档上的搜索性能!
为什么选择Vector AI而不是其他最近邻实现?
- 生产就绪:我们的API完全托管,可扩展到每天支持数亿次搜索。即使是数百万次搜索,通过边缘缓存、GPU利用和软件优化,它也能保持极快的速度,因此您无需担心随着用例扩展而扩展基础设施。
- 简单易用,快速上手:我们的核心设计原则之一是专注于让人们尽快开始使用Vector AI,同时确保仍有大量功能和定制选项。
- 更深入了解您的向量及其属性:我们的库设计不仅允许人们获取最近邻,还可以在数据添加到索引后立即进行实验、分析、解释和改进。
- 轻松存储向量数据:Vector AI的面向文档特性允许用户尽可能地标记、过滤搜索和理解他们的向量。
- 实时访问数据:Vector AI数据可实时访问,数据插入后立即可搜索。无需等待数小时来构建索引。
- 框架无关:我们绝不会在Vector AI上强制使用特定框架。只要您的文档是JSON可序列化的,您就可以使用您选择的框架!
使用VectorHub模型
VectorHub是Vector AI的主要模型仓库。VectorHub的模型都是用scikit-learn接口构建的,并且都有Vector AI集成的示例。如果您想尝试新的现成模型,我们建议您试试VectorHub模型 - 它们都经过Colab测试,只需3行代码就能使用!
文档的模式规则(自带向量和ID)
确保任何向量字段的名称中包含"_vector_",任何ID字段的名称为"_id"。
例如:
example_item = {
'_id': 'James',
'skills_vector_': [0.123, 0.456, 0.789, 0.987, 0.654, 0.321]
}
以下将不会被识别为ID列或向量列。
example_item = {
'name_id': 'James',
'skillsvector_': [0.123, 0.456, 0.789, 0.987, 0.654, 0.321]
}
这与VectorAI API有何不同?
Python SDK旨在为Python爱好者提供一种用尽可能少的代码行解锁VectorAI功能的方法。它通过我们开源的自动化工具暴露了API的所有元素,是我们的数据科学家和工程师在开发人员使用API请求之前进行快速原型设计时与VectorAI引擎交互的主要方式。
注意:VectorAI SDK构建在开发服务器上,有时可能会导致错误。然而,这对于确保用户能够根据需要访问最前沿的功能很重要。如果您遇到此类问题,我们建议您在不紧急的情况下创建GitHub Issue,但如果是更紧急的查询,请随时在Discord频道上联系我们。
用Vector AI构建产品
创建多语言AI时尚助手:https://fashionfiesta.me | 博客
请与我们分享您使用Vector AI创建的任何博客或网站!