【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}}}"}'
相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心5 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github