MyScale (opens new window)在最新版本的集成SQL向量数据库中引入了EmbedText函数 (opens new window)。这个强大的功能将SQL查询的效率与最先进的AI驱动文本嵌入技术结合在一起,使您可以使用熟悉的SQL语法进行精确的文本匹配和高效的语义相似性计算。
通过完全集成Jina Embeddings v2 (opens new window)模型,MyScale EmbedText允许用户在使用标准SQL语法处理长度高达8K的文本时利用Jina AI的能力,这使得我们能够理解和处理比以往更长的文本。无论是处理复杂的多语言数据还是创建高级AI应用程序,开发人员可以在开发过程的每个阶段立即利用MyScale中的Jina AI顶级嵌入模型。
# 什么是MyScale
MyScale是一个云原生SQL向量数据库,使熟悉SQL的开发人员能够构建生产级的生成式AI应用程序。MyScale基于ClickHouse (opens new window)构建,将向量搜索和存储与可扩展的关系数据库集成,提供了对结构化和非结构化数据的高效存储和处理,并简化了复杂的数据库工程,同时确保AI应用程序的最高可靠性和性能。
MyScale的EmbedText函数利用熟悉的SQL语法简化了文本嵌入向量的生成,使用户能够为其项目采用流行的AI模型。使用EmbedText的自动批处理,开发人员可以在处理大量数据时大大提高性能,而无需依赖外部工具或进行任何复杂的编程。
# 什么是Jina Embeddings
Jina Embeddings v2是全球首个、迄今为止唯一的支持8192个标记输入大小的开源文本嵌入模型。它有三个版本:仅英文 (opens new window)、中英双语 (opens new window)和德英双语 (opens new window)。
特点:
- 行业领先的性能,可与OpenAI的闭源Ada 2模型媲美。
- 支持超过8千个标记的文本,突破了长文本向量表示的障碍,使开发人员能够在多个尺度上完全表示文本的语义。
- 多语言支持,一个模型在一个嵌入空间中表示中文和英文,另一个模型在一个嵌入空间中表示德文和英文,更多语言即将推出。Jina Embeddings使用专门针对特定语言的模型进行跨语言应用,而不是使用大而低效的AI模型,这些模型在大量不同语言上的性能不平等且不清晰。
- 在LlamaIndex (opens new window)中排名世界上最好的用于RAG(检索增强生成)应用的嵌入模型之一。
# 在MyScale中使用Jina Embeddings v2
开发人员可以在MyScale中使用EmbedText函数与Jina Embeddings一起进行两种操作:数据插入和基于嵌入的查询。本节将详细介绍这两种操作。
# 创建一个简化的函数
一个实用的策略是声明一个SQL用户定义函数(UDF),用于创建文本嵌入并包含相关的模型名称、提供者和API密钥,以便不必重复这些信息,并在需要时轻松更改。
下面的SQL语句声明了用于此目的的函数JinaAIEmbedText
。请在适当的位置插入您自己的API密钥。
CREATE FUNCTION JinaAIEmbedText ON CLUSTER '{cluster}'
AS (x) -> EmbedText(x, 'Jina', '', 'YOUR_API_KEY', '{"model":"jina-embeddings-v2-base-en"}')
现在,要为文本获取嵌入,只需调用JinaAIEmbedText
:
SELECT JinaAIEmbedText('YOUR_TEXT')
# 使用Jina Embeddings优化向量搜索
一旦创建了简化的函数,您就可以在MyScale中使用Jina Embeddings优化向量搜索。使用嵌入进行查询遵循标准的SQL方法。使用JinaAIEmbedText
非常简单:
SELECT id, distance(vector_column_name, JinaAIEmbedText('YOUR_QUERY_TEXT')) AS dist
FROM table_name ORDER BY dist LIMIT 10
这将填充一个表格,其中包含与您的查询最匹配的十个记录,根据它们的嵌入向量排序。
# 数据插入
您可以创建一个将文本数据转换为向量的SQL表,使用上面的JinaAIEmbedText
函数。例如:
CREATE TABLE jina_embedding
(
id UInt32,
paragraph String,
vector Array(Float32) DEFAULT JinaAIEmbedText(paragraph),
CONSTRAINT check_length CHECK length(vector) = 768
)
ENGINE = MergeTree
ORDER BY id
然后,将数据插入到此表中以自动生成嵌入:
INSERT INTO jina_embedding (id, paragraph)
VALUES (1, 'YOUR_TEXT_1'), (2, 'YOUR_TEXT_2')
# 对AI开发人员的好处
MyScale集成Jina Embeddings v2模型为开发人员提供了一个强大的框架,用于构建基于数据库的生成式AI应用程序,节省了将新应用程序推向市场所需的时间、精力和金钱。
它的具体好处包括:
- 降低计算成本:MyScale在与竞争对手相比,提供了卓越的数据库性能,并显著降低了内存消耗,使其成为支持AI应用程序的高性价比选择。Jina Embeddings通过为开发人员提供不同的模型大小和嵌入向量大小的选择,为他们管理计算和存储成本提供了工具。
- 增强灵活性:MyScale与Jina Embeddings之间的协同作用为开发人员提供了增强的灵活性,特别是在处理长文档和大型文档集等具有挑战性的应用场景中。
- 更准确的搜索:MyScale通过其独特的MSTG算法 (opens new window)实现了强大的元数据过滤搜索,而Jina Embeddings提供了更精确的文本语义表示,提高了信息检索的准确性。这导致更明智的决策和更优越的应用性能,特别是在提高RAG应用的准确性方面。这两种技术的结合将搜索提升到新的高度。
将MyScale与Jina Embeddings结合使用,特别适用于增强RAG的聊天机器人等实际应用。通过Jina Embeddings增强的MyScale可以作为聊天机器人的单一数据源,确保数据安全性、一致性和完整性。MyScale还通过存储对记录的引用来减少数据冗余,提高可访问性,并为您提供高级访问控制。
Jina Embeddings v2处理长文本的能力使其非常适合管理对话系统的输入。使用Jina Embeddings制作的聊天机器人对对话上下文有更深入的理解,大大提高了在长对话和复杂场景中的性能。
# 展望未来
MyScale与Jina Embeddings v2的深度集成使开发人员能够将AI引入其项目中。这包括创建智能客服机器人、开发更准确的跨语言搜索应用程序以及优化法律和商业文件分析和管理流程。开发人员可以通过MyScale和Jina Embeddings探索更广泛的应用场景,并构建更具创新性和实用性的AI应用程序,为用户提供更大的价值。
如果您对使用MyScale和Jina AI集成构建AI应用程序有任何想法,欢迎在MyScale的Discord (opens new window)或Twitter (opens new window)上与我们分享。