OpenAI 的 Python SDK 库已经是自动生成代码了?

122 天前
 xuelang

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 目前的资料还比较少,哪位老板有了解是怎么实现的吗?


完整文章在跟 OpenAI 学写 ChatGPT API 的 Python SDK 库

1350 次点击
所在节点    程序员
6 条回复
dayeye2006199
121 天前
这个思路不是好早就有了吗,swagger 最早就能生成这个东西
xuelang
121 天前
@dayeye2006199 哦哦,是我孤陋寡闻了,第一次见生成 sdk 代码的,不过还没搞清楚 stainless 具体怎么生成的
dayeye2006199
120 天前
@xuelang 那就别猜了,看代码就对了 -- https://github.com/OpenAPITools/openapi-generator
xuelang
120 天前
@dayeye2006199 太 6 了,这个竟然也是开源了的
这里也提到原来 Swagger 以前也有生成的

Swagger Codegen to OpenAPI Generator
xuelang
120 天前
不对,这个是 openapi 的 generator ,不过 OpenAI 的 sdk 貌似不是用的这个吧
dayeye2006199
119 天前
@xuelang 万变不离其中,主要思想就是 meta programming

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1007248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX