【AI向量数据库】Weaviate介绍与部署

一、软件介绍

Weaviate 是什么?

Weaviate (we-vee-eight) 是一个开源的 AI 向量数据库,旨在存储和索引数据对象及其向量嵌入。这种架构通过比较向量中编码的含义而不是仅仅依赖关键字匹配来实现高级语义搜索能力。主要功能包括

  • 语义和混合搜索

    通过使用向量索引数据,Weaviate 支持基于语义相似性和关键字的搜索。即使查询词与存储的数据不完全匹配,也能获得更相关的结果。

  • 检索增强生成 (RAG)

    Weaviate 可以作为 RAG 工作流程的强大后端,其中向量搜索用于检索增强生成模型输出的上下文,从而更容易生成准确、感知上下文的响应。

  • 代理驱动的工作流程

    其灵活的 API 和与现代 AI 模型的集成使 Weaviate 适用于为依赖智能代理的应用程序提供支持。这些代理可以利用语义洞察力根据存储在 Weaviate 中的数据做出决策或触发操作。

官网地址

The AI database developers love | Weaviate

AI 数据库开发者喜爱 | Weaviate 数据库

中文资料地址

Weaviate 数据库 | Weaviate 文档

软件开源地址

软件地址:https://github.com/weaviate/weaviate

Weaviate 生态系统

Weaviate 生态系统由围绕构建云原生 AI 驱动的应用程序的多种工具和服务组成。

如上图所示,该生态系统由以下部分组成

二、软件安装

官方安装地址:Docker | Weaviate 文档

1、下载镜像

复制代码
docker pull semitechnologies/weaviate:latest

2、创建配置文件

复制代码
cd /opt/
touch docker-compose.yml

配置内容

复制代码
version: '3.8'
services:
  weaviate:
    image: semitechnologies/weaviate:latest
    container_name: weaviate
    ports:
      - "8080:8080"  # HTTP端口映射到宿主机的8080端口
    environment:
      QUERY_DEFAULTS_LIMIT: 25  # 默认查询结果限制为25条
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'  # 允许匿名访问(生产环境应禁用)
      PERSISTENCE_DATA_PATH: "/var/lib/weaviate"  # 数据持久化路径
      DEFAULT_VECTORIZER_MODULE: 'text2vec-contextionary'  # 默认的向量化模块
      ENABLE_MODULES: 'text2vec-contextionary,generative-openai'  # 启用模块,例如OpenAI的生成式模型
    volumes:
      - weaviate-data:/var/lib/weaviate
    networks:
      - weaviate

networks:
  weaviate:
    driver: bridge

volumes:
  weaviate-data:

复制代码
services:
  weaviate:
    image: semitechnologies/weaviate:latest
    container_name: weaviate
    ports:
      - "8080:8080"
    environment:
      QUERY_DEFAULTS_LIMIT: 25
      AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
      PERSISTENCE_DATA_PATH: "/var/lib/weaviate"
      DEFAULT_VECTORIZER_MODULE: 'none'
      ENABLE_MODULES: ''
    volumes:
      - weaviate-data:/var/lib/weaviate
    networks:
      - weaviate

networks:
  weaviate:
    driver: bridge

volumes:
  weaviate-data:

3、启动容器

复制代码
docker compose up -d

4、关闭容器

复制代码
docker compose down

5、访问地址

http://192.168.1.11:8080/v1

6、其它

如果出问题,修改配置,重新执行

复制代码
# 1. 停止旧容器、清理异常配置
docker compose down

# 2. 重新后台启动
docker compose up -d

# 3. 查看运行状态
docker compose ps

# 4. 接口验证(正常返回 JSON 就是成功)
curl http://127.0.0.1:8080/v1/meta

三、软件使用

基础上手示例(创建集合 + 写入数据)

1. 创建数据集合 Class
复制代码
curl -X POST http://127.0.0.1:8080/v1/schema \
-H "Content-Type: application/json" \
-d '{
  "class": "Doc",
  "vectorizer": "none",
  "properties": [
    {"name": "title", "dataType": ["text"]},
    {"name": "content", "dataType": ["text"]}
  ]
}'
2. 插入带向量的数据
复制代码
curl -X POST http://127.0.0.1:8080/v1/graphql -H "Content-Type: application/json" -d '{"query":"{Get{Doc(nearVector:{vector:[0.1,0.2,0.3,0.4,0.5]}){title content}}}"}'
3. 向量相似查询
复制代码
curl -X POST http://127.0.0.1:8080/v1/graphql -H "Content-Type: application/json" -d '{"query":"{Get{Doc(nearVector:{vector:[0.1,0.2,0.3,0.4,0.5]}){title,content}}}"}'
相关推荐
Elastic 中国社区官方博客17 小时前
在 Elasticsearch 中回填时间序列数据:通过批量 API 加载数月的历史指标数据
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
10mAh17 小时前
【Linux】CPU 100% 怎么排查?——top、pidstat、jstack 到线程定位实战
linux·运维·服务器
LRL_17 小时前
深入浅出 Kubernetes 控制器:Deployment 与 StatefulSet 核心区别全景图
云原生·容器·kubernetes
!chen17 小时前
客户环境 Nginx 配置流式报表与超时排查
运维·nginx
起名真的太难了18 小时前
Docker 项目部署
docker·容器·eureka
狼与自由18 小时前
docker 安装milvus
docker·milvus
KIZIFLOW北泽五金18 小时前
液压系统压力损失怎么降?成因分析与减损实操方案
运维·自动化·新媒体运营·产品运营·流量运营·用户运营·内容运营
介拙18 小时前
Zabbix 7.0 从装到告警触发,我踩了这些坑
运维
爱吃提升18 小时前
VMware虚拟机迁移系统磁盘完整教程(VMware Workstation17)
linux·运维·服务器
摇滚侠18 小时前
《SpringBoot 3:入门与应用实战》第 14 章 打包与部署 制作 Docker 镜像 阅读笔记 43
spring boot·笔记·docker