<SOURCE_TEXT>
📝 目录
关于
Api-Interfaces 是用于 api-bridge、api-web 和 generator_server 之间通信的 gRPC 协议。此外,任何直接与 api-web
通信的其他客户端应用程序也使用这个仓库生成的接口。
有关一些开发指南,请参阅此处。
入门
以下说明将帮助你设置环境,以便从 proto 源文件构建接口文件。
前提条件
开发 api-interfaces 需要以下项目:
建议在这个项目中使用 ssh 克隆 git
和 go get
,尽管 https
似乎也可以使用。要强制使用 ssh(对于 github),请在你的 .gitconfig
中添加以下内容:
[url "ssh://git@github.com/"]
insteadOf = https://github.com/
设置和构建
安装并准备好所有前提条件后,可以通过以下方式设置此项目:
git clone --recurse-submodules git@github.com:Stability-AI/api-interfaces.git
cd api-interfaces
cmake .
cmake --build .
这将在 gooseai 中为各种语言生成文件,以支持 src 中的 proto 文件。重新构建文件时,建议先进行清理,因为有时不清理可能会导致部分文件未被重新生成。
🎈 使用
所有生成的文件都输出在 gooseai 中。如何使用这些文件取决于所使用的编程语言。以下部分提供了每种支持语言的详细信息。
文件有不同的用途,并且根据情况不是所有文件都是必需的:
后缀 | 客户端 | 服务器 |
---|---|---|
_grpc_pb | ✔️1 | ✔️ |
_pb_service | ✔️2 | |
_pb | ✔️ | ✔️ |
- TypeScript/JavaScript 客户端不需要。
- 仅 TypeScript/JavaScript 客户端需要。
Golang
对于 Golang,可以将接口作为普通模块添加到项目中。要添加它们,请运行:
go get github.com/Stability-AI/api-interfaces@latest
同样,要更新它们,只需运行相同的命令,使用要更新到的版本的短 sha。像使用普通模块一样使用它们。
Python
对于当前的输出,最佳的使用方式是将它们作为 git 子模块添加到你的项目中。建议在添加子模块时使用 ssh 克隆。要更新它们,只需在子模块内切换到较新的版本(并记得将子模块更改提交到你的项目)。
要使用它们,请确保文件在 Python 路径上。
TypeScript / JavaScript
对于当前的输出,最佳的使用方式是将它们作为 git 子模块添加到你的项目中。建议在添加子模块时使用 ssh 克隆。要更新它们,只需在子模块内切换到较新的版本(并记得将子模块更改提交到你的项目)。
要使用它们,请确保它们位于可以被你的 TypeScript/JavaScript 文件找到的位置。
注意:TypeScript 需要同时提供 TypeScript 和 JavaScript 文件。
其他语言 / 自定义构建
如果不使用 CMake 定义的构建来生成,请确保在从源 proto 文件构建时设置以下 proto 包含路径:
src/proto
src/tensorizer/proto
</SOURCE_TEXT>