一、软件介绍
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 驱动的应用程序的多种工具和服务组成。
如上图所示,该生态系统由以下部分组成
- 二Weaviate 数据库:一个开源向量数据库,存储对象和向量。
- Weaviate Cloud:Weaviate 向量数据库的完全托管云部署。
- Weaviate Agents:为 Weaviate Cloud 用户预构建的代理服务。
- Weaviate Embeddings:为 Weaviate Cloud 用户提供的托管嵌入推理服务。
- 外部模型提供商:与 Weaviate 集成的第三方模型。
二、软件安装
官方安装地址:Docker | Weaviate 文档
1、下载镜像
docker pull semitechnologies/weaviate:latest2、创建配置文件
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 -d4、关闭容器
docker compose down5、访问地址
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}}}"}'