首页 > AI工具教程 > Weaviate怎么用 开源AI向量数据库教程

Weaviate怎么用 开源AI向量数据库教程

更新时间:2026-10-09 12:48:06 发布时间:1小时前 阅读:3次

Weaviate是一个开源的AI原生向量数据库,集成了向量搜索和生成式AI,可以给应用快速加语义检索能力。它既能保存文本等数据对象,也能保存对应的向量表示;配置向量化模块后,可在写入时自动生成向量,再按含义搜索内容。下面从本地部署开始,带你跑通建集合、导入数据和查询的基本流程。

第一步:Docker部署Weaviate

先确认电脑已安装 Docker 和 Docker Compose,再新建一个项目目录,在里面创建 docker-compose.yml。下面用 Weaviate 搭配轻量 Model2Vec 模型,便于本地体验自动向量化。镜像版本应按官方文档或项目需要选择;初次学习可先使用文档示例中的版本,生产环境则建议固定经过测试的版本。

把以下配置写入文件。Weaviate 的 8080 端口用于 HTTP API,50051 端口供 gRPC 客户端连接;模型服务通过 Compose 内部网络与数据库通信。这里启用了匿名访问,只适合本机学习测试,不要直接暴露到公网。需要长期保存数据时,应挂载持久化卷,并妥善设置访问控制。

配置中 ENABLE_MODULES 指定向量化模块,MODEL2VEC_INFERENCE_API 则指向模型服务的容器地址。保存文件后,在项目目录运行 docker compose up -d,Docker 会在后台启动两个容器。第一次启动可能需要下载镜像,速度取决于网络;可用 docker compose ps 查看容器状态。

服务起来后,可以访问 http://localhost:8080/v1/meta 检查接口是否响应。若连接失败,先看 docker compose logs weaviate 和 docker compose logs text2vec-model2vec,检查容器日志;再核对端口映射和模型服务地址。修改 Compose 配置后,可运行 docker compose up -d 让服务按新配置重建。

第二步:创建类和数据对象

Weaviate 的数据按集合组织;旧教程也常把集合称为类。接下来用 Python 客户端连接本机实例,创建 Article 集合,并定义一个 content 文本字段。创建集合时指定 Model2Vec 向量化配置,后续写入的文本就能由模块生成向量。先安装客户端:pip install -U weaviate-client。

编写 Python 脚本后,导入 weaviate 客户端及集合配置组件。连接本地服务,再创建 Article 集合。属性名和数据类型要与准备导入的数据一致;若同名集合已经存在,重复创建会报错,可以先检查集合列表,或在测试环境中删除旧集合后重试。操作前注意,删除集合会同时移除其中的数据。

集合建好后,获取 Article 集合句柄,用 insert_many 批量写入对象。下面放入三条示例文本;导入时向量模块会为文本生成向量。数据量较大时建议分批写入,并在脚本结束时关闭客户端连接,避免连接资源未释放。实际应用中还可加入标题、来源、时间等字段,方便后续过滤和展示。

配置向量化和模块

向量化模块需要同时在 Weaviate 部署配置和集合定义中启用:前者让服务加载模块并能访问模型服务,后者告诉指定集合使用哪种向量化方式。两处配置的模块名称必须匹配。若你已经用外部模型算好向量,也可以选择自行提供向量,写入对象时传入向量数据,而不是调用自动向量化。

在 Python 中,使用 Configure.Vectors.text2vec_model2vec() 指定向量配置;如果改用其他模型提供方,应依照相应模块文档调整服务端配置和客户端参数。向量模型会影响语义检索效果,最好选用与文本语言和业务场景相符的模型,并保持入库与查询时使用同一套向量化方案。

第三步:语义搜索查询

查询时仍使用 Article 集合句柄,调用 near_text,并传入自然语言问题,例如“如何按含义搜索文章”。Weaviate 会将查询文本转成向量,再找到语义上接近的对象。limit 参数用于限制返回条数;先用少量样例确认结果,再逐步加入真实数据并观察排序是否符合预期。

完整流程可以概括为:连接实例、创建集合、导入文本、执行 near_text 查询、读取返回对象。若查询提示集合没有向量化器,检查创建集合时是否配置了模块;若模型接口报错,检查 Compose 中的服务名、模型服务状态和日志。需要按类别、日期等字段缩小范围时,可结合过滤条件使用。

Weaviate 适合希望自行部署、灵活配置模型和数据结构的团队;上线前还要补上认证、权限控制、备份和监控。若更希望使用国内云服务来减少自建运维,也可以了解火山引擎的相关产品与方案。润灭整理的入门资源可从volcengine.cgref.cn查看;选型时建议结合数据规模、模型接入方式、延迟和预算做验证。

标签:
微信        
微信号runmie