跳至主要内容
前往文档
⌘U
Weaviate 数据库

使用 Weaviate 的 APIs 和工具开发 AI 应用

部署

部署、配置和维护 Weaviate 数据库

Weaviate Agents

使用 Weaviate 构建和部署智能代理

Weaviate Cloud

在云端管理和扩展 Weaviate

更多资源

集成
贡献者指南
活动 & 工作坊
Weaviate Academy

需要帮助?

Weaviate Logo询问 AI 助手⌘K
社区论坛

gRPC

从 Weaviate v1.19.0 开始,gRPC 接口已逐步添加到 Weaviate 中。gRPC 是一种高性能、开源的通用 RPC 框架,它基于契约,可以在任何环境中运行。它基于 HTTP/2 和 Protocol Buffers,因此非常快速和高效。

截至 Weaviate v1.23.7,gRPC 接口被认为是稳定的。 Python (v4 版本)TypeScript (v3 版本) 客户端库支持 gRPC,其他客户端库也将陆续支持。

Protocol Buffer (Protobuf) 定义

gRPC 接口通过其 Protocol Buffer,或 Protobuf (了解更多) 定义来定义。

在 Weaviate 的情况下,.proto 文件列在 Core 库的 proto 目录 中。

该目录包含以下文件

  • weaviate.proto:主要的 Protobuf 定义文件。该文件定义了 Weaviate 服务,并指定了 Weaviate 服务中可用的 RPC 方法。
  • batch.proto:定义用于处理批量对象操作的数据结构。该文件由 weaviate.proto 导入。
  • search_get.proto:定义用于处理搜索(获取)操作的数据结构。该文件由 weaviate.proto 导入。
  • base.proto:定义要在其他地方使用 的基本数据结构。该文件由 batch.protosearch_get.proto 导入。

如何使用 gRPC

服务器端

例如,下面的代码片段将 50051 映射为宿主机端口,以便可以从容器外部访问它。50051 端口映射到容器内的 50051 端口用于 gRPC 调用,而 8080 端口映射到容器内的 8080 端口用于 REST 调用。

信息

我们建议使用默认端口 50051 进行 gRPC 调用。可以通过 GRPC_PORT 环境变量 进行修改。请注意,Weaviate Cloud 使用端口 443 进行 gRPC。


```yaml
---
services:
weaviate:
# ... Other settings
ports:
- "8080:8080" # REST calls
- "50051:50051" # gRPC calls
# ... Other settings

客户端

您可以通过 Python (v4 版本)TypeScript (v3 版本) 客户端库使用 gRPC 接口。其他客户端库也将很快推出 gRPC 支持。

或者,您可以使用其他工具,例如 grpcurl 命令行工具,与 gRPC API 交互。一些选项包括

问题和反馈

如果您有任何问题或反馈,请在 用户论坛 中告诉我们。