龙岩市网站建设_网站建设公司_建站流程_seo优化
2026/1/15 17:34:29 网站建设 项目流程

向量数据库的出现,导致传统的搜索方式正在发生颠覆性的变化。现在,你通过浏览器搜索“舒适的阅读角”,不再只返回包含“舒适”和“角落”的文字结果,而是可以把跟“舒适的阅读角”相关的图片输出来了。

这种方法侧重于语义搜索,即搜索内容的含义,而非依赖僵化的关键词匹配。随着非结构化数据(图片、文本、视频)的爆炸式增长,传统数据库在满足AI需求方面正变得越来越不切实际,语义搜索的这种转变至关重要。

这正是Weaviate脱颖而出,成为向量数据库领域领导者的原因。凭借其独特的功能和能力,Weaviate 正在改变公司获取基于AI的洞察和数据的方式。

在本文中,我们将通过代码示例和实际应用,探讨为什么 Weaviate 是一款颠覆性的产品。

什么是 Weaviate?

Weaviate是一个开源的向量数据库,专门设计用于存储和处理高维数据,例如表示为向量的文本、图像或视频。Weaviate 使企业能够轻松进行语义搜索、创建推荐引擎和构建AI模型。

Weaviate 不依赖于根据每行中存储的列来检索精确数据的传统数据库,而是专注于智能数据检索。它使用基于机器学习的向量嵌入来根据数据点的语义发现它们之间的关系,而不是搜索精确的数据匹配。

Weaviate 提供了一种简单的方法来构建运行AI模型的应用程序,这些模型需要快速高效地处理大量数据以构建模型。在 Weaviate 中存储和检索向量嵌入使其成为处理非结构化数据的公司的理想选择。

核心架构

Weaviate 的核心是围绕处理高维数据和利用高效、可扩展的向量搜索的原则构建的。

让我们看看其架构背后的构建块和原则:

  • AI原生和模块化: Weaviate 从一开始就设计用于集成机器学习模型,为其开箱即用地生成各种数据类型(向量)嵌入提供了“一等”支持。设计的模块化带来了许多可能性,确保如果您想在 Weaviate 之上进行构建或添加任何自定义功能,或连接/调用外部系统,您都可以实现。
  • 分布式系统: 该数据库设计为可以水平扩展。Weaviate 是分布式且无主节点(leaderless)的,这意味着没有单点故障。跨节点的高可用性冗余意味着,在发生故障时,数据将从多个连接节点进行复制和生成。它最终一致,因此适用于云原生和其他环境。
  • 基于图: Weaviate 模型是一个基于图的数据模型。对象(向量)通过其关系连接,从而可以轻松存储和查询具有复杂关系的数据,这在推荐系统等应用程序中非常重要。
  • 向量存储: Weaviate 旨在将您的数据存储为向量(对象的数值表示)。这非常适合AI驱动的搜索、推荐引擎以及所有其他人工智能/机器学习相关的用例。

实战指南

无论您是构建语义搜索引擎、聊天机器人还是推荐系统,本快速入门都将向您展示如何连接到 Weaviate、摄取向量化内容并提供智能搜索功能,最终通过检索增强生成(RAG)与 OpenAI 模型生成上下文相关的答案。

先决条件

确保安装了最新版本的Python。如果未安装,请使用以下命令安装:

sudo apt updatesudo apt install python3 python3-pip -y

创建并激活虚拟环境:

python3 -m venv weaviate-envsource weaviate-env/bin/activate

执行上述代码后,您的 shell 提示符现在将以您的新环境为前缀,即weaviate-env,表示您的环境已激活。

步骤1:部署 Weaviate

部署 Weaviate 有两种方式:

方式1:使用 Weaviate 云服务

部署 Weaviate 的一种方法是使用其云服务:

  1. 首先,访问 https://console.weaviate.cloud/
  2. 然后,注册并通过选择 OpenAI 模块来创建集群。
  3. 记下您的WEAVIATE_URL(类似于https://xyz.weaviate.network)和WEAVIATE_API_KEY

方式2:使用 Docker Compose 在本地运行

创建docker-compose.yml文件:

version: '3.4'services:weaviate: image:semitechnologies/weaviate:latest ports: -"8080:8080" environment: QUERY_DEFAULTS_LIMIT:25 AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED:'true' PERSISTENCE_DATA_PATH:'./data' DEFAULT_VECTORIZER_MODULE:'text2vec-openai' ENABLE_MODULES:'text2vec-openai,generative-openai' OPENAI_APIKEY:'your-openai-key-here'

此配置使用 OpenAI 模块和匿名访问来配置 Weaviate 容器。

使用以下命令启动它:

docker-compose up -d

这将在分离模式下启动 Weaviate 服务器(在后台运行)。

步骤2:安装 Python 依赖项

要安装程序所需的所有依赖项,请在操作系统的命令行中运行以下命令:

pip install weaviate-client openai

这将安装 Weaviate Python 客户端和 OpenAI 库。

步骤3:设置环境变量

export WEAVIATE_URL="https://<your-instance>.weaviate.network"export WEAVIATE_API_KEY="<your-weaviate-key>"export OPENAI_API_KEY="<your-openai-key>"

对于本地部署,不需要WEAVIATE_API_KEY(无需身份验证)。

步骤4:连接到 Weaviate

import osimport weaviatefrom weaviate.classes.init import Authclient = weaviate.connect_to_weaviate_cloud( cluster_url=os.getenv("WEAVIATE_URL"), auth_credentials=Auth.api_key(os.getenv("WEAVIATE_API_KEY")), headers={"X-OpenAI-Api-Key": os.getenv("OPENAI_API_KEY")})assert client.is_ready(), " Weaviate not ready"print(" Connected to Weaviate")

前面的代码使用凭据连接您的 Weaviate 云实例,并确认服务器已启动且可访问。

对于本地实例,请使用:

client = weaviate.Client("http://localhost:8080")

这会连接到本地 Weaviate 实例。

步骤5:定义Schema

schema = { "classes": [ { "class": "Question", "description": "QA dataset", "properties": [ {"name": "question", "dataType": ["text"]}, {"name": "answer", "dataType": ["text"]}, {"name": "category", "dataType": ["string"]} ], "vectorizer": "text2vec-openai", "generative": {"module": "generative-openai"} } ]}

定义了一个名为Question的 Schema,具有属性和基于 OpenAI 的向量和生成模块。

client.schema.delete_all() # Clear previous schema (if any)client.schema.create(schema)print(" Schema defined")

输出:

Schema defined

上述语句将 Schema 上传到 Weaviate 并确认成功。

步骤6:批量插入示例数据

data = [ {"question":"Only mammal in Proboscidea order?","answer":"Elephant","category":"ANIMALS"}, {"question":"Organ that stores glycogen?","answer":"Liver","category":"SCIENCE"}]

创建了一个小型问答数据集:

with client.batch as batch: batch.batch_size = 20 for obj in data: batch.add_data_object(obj, "Question")

以批量模式插入数据以提高效率:

print(f"Indexed {len(data)} items")

输出:

Indexed 2 items

确认索引了多少项。

步骤7:使用nearText进行语义搜索

res = ( client.query.get("Question", ["question", "answer", "_additional {certainty}"]) .with_near_text({"concepts": ["largest elephant"], "certainty": 0.7}) .with_limit(2) .do())

使用文本向量对“最大的大象”等概念进行语义搜索。只返回确定性 ≥ 0.7 且最多 2 个结果。

print(" Semantic search results:")for item in res["data"]["Get"]["Question"]: q, a, c = item["question"], item["answer"], item["_additional"]["certainty"] print(f"- Q: {q} → A: {a} (certainty {c:.2f})")

输出:

Semantic search results:- Q: Only mammal in Proboscidea order? → A: Elephant (certainty 0.77)

显示具有确定性分数的搜索结果。

步骤8:检索增强生成 (RAG)

rag = ( client.query.get("Question", ["question", "answer"]) .with_near_text({"concepts": ["animal that weighs a ton"]}) .with_limit(1) .with_generate(single_result=True) .do())

进行语义搜索,并要求 Weaviate 使用 OpenAI(通过生成)生成响应。

generated = rag["data"]["Get"]["Question"][0]["generate"]["singleResult"]print(" RAG answer:", generated)

输出:

RAG answer: The only mammal in the order Proboscidea that weighs a ton is an elephant.

打印根据 Weaviate 数据库中最接近的匹配生成的答案。

主要特点

Weaviate 具有许多特殊功能,使其在大多数基于向量的数据管理任务中具有灵活而强大的优势。

  • 向量搜索: Weaviate 可以将数据存储和查询为向量嵌入,从而进行语义搜索;它通过基于含义而非简单匹配关键词来查找相似数据点来提高准确性。
  • 混合搜索: 通过结合向量搜索和传统关键词搜索,Weaviate 提供更相关和上下文的结果,同时为各种用例提供更大的灵活性。
  • 可扩展基础设施: Weaviate 能够以单节点和分布式部署模型运行;它可以水平扩展以支持非常大的数据集,并确保性能不受影响。
  • AI原生架构: Weaviate 从一开始就设计用于与机器学习模型配合使用,支持直接生成嵌入,而无需通过额外的平台或外部工具。
  • 开源: 作为开源软件,Weaviate 允许一定程度的定制、集成,甚至用户参与其持续开发。
  • 可扩展性: Weaviate 通过模块和插件支持可扩展性,使用户能够集成各种机器学习模型和外部数据源。

竞品对比

下表突出显示了 Weaviate 与其在向量数据库领域的一些竞争对手之间的主要区别。

功能WeaviatePineconeMilvusQdrant
开源
混合搜索
分布式架构
预构建AI模型支持
云原生集成
数据复制

如上表所示,Weaviate 是唯一提供混合搜索的向量数据库,可以同时进行向量搜索和关键词搜索。因此,它提供了更多的搜索选项。Weaviate 也是开源的,不像 Pinecone 是专有的。Weaviate 的开源优势和透明库为用户提供了定制选项。

特别是,Weaviate 在数据库中集成了机器学习用于嵌入,这显著将其解决方案与竞争对手区分开来。

Weaviate 是一个领先的向量数据库,具有革命性的 AI 原生架构,旨在处理更高维度的数据,同时集成机器学习模型。Weaviate 的混合数据和搜索能力及其开源性质为各个行业的 AI 驱动型应用提供了强大的解决方案。

Weaviate 的可扩展性和高性能使其非常适合继续成为非结构化数据领域的领先解决方案。从推荐引擎和聊天机器人到语义搜索引擎,Weaviate 释放了其高级功能的全部潜力,帮助开发人员增强他们的 AI 应用程序。

对 AI 解决方案的需求只会增长;因此,Weaviate 在向量数据库领域的重要性将变得越来越相关,并将通过其处理复杂数据集的能力从根本上影响该领域的未来。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询