OpenAI 的程序员,不满足于做一个 API boy ,从仓库的提交记录中可以看到,在 2023.11 在 V1 中做了比较大的改动,使用 stainless 来生成代码,并且随后就引入了 stainless-bot 机器人。
stainless 是一个开源的 API SDK 生成工具,可以根据 API 协议定义,自动生成对应的代码。你只需要提供 API 接口文件,也就是 OpenAPI Specification 文件,然后就会生成各种语言的 SDK 了。目前(2024.01)支持 TypeScript, Node, Python, Java, Go, Kotlin 等语言。
这里生成的代码质量也是有保障的,按照文档所说,会尽量让自动生成的代码和专家级别的人写的代码一样。生成的库还会支持丰富的类型校验,可以用于自动补全和 IDE 中光标悬停时的文档提示,另外还支持带退避的自动重试,以及身份验证等。每次 API 接口有新的变更,只有更新 API 协议定义文件,然后用 Github Action 推送给 stainless ,就能自动生成新的代码,接着给你的仓库提供一个 Pull Request 。
stainless 目前的资料还比较少,哪位老板有了解是怎么实现的吗?
1
dayeye2006199 319 天前 via iPhone
这个思路不是好早就有了吗,swagger 最早就能生成这个东西
|
2
xuelang OP @dayeye2006199 哦哦,是我孤陋寡闻了,第一次见生成 sdk 代码的,不过还没搞清楚 stainless 具体怎么生成的
|
3
dayeye2006199 318 天前 1
@xuelang 那就别猜了,看代码就对了 -- https://github.com/OpenAPITools/openapi-generator
|
4
xuelang OP |
5
xuelang OP 不对,这个是 openapi 的 generator ,不过 OpenAI 的 sdk 貌似不是用的这个吧
|
6
dayeye2006199 317 天前
@xuelang 万变不离其中,主要思想就是 meta programming
|