@xyd-js/opensdk-python 0.0.0-build-f0c10f6-20260703195526

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +21 -0
  3. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__create/input.json +325 -0
  4. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__create/output.py +26 -0
  5. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__delete/input.json +201 -0
  6. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__delete/output.py +28 -0
  7. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__list/input.json +400 -0
  8. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__list/output.py +29 -0
  9. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__retrieve/input.json +304 -0
  10. package/__fixtures__/-2.complex.openai/admin__organization__admin_api_keys__retrieve/output.py +28 -0
  11. package/__fixtures__/-2.complex.openai/admin__organization__audit_logs__list/input.json +2602 -0
  12. package/__fixtures__/-2.complex.openai/admin__organization__audit_logs__list/output.py +29 -0
  13. package/__fixtures__/-2.complex.openai/admin__organization__certificates__activate__create/input.json +308 -0
  14. package/__fixtures__/-2.complex.openai/admin__organization__certificates__activate__create/output.py +32 -0
  15. package/__fixtures__/-2.complex.openai/admin__organization__certificates__create/input.json +308 -0
  16. package/__fixtures__/-2.complex.openai/admin__organization__certificates__create/output.py +28 -0
  17. package/__fixtures__/-2.complex.openai/admin__organization__certificates__deactivate__create/input.json +308 -0
  18. package/__fixtures__/-2.complex.openai/admin__organization__certificates__deactivate__create/output.py +32 -0
  19. package/__fixtures__/-2.complex.openai/admin__organization__certificates__delete/input.json +196 -0
  20. package/__fixtures__/-2.complex.openai/admin__organization__certificates__delete/output.py +28 -0
  21. package/__fixtures__/-2.complex.openai/admin__organization__certificates__list/input.json +356 -0
  22. package/__fixtures__/-2.complex.openai/admin__organization__certificates__list/output.py +29 -0
  23. package/__fixtures__/-2.complex.openai/admin__organization__certificates__retrieve/input.json +300 -0
  24. package/__fixtures__/-2.complex.openai/admin__organization__certificates__retrieve/output.py +30 -0
  25. package/__fixtures__/-2.complex.openai/admin__organization__certificates__update/input.json +310 -0
  26. package/__fixtures__/-2.complex.openai/admin__organization__certificates__update/output.py +30 -0
  27. package/__fixtures__/-2.complex.openai/admin__organization__costs__list/input.json +1062 -0
  28. package/__fixtures__/-2.complex.openai/admin__organization__costs__list/output.py +29 -0
  29. package/__fixtures__/-2.complex.openai/admin__organization__groups__create/input.json +239 -0
  30. package/__fixtures__/-2.complex.openai/admin__organization__groups__create/output.py +26 -0
  31. package/__fixtures__/-2.complex.openai/admin__organization__groups__delete/input.json +206 -0
  32. package/__fixtures__/-2.complex.openai/admin__organization__groups__delete/output.py +28 -0
  33. package/__fixtures__/-2.complex.openai/admin__organization__groups__list/input.json +316 -0
  34. package/__fixtures__/-2.complex.openai/admin__organization__groups__list/output.py +29 -0
  35. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__create/input.json +364 -0
  36. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__create/output.py +34 -0
  37. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__delete/input.json +210 -0
  38. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__delete/output.py +36 -0
  39. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__list/input.json +398 -0
  40. package/__fixtures__/-2.complex.openai/admin__organization__groups__roles__list/output.py +37 -0
  41. package/__fixtures__/-2.complex.openai/admin__organization__groups__update/input.json +241 -0
  42. package/__fixtures__/-2.complex.openai/admin__organization__groups__update/output.py +28 -0
  43. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__create/input.json +237 -0
  44. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__create/output.py +34 -0
  45. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__delete/input.json +211 -0
  46. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__delete/output.py +36 -0
  47. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__list/input.json +314 -0
  48. package/__fixtures__/-2.complex.openai/admin__organization__groups__users__list/output.py +37 -0
  49. package/__fixtures__/-2.complex.openai/admin__organization__invites__create/input.json +386 -0
  50. package/__fixtures__/-2.complex.openai/admin__organization__invites__create/output.py +28 -0
  51. package/__fixtures__/-2.complex.openai/admin__organization__invites__delete/input.json +203 -0
  52. package/__fixtures__/-2.complex.openai/admin__organization__invites__delete/output.py +28 -0
  53. package/__fixtures__/-2.complex.openai/admin__organization__invites__list/input.json +414 -0
  54. package/__fixtures__/-2.complex.openai/admin__organization__invites__list/output.py +29 -0
  55. package/__fixtures__/-2.complex.openai/admin__organization__invites__retrieve/input.json +337 -0
  56. package/__fixtures__/-2.complex.openai/admin__organization__invites__retrieve/output.py +28 -0
  57. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__delete/input.json +279 -0
  58. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__delete/output.py +36 -0
  59. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__list/input.json +475 -0
  60. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__list/output.py +37 -0
  61. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__retrieve/input.json +400 -0
  62. package/__fixtures__/-2.complex.openai/admin__organization__projects__api_keys__retrieve/output.py +36 -0
  63. package/__fixtures__/-2.complex.openai/admin__organization__projects__archive/input.json +247 -0
  64. package/__fixtures__/-2.complex.openai/admin__organization__projects__archive/output.py +28 -0
  65. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__activate__create/input.json +324 -0
  66. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__activate__create/output.py +40 -0
  67. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__deactivate__create/input.json +324 -0
  68. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__deactivate__create/output.py +40 -0
  69. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__list/input.json +372 -0
  70. package/__fixtures__/-2.complex.openai/admin__organization__projects__certificates__list/output.py +37 -0
  71. package/__fixtures__/-2.complex.openai/admin__organization__projects__create/input.json +281 -0
  72. package/__fixtures__/-2.complex.openai/admin__organization__projects__create/output.py +28 -0
  73. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__create/input.json +274 -0
  74. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__create/output.py +34 -0
  75. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__delete/input.json +211 -0
  76. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__delete/output.py +36 -0
  77. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__list/input.json +342 -0
  78. package/__fixtures__/-2.complex.openai/admin__organization__projects__groups__list/output.py +37 -0
  79. package/__fixtures__/-2.complex.openai/admin__organization__projects__list/input.json +330 -0
  80. package/__fixtures__/-2.complex.openai/admin__organization__projects__list/output.py +29 -0
  81. package/__fixtures__/-2.complex.openai/admin__organization__projects__rate_limits__list_rate_limits/input.json +358 -0
  82. package/__fixtures__/-2.complex.openai/admin__organization__projects__rate_limits__list_rate_limits/output.py +37 -0
  83. package/__fixtures__/-2.complex.openai/admin__organization__projects__rate_limits__update_rate_limit/input.json +407 -0
  84. package/__fixtures__/-2.complex.openai/admin__organization__projects__rate_limits__update_rate_limit/output.py +38 -0
  85. package/__fixtures__/-2.complex.openai/admin__organization__projects__retrieve/input.json +247 -0
  86. package/__fixtures__/-2.complex.openai/admin__organization__projects__retrieve/output.py +28 -0
  87. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__create/input.json +372 -0
  88. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__create/output.py +34 -0
  89. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__delete/input.json +216 -0
  90. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__delete/output.py +36 -0
  91. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__list/input.json +391 -0
  92. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__list/output.py +37 -0
  93. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__retrieve/input.json +253 -0
  94. package/__fixtures__/-2.complex.openai/admin__organization__projects__service_accounts__retrieve/output.py +36 -0
  95. package/__fixtures__/-2.complex.openai/admin__organization__projects__update/input.json +356 -0
  96. package/__fixtures__/-2.complex.openai/admin__organization__projects__update/output.py +30 -0
  97. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__create/input.json +349 -0
  98. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__create/output.py +36 -0
  99. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__delete/input.json +279 -0
  100. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__delete/output.py +36 -0
  101. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__list/input.json +387 -0
  102. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__list/output.py +37 -0
  103. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__retrieve/input.json +250 -0
  104. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__retrieve/output.py +36 -0
  105. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__update/input.json +339 -0
  106. package/__fixtures__/-2.complex.openai/admin__organization__projects__users__update/output.py +38 -0
  107. package/__fixtures__/-2.complex.openai/admin__organization__roles__create/input.json +283 -0
  108. package/__fixtures__/-2.complex.openai/admin__organization__roles__create/output.py +28 -0
  109. package/__fixtures__/-2.complex.openai/admin__organization__roles__delete/input.json +206 -0
  110. package/__fixtures__/-2.complex.openai/admin__organization__roles__delete/output.py +28 -0
  111. package/__fixtures__/-2.complex.openai/admin__organization__roles__list/input.json +338 -0
  112. package/__fixtures__/-2.complex.openai/admin__organization__roles__list/output.py +29 -0
  113. package/__fixtures__/-2.complex.openai/admin__organization__roles__update/input.json +296 -0
  114. package/__fixtures__/-2.complex.openai/admin__organization__roles__update/output.py +30 -0
  115. package/__fixtures__/-2.complex.openai/admin__organization__usage__audio_speeches__list/input.json +1108 -0
  116. package/__fixtures__/-2.complex.openai/admin__organization__usage__audio_speeches__list/output.py +35 -0
  117. package/__fixtures__/-2.complex.openai/admin__organization__usage__audio_transcriptions__list/input.json +1108 -0
  118. package/__fixtures__/-2.complex.openai/admin__organization__usage__audio_transcriptions__list/output.py +35 -0
  119. package/__fixtures__/-2.complex.openai/admin__organization__usage__code_interpreter_sessions__list/input.json +1054 -0
  120. package/__fixtures__/-2.complex.openai/admin__organization__usage__code_interpreter_sessions__list/output.py +35 -0
  121. package/__fixtures__/-2.complex.openai/admin__organization__usage__completions__list/input.json +1123 -0
  122. package/__fixtures__/-2.complex.openai/admin__organization__usage__completions__list/output.py +35 -0
  123. package/__fixtures__/-2.complex.openai/admin__organization__usage__embeddings__list/input.json +1108 -0
  124. package/__fixtures__/-2.complex.openai/admin__organization__usage__embeddings__list/output.py +35 -0
  125. package/__fixtures__/-2.complex.openai/admin__organization__usage__images__list/input.json +1176 -0
  126. package/__fixtures__/-2.complex.openai/admin__organization__usage__images__list/output.py +35 -0
  127. package/__fixtures__/-2.complex.openai/admin__organization__usage__moderations__list/input.json +1108 -0
  128. package/__fixtures__/-2.complex.openai/admin__organization__usage__moderations__list/output.py +35 -0
  129. package/__fixtures__/-2.complex.openai/admin__organization__usage__vector_stores__list/input.json +1054 -0
  130. package/__fixtures__/-2.complex.openai/admin__organization__usage__vector_stores__list/output.py +35 -0
  131. package/__fixtures__/-2.complex.openai/admin__organization__users__delete/input.json +202 -0
  132. package/__fixtures__/-2.complex.openai/admin__organization__users__delete/output.py +28 -0
  133. package/__fixtures__/-2.complex.openai/admin__organization__users__list/input.json +557 -0
  134. package/__fixtures__/-2.complex.openai/admin__organization__users__list/output.py +29 -0
  135. package/__fixtures__/-2.complex.openai/admin__organization__users__retrieve/input.json +472 -0
  136. package/__fixtures__/-2.complex.openai/admin__organization__users__retrieve/output.py +28 -0
  137. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__create/input.json +611 -0
  138. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__create/output.py +34 -0
  139. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__delete/input.json +210 -0
  140. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__delete/output.py +36 -0
  141. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__list/input.json +398 -0
  142. package/__fixtures__/-2.complex.openai/admin__organization__users__roles__list/output.py +37 -0
  143. package/__fixtures__/-2.complex.openai/admin__organization__users__update/input.json +528 -0
  144. package/__fixtures__/-2.complex.openai/admin__organization__users__update/output.py +30 -0
  145. package/__fixtures__/-2.complex.openai/audio__speech__create/input.json +388 -0
  146. package/__fixtures__/-2.complex.openai/audio__speech__create/output.py +22 -0
  147. package/__fixtures__/-2.complex.openai/audio__transcriptions__create/input.json +999 -0
  148. package/__fixtures__/-2.complex.openai/audio__transcriptions__create/output.py +22 -0
  149. package/__fixtures__/-2.complex.openai/audio__translations__create/input.json +430 -0
  150. package/__fixtures__/-2.complex.openai/audio__translations__create/output.py +22 -0
  151. package/__fixtures__/-2.complex.openai/audio__voice_consents__create/input.json +244 -0
  152. package/__fixtures__/-2.complex.openai/audio__voice_consents__create/output.py +22 -0
  153. package/__fixtures__/-2.complex.openai/audio__voice_consents__delete/input.json +190 -0
  154. package/__fixtures__/-2.complex.openai/audio__voice_consents__delete/output.py +22 -0
  155. package/__fixtures__/-2.complex.openai/audio__voice_consents__list/input.json +285 -0
  156. package/__fixtures__/-2.complex.openai/audio__voice_consents__list/output.py +23 -0
  157. package/__fixtures__/-2.complex.openai/audio__voice_consents__retrieve/input.json +212 -0
  158. package/__fixtures__/-2.complex.openai/audio__voice_consents__retrieve/output.py +22 -0
  159. package/__fixtures__/-2.complex.openai/audio__voice_consents__update/input.json +236 -0
  160. package/__fixtures__/-2.complex.openai/audio__voice_consents__update/output.py +22 -0
  161. package/__fixtures__/-2.complex.openai/audio__voices__create/input.json +235 -0
  162. package/__fixtures__/-2.complex.openai/audio__voices__create/output.py +22 -0
  163. package/__fixtures__/-2.complex.openai/batches__cancel/input.json +594 -0
  164. package/__fixtures__/-2.complex.openai/batches__cancel/output.py +16 -0
  165. package/__fixtures__/-2.complex.openai/batches__create/input.json +701 -0
  166. package/__fixtures__/-2.complex.openai/batches__create/output.py +16 -0
  167. package/__fixtures__/-2.complex.openai/batches__list/input.json +665 -0
  168. package/__fixtures__/-2.complex.openai/batches__list/output.py +17 -0
  169. package/__fixtures__/-2.complex.openai/batches__retrieve/input.json +594 -0
  170. package/__fixtures__/-2.complex.openai/batches__retrieve/output.py +16 -0
  171. package/__fixtures__/-2.complex.openai/beta__assistants__create/input.json +1029 -0
  172. package/__fixtures__/-2.complex.openai/beta__assistants__create/output.py +22 -0
  173. package/__fixtures__/-2.complex.openai/beta__assistants__delete/input.json +190 -0
  174. package/__fixtures__/-2.complex.openai/beta__assistants__delete/output.py +22 -0
  175. package/__fixtures__/-2.complex.openai/beta__assistants__list/input.json +796 -0
  176. package/__fixtures__/-2.complex.openai/beta__assistants__list/output.py +23 -0
  177. package/__fixtures__/-2.complex.openai/beta__assistants__retrieve/input.json +694 -0
  178. package/__fixtures__/-2.complex.openai/beta__assistants__retrieve/output.py +22 -0
  179. package/__fixtures__/-2.complex.openai/beta__assistants__update/input.json +1045 -0
  180. package/__fixtures__/-2.complex.openai/beta__assistants__update/output.py +24 -0
  181. package/__fixtures__/-2.complex.openai/beta__chat_kit__sessions__cancel/input.json +482 -0
  182. package/__fixtures__/-2.complex.openai/beta__chat_kit__sessions__cancel/output.py +28 -0
  183. package/__fixtures__/-2.complex.openai/beta__chat_kit__sessions__create/input.json +738 -0
  184. package/__fixtures__/-2.complex.openai/beta__chat_kit__sessions__create/output.py +28 -0
  185. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__delete/input.json +200 -0
  186. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__delete/output.py +28 -0
  187. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__items__list/input.json +1218 -0
  188. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__items__list/output.py +37 -0
  189. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__list/input.json +444 -0
  190. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__list/output.py +29 -0
  191. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__retrieve/input.json +328 -0
  192. package/__fixtures__/-2.complex.openai/beta__chat_kit__threads__retrieve/output.py +28 -0
  193. package/__fixtures__/-2.complex.openai/beta__threads__create/input.json +665 -0
  194. package/__fixtures__/-2.complex.openai/beta__threads__create/output.py +22 -0
  195. package/__fixtures__/-2.complex.openai/beta__threads__delete/input.json +189 -0
  196. package/__fixtures__/-2.complex.openai/beta__threads__delete/output.py +22 -0
  197. package/__fixtures__/-2.complex.openai/beta__threads__messages__create/input.json +938 -0
  198. package/__fixtures__/-2.complex.openai/beta__threads__messages__create/output.py +30 -0
  199. package/__fixtures__/-2.complex.openai/beta__threads__messages__delete/input.json +203 -0
  200. package/__fixtures__/-2.complex.openai/beta__threads__messages__delete/output.py +30 -0
  201. package/__fixtures__/-2.complex.openai/beta__threads__messages__list/input.json +945 -0
  202. package/__fixtures__/-2.complex.openai/beta__threads__messages__list/output.py +31 -0
  203. package/__fixtures__/-2.complex.openai/beta__threads__messages__retrieve/input.json +832 -0
  204. package/__fixtures__/-2.complex.openai/beta__threads__messages__retrieve/output.py +30 -0
  205. package/__fixtures__/-2.complex.openai/beta__threads__messages__update/input.json +855 -0
  206. package/__fixtures__/-2.complex.openai/beta__threads__messages__update/output.py +32 -0
  207. package/__fixtures__/-2.complex.openai/beta__threads__new_and_run/input.json +1899 -0
  208. package/__fixtures__/-2.complex.openai/beta__threads__new_and_run/output.py +22 -0
  209. package/__fixtures__/-2.complex.openai/beta__threads__retrieve/input.json +283 -0
  210. package/__fixtures__/-2.complex.openai/beta__threads__retrieve/output.py +22 -0
  211. package/__fixtures__/-2.complex.openai/beta__threads__runs__cancel/input.json +1181 -0
  212. package/__fixtures__/-2.complex.openai/beta__threads__runs__cancel/output.py +30 -0
  213. package/__fixtures__/-2.complex.openai/beta__threads__runs__create/input.json +1851 -0
  214. package/__fixtures__/-2.complex.openai/beta__threads__runs__create/output.py +30 -0
  215. package/__fixtures__/-2.complex.openai/beta__threads__runs__list/input.json +1285 -0
  216. package/__fixtures__/-2.complex.openai/beta__threads__runs__list/output.py +31 -0
  217. package/__fixtures__/-2.complex.openai/beta__threads__runs__retrieve/input.json +1181 -0
  218. package/__fixtures__/-2.complex.openai/beta__threads__runs__retrieve/output.py +30 -0
  219. package/__fixtures__/-2.complex.openai/beta__threads__runs__steps__list/input.json +1066 -0
  220. package/__fixtures__/-2.complex.openai/beta__threads__runs__steps__list/output.py +39 -0
  221. package/__fixtures__/-2.complex.openai/beta__threads__runs__steps__retrieve/input.json +964 -0
  222. package/__fixtures__/-2.complex.openai/beta__threads__runs__steps__retrieve/output.py +40 -0
  223. package/__fixtures__/-2.complex.openai/beta__threads__runs__submit_tool_outputs__create/input.json +1246 -0
  224. package/__fixtures__/-2.complex.openai/beta__threads__runs__submit_tool_outputs__create/output.py +38 -0
  225. package/__fixtures__/-2.complex.openai/beta__threads__runs__update/input.json +1204 -0
  226. package/__fixtures__/-2.complex.openai/beta__threads__runs__update/output.py +32 -0
  227. package/__fixtures__/-2.complex.openai/beta__threads__update/input.json +315 -0
  228. package/__fixtures__/-2.complex.openai/beta__threads__update/output.py +24 -0
  229. package/__fixtures__/-2.complex.openai/chat__completions__create/input.json +3325 -0
  230. package/__fixtures__/-2.complex.openai/chat__completions__create/output.py +22 -0
  231. package/__fixtures__/-2.complex.openai/chat__completions__delete/input.json +192 -0
  232. package/__fixtures__/-2.complex.openai/chat__completions__delete/output.py +22 -0
  233. package/__fixtures__/-2.complex.openai/chat__completions__list/input.json +1069 -0
  234. package/__fixtures__/-2.complex.openai/chat__completions__list/output.py +23 -0
  235. package/__fixtures__/-2.complex.openai/chat__completions__messages__list/input.json +770 -0
  236. package/__fixtures__/-2.complex.openai/chat__completions__messages__list/output.py +31 -0
  237. package/__fixtures__/-2.complex.openai/chat__completions__retrieve/input.json +938 -0
  238. package/__fixtures__/-2.complex.openai/chat__completions__retrieve/output.py +22 -0
  239. package/__fixtures__/-2.complex.openai/chat__completions__update/input.json +973 -0
  240. package/__fixtures__/-2.complex.openai/chat__completions__update/output.py +22 -0
  241. package/__fixtures__/-2.complex.openai/completions__create/input.json +788 -0
  242. package/__fixtures__/-2.complex.openai/completions__create/output.py +16 -0
  243. package/__fixtures__/-2.complex.openai/containers__create/input.json +671 -0
  244. package/__fixtures__/-2.complex.openai/containers__create/output.py +16 -0
  245. package/__fixtures__/-2.complex.openai/containers__delete/input.json +142 -0
  246. package/__fixtures__/-2.complex.openai/containers__delete/output.py +16 -0
  247. package/__fixtures__/-2.complex.openai/containers__files__content/input.json +154 -0
  248. package/__fixtures__/-2.complex.openai/containers__files__content/output.py +24 -0
  249. package/__fixtures__/-2.complex.openai/containers__files__create/input.json +261 -0
  250. package/__fixtures__/-2.complex.openai/containers__files__create/output.py +24 -0
  251. package/__fixtures__/-2.complex.openai/containers__files__delete/input.json +154 -0
  252. package/__fixtures__/-2.complex.openai/containers__files__delete/output.py +24 -0
  253. package/__fixtures__/-2.complex.openai/containers__files__list/input.json +337 -0
  254. package/__fixtures__/-2.complex.openai/containers__files__list/output.py +25 -0
  255. package/__fixtures__/-2.complex.openai/containers__files__retrieve/input.json +235 -0
  256. package/__fixtures__/-2.complex.openai/containers__files__retrieve/output.py +24 -0
  257. package/__fixtures__/-2.complex.openai/containers__list/input.json +438 -0
  258. package/__fixtures__/-2.complex.openai/containers__list/output.py +17 -0
  259. package/__fixtures__/-2.complex.openai/containers__retrieve/input.json +329 -0
  260. package/__fixtures__/-2.complex.openai/containers__retrieve/output.py +16 -0
  261. package/__fixtures__/-2.complex.openai/conversations__create/input.json +6737 -0
  262. package/__fixtures__/-2.complex.openai/conversations__create/output.py +16 -0
  263. package/__fixtures__/-2.complex.openai/conversations__delete/input.json +186 -0
  264. package/__fixtures__/-2.complex.openai/conversations__delete/output.py +16 -0
  265. package/__fixtures__/-2.complex.openai/conversations__items__create/input.json +8352 -0
  266. package/__fixtures__/-2.complex.openai/conversations__items__create/output.py +25 -0
  267. package/__fixtures__/-2.complex.openai/conversations__items__delete/input.json +213 -0
  268. package/__fixtures__/-2.complex.openai/conversations__items__delete/output.py +24 -0
  269. package/__fixtures__/-2.complex.openai/conversations__items__list/input.json +6695 -0
  270. package/__fixtures__/-2.complex.openai/conversations__items__list/output.py +25 -0
  271. package/__fixtures__/-2.complex.openai/conversations__items__retrieve/input.json +6597 -0
  272. package/__fixtures__/-2.complex.openai/conversations__items__retrieve/output.py +26 -0
  273. package/__fixtures__/-2.complex.openai/conversations__retrieve/input.json +198 -0
  274. package/__fixtures__/-2.complex.openai/conversations__retrieve/output.py +16 -0
  275. package/__fixtures__/-2.complex.openai/conversations__update/input.json +233 -0
  276. package/__fixtures__/-2.complex.openai/conversations__update/output.py +16 -0
  277. package/__fixtures__/-2.complex.openai/embeddings__create/input.json +395 -0
  278. package/__fixtures__/-2.complex.openai/embeddings__create/output.py +16 -0
  279. package/__fixtures__/-2.complex.openai/evals__create/input.json +1424 -0
  280. package/__fixtures__/-2.complex.openai/evals__create/output.py +16 -0
  281. package/__fixtures__/-2.complex.openai/evals__delete/input.json +232 -0
  282. package/__fixtures__/-2.complex.openai/evals__delete/output.py +16 -0
  283. package/__fixtures__/-2.complex.openai/evals__list/input.json +1251 -0
  284. package/__fixtures__/-2.complex.openai/evals__list/output.py +17 -0
  285. package/__fixtures__/-2.complex.openai/evals__retrieve/input.json +1127 -0
  286. package/__fixtures__/-2.complex.openai/evals__retrieve/output.py +16 -0
  287. package/__fixtures__/-2.complex.openai/evals__runs__cancel/input.json +4445 -0
  288. package/__fixtures__/-2.complex.openai/evals__runs__cancel/output.py +24 -0
  289. package/__fixtures__/-2.complex.openai/evals__runs__create/input.json +4526 -0
  290. package/__fixtures__/-2.complex.openai/evals__runs__create/output.py +24 -0
  291. package/__fixtures__/-2.complex.openai/evals__runs__delete/input.json +246 -0
  292. package/__fixtures__/-2.complex.openai/evals__runs__delete/output.py +24 -0
  293. package/__fixtures__/-2.complex.openai/evals__runs__list/input.json +4579 -0
  294. package/__fixtures__/-2.complex.openai/evals__runs__list/output.py +25 -0
  295. package/__fixtures__/-2.complex.openai/evals__runs__output_items__list/input.json +685 -0
  296. package/__fixtures__/-2.complex.openai/evals__runs__output_items__list/output.py +33 -0
  297. package/__fixtures__/-2.complex.openai/evals__runs__output_items__retrieve/input.json +560 -0
  298. package/__fixtures__/-2.complex.openai/evals__runs__output_items__retrieve/output.py +32 -0
  299. package/__fixtures__/-2.complex.openai/evals__runs__retrieve/input.json +4445 -0
  300. package/__fixtures__/-2.complex.openai/evals__runs__retrieve/output.py +24 -0
  301. package/__fixtures__/-2.complex.openai/evals__update/input.json +1160 -0
  302. package/__fixtures__/-2.complex.openai/evals__update/output.py +18 -0
  303. package/__fixtures__/-2.complex.openai/files__content/input.json +151 -0
  304. package/__fixtures__/-2.complex.openai/files__content/output.py +16 -0
  305. package/__fixtures__/-2.complex.openai/files__create/input.json +379 -0
  306. package/__fixtures__/-2.complex.openai/files__create/output.py +16 -0
  307. package/__fixtures__/-2.complex.openai/files__delete/input.json +184 -0
  308. package/__fixtures__/-2.complex.openai/files__delete/output.py +16 -0
  309. package/__fixtures__/-2.complex.openai/files__list/input.json +397 -0
  310. package/__fixtures__/-2.complex.openai/files__list/output.py +17 -0
  311. package/__fixtures__/-2.complex.openai/files__retrieve/input.json +295 -0
  312. package/__fixtures__/-2.complex.openai/files__retrieve/output.py +16 -0
  313. package/__fixtures__/-2.complex.openai/fine_tuning__alpha__graders__run__create/input.json +1225 -0
  314. package/__fixtures__/-2.complex.openai/fine_tuning__alpha__graders__run__create/output.py +34 -0
  315. package/__fixtures__/-2.complex.openai/fine_tuning__alpha__graders__validate__create/input.json +991 -0
  316. package/__fixtures__/-2.complex.openai/fine_tuning__alpha__graders__validate__create/output.py +32 -0
  317. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__create/input.json +297 -0
  318. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__create/output.py +29 -0
  319. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__delete/input.json +208 -0
  320. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__delete/output.py +30 -0
  321. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__list/input.json +325 -0
  322. package/__fixtures__/-2.complex.openai/fine_tuning__checkpoints__permissions__list/output.py +31 -0
  323. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__cancel/input.json +1645 -0
  324. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__cancel/output.py +22 -0
  325. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__checkpoints__list/input.json +383 -0
  326. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__checkpoints__list/output.py +31 -0
  327. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__create/input.json +1887 -0
  328. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__create/output.py +22 -0
  329. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__list/input.json +1714 -0
  330. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__list/output.py +23 -0
  331. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__list_events/input.json +330 -0
  332. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__list_events/output.py +25 -0
  333. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__pause/input.json +1645 -0
  334. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__pause/output.py +22 -0
  335. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__resume/input.json +1645 -0
  336. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__resume/output.py +22 -0
  337. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__retrieve/input.json +1645 -0
  338. package/__fixtures__/-2.complex.openai/fine_tuning__jobs__retrieve/output.py +22 -0
  339. package/__fixtures__/-2.complex.openai/images__edits__create/input.json +744 -0
  340. package/__fixtures__/-2.complex.openai/images__edits__create/output.py +22 -0
  341. package/__fixtures__/-2.complex.openai/images__generations__create/input.json +789 -0
  342. package/__fixtures__/-2.complex.openai/images__generations__create/output.py +22 -0
  343. package/__fixtures__/-2.complex.openai/images__variations__create/input.json +550 -0
  344. package/__fixtures__/-2.complex.openai/images__variations__create/output.py +22 -0
  345. package/__fixtures__/-2.complex.openai/models__delete/input.json +184 -0
  346. package/__fixtures__/-2.complex.openai/models__delete/output.py +16 -0
  347. package/__fixtures__/-2.complex.openai/models__list/input.json +221 -0
  348. package/__fixtures__/-2.complex.openai/models__list/output.py +15 -0
  349. package/__fixtures__/-2.complex.openai/models__retrieve/input.json +199 -0
  350. package/__fixtures__/-2.complex.openai/models__retrieve/output.py +16 -0
  351. package/__fixtures__/-2.complex.openai/moderations__create/input.json +831 -0
  352. package/__fixtures__/-2.complex.openai/moderations__create/output.py +16 -0
  353. package/__fixtures__/-2.complex.openai/projects__groups__roles__create/input.json +368 -0
  354. package/__fixtures__/-2.complex.openai/projects__groups__roles__create/output.py +30 -0
  355. package/__fixtures__/-2.complex.openai/projects__groups__roles__delete/input.json +214 -0
  356. package/__fixtures__/-2.complex.openai/projects__groups__roles__delete/output.py +32 -0
  357. package/__fixtures__/-2.complex.openai/projects__groups__roles__list/input.json +402 -0
  358. package/__fixtures__/-2.complex.openai/projects__groups__roles__list/output.py +33 -0
  359. package/__fixtures__/-2.complex.openai/projects__roles__create/input.json +289 -0
  360. package/__fixtures__/-2.complex.openai/projects__roles__create/output.py +24 -0
  361. package/__fixtures__/-2.complex.openai/projects__roles__delete/input.json +210 -0
  362. package/__fixtures__/-2.complex.openai/projects__roles__delete/output.py +24 -0
  363. package/__fixtures__/-2.complex.openai/projects__roles__list/input.json +344 -0
  364. package/__fixtures__/-2.complex.openai/projects__roles__list/output.py +25 -0
  365. package/__fixtures__/-2.complex.openai/projects__roles__update/input.json +300 -0
  366. package/__fixtures__/-2.complex.openai/projects__roles__update/output.py +26 -0
  367. package/__fixtures__/-2.complex.openai/projects__users__roles__create/input.json +615 -0
  368. package/__fixtures__/-2.complex.openai/projects__users__roles__create/output.py +30 -0
  369. package/__fixtures__/-2.complex.openai/projects__users__roles__delete/input.json +214 -0
  370. package/__fixtures__/-2.complex.openai/projects__users__roles__delete/output.py +32 -0
  371. package/__fixtures__/-2.complex.openai/projects__users__roles__list/input.json +402 -0
  372. package/__fixtures__/-2.complex.openai/projects__users__roles__list/output.py +33 -0
  373. package/__fixtures__/-2.complex.openai/realtime__calls__accept/input.json +1768 -0
  374. package/__fixtures__/-2.complex.openai/realtime__calls__accept/output.py +24 -0
  375. package/__fixtures__/-2.complex.openai/realtime__calls__create/input.json +1790 -0
  376. package/__fixtures__/-2.complex.openai/realtime__calls__create/output.py +22 -0
  377. package/__fixtures__/-2.complex.openai/realtime__calls__hangup/input.json +147 -0
  378. package/__fixtures__/-2.complex.openai/realtime__calls__hangup/output.py +22 -0
  379. package/__fixtures__/-2.complex.openai/realtime__calls__refer/input.json +175 -0
  380. package/__fixtures__/-2.complex.openai/realtime__calls__refer/output.py +22 -0
  381. package/__fixtures__/-2.complex.openai/realtime__calls__reject/input.json +175 -0
  382. package/__fixtures__/-2.complex.openai/realtime__calls__reject/output.py +24 -0
  383. package/__fixtures__/-2.complex.openai/realtime__client_secrets__create/input.json +2407 -0
  384. package/__fixtures__/-2.complex.openai/realtime__client_secrets__create/output.py +22 -0
  385. package/__fixtures__/-2.complex.openai/realtime__sessions__create/input.json +1400 -0
  386. package/__fixtures__/-2.complex.openai/realtime__sessions__create/output.py +22 -0
  387. package/__fixtures__/-2.complex.openai/realtime__transcription_sessions__create/input.json +562 -0
  388. package/__fixtures__/-2.complex.openai/realtime__transcription_sessions__create/output.py +22 -0
  389. package/__fixtures__/-2.complex.openai/realtime__translations__client_secrets__create/input.json +498 -0
  390. package/__fixtures__/-2.complex.openai/realtime__translations__client_secrets__create/output.py +28 -0
  391. package/__fixtures__/-2.complex.openai/responses__cancel/input.json +9526 -0
  392. package/__fixtures__/-2.complex.openai/responses__cancel/output.py +16 -0
  393. package/__fixtures__/-2.complex.openai/responses__compact__create/input.json +8721 -0
  394. package/__fixtures__/-2.complex.openai/responses__compact__create/output.py +22 -0
  395. package/__fixtures__/-2.complex.openai/responses__create/input.json +9862 -0
  396. package/__fixtures__/-2.complex.openai/responses__create/output.py +16 -0
  397. package/__fixtures__/-2.complex.openai/responses__delete/input.json +194 -0
  398. package/__fixtures__/-2.complex.openai/responses__delete/output.py +16 -0
  399. package/__fixtures__/-2.complex.openai/responses__input_items__list/input.json +6686 -0
  400. package/__fixtures__/-2.complex.openai/responses__input_items__list/output.py +25 -0
  401. package/__fixtures__/-2.complex.openai/responses__input_tokens__count/input.json +7368 -0
  402. package/__fixtures__/-2.complex.openai/responses__input_tokens__count/output.py +22 -0
  403. package/__fixtures__/-2.complex.openai/responses__retrieve/input.json +9550 -0
  404. package/__fixtures__/-2.complex.openai/responses__retrieve/output.py +18 -0
  405. package/__fixtures__/-2.complex.openai/skills__content/input.json +152 -0
  406. package/__fixtures__/-2.complex.openai/skills__content/output.py +16 -0
  407. package/__fixtures__/-2.complex.openai/skills__create/input.json +258 -0
  408. package/__fixtures__/-2.complex.openai/skills__create/output.py +14 -0
  409. package/__fixtures__/-2.complex.openai/skills__delete/input.json +186 -0
  410. package/__fixtures__/-2.complex.openai/skills__delete/output.py +16 -0
  411. package/__fixtures__/-2.complex.openai/skills__list/input.json +323 -0
  412. package/__fixtures__/-2.complex.openai/skills__list/output.py +17 -0
  413. package/__fixtures__/-2.complex.openai/skills__retrieve/input.json +226 -0
  414. package/__fixtures__/-2.complex.openai/skills__retrieve/output.py +16 -0
  415. package/__fixtures__/-2.complex.openai/skills__update/input.json +251 -0
  416. package/__fixtures__/-2.complex.openai/skills__update/output.py +16 -0
  417. package/__fixtures__/-2.complex.openai/skills__versions__content/input.json +166 -0
  418. package/__fixtures__/-2.complex.openai/skills__versions__content/output.py +24 -0
  419. package/__fixtures__/-2.complex.openai/skills__versions__create/input.json +284 -0
  420. package/__fixtures__/-2.complex.openai/skills__versions__create/output.py +24 -0
  421. package/__fixtures__/-2.complex.openai/skills__versions__delete/input.json +209 -0
  422. package/__fixtures__/-2.complex.openai/skills__versions__delete/output.py +24 -0
  423. package/__fixtures__/-2.complex.openai/skills__versions__list/input.json +341 -0
  424. package/__fixtures__/-2.complex.openai/skills__versions__list/output.py +25 -0
  425. package/__fixtures__/-2.complex.openai/skills__versions__retrieve/input.json +240 -0
  426. package/__fixtures__/-2.complex.openai/skills__versions__retrieve/output.py +24 -0
  427. package/__fixtures__/-2.complex.openai/uploads__cancel/input.json +407 -0
  428. package/__fixtures__/-2.complex.openai/uploads__cancel/output.py +16 -0
  429. package/__fixtures__/-2.complex.openai/uploads__complete/input.json +443 -0
  430. package/__fixtures__/-2.complex.openai/uploads__complete/output.py +18 -0
  431. package/__fixtures__/-2.complex.openai/uploads__create/input.json +501 -0
  432. package/__fixtures__/-2.complex.openai/uploads__create/output.py +16 -0
  433. package/__fixtures__/-2.complex.openai/uploads__parts__create/input.json +229 -0
  434. package/__fixtures__/-2.complex.openai/uploads__parts__create/output.py +24 -0
  435. package/__fixtures__/-2.complex.openai/vector_stores__create/input.json +507 -0
  436. package/__fixtures__/-2.complex.openai/vector_stores__create/output.py +16 -0
  437. package/__fixtures__/-2.complex.openai/vector_stores__delete/input.json +184 -0
  438. package/__fixtures__/-2.complex.openai/vector_stores__delete/output.py +16 -0
  439. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__cancel/input.json +300 -0
  440. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__cancel/output.py +24 -0
  441. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__create/input.json +314 -0
  442. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__create/output.py +22 -0
  443. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__list_files/input.json +571 -0
  444. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__list_files/output.py +27 -0
  445. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__retrieve/input.json +302 -0
  446. package/__fixtures__/-2.complex.openai/vector_stores__file_batches__retrieve/output.py +24 -0
  447. package/__fixtures__/-2.complex.openai/vector_stores__files__content/input.json +249 -0
  448. package/__fixtures__/-2.complex.openai/vector_stores__files__content/output.py +25 -0
  449. package/__fixtures__/-2.complex.openai/vector_stores__files__create/input.json +527 -0
  450. package/__fixtures__/-2.complex.openai/vector_stores__files__create/output.py +24 -0
  451. package/__fixtures__/-2.complex.openai/vector_stores__files__delete/input.json +198 -0
  452. package/__fixtures__/-2.complex.openai/vector_stores__files__delete/output.py +24 -0
  453. package/__fixtures__/-2.complex.openai/vector_stores__files__list/input.json +562 -0
  454. package/__fixtures__/-2.complex.openai/vector_stores__files__list/output.py +25 -0
  455. package/__fixtures__/-2.complex.openai/vector_stores__files__retrieve/input.json +432 -0
  456. package/__fixtures__/-2.complex.openai/vector_stores__files__retrieve/output.py +24 -0
  457. package/__fixtures__/-2.complex.openai/vector_stores__files__update/input.json +455 -0
  458. package/__fixtures__/-2.complex.openai/vector_stores__files__update/output.py +24 -0
  459. package/__fixtures__/-2.complex.openai/vector_stores__list/input.json +468 -0
  460. package/__fixtures__/-2.complex.openai/vector_stores__list/output.py +17 -0
  461. package/__fixtures__/-2.complex.openai/vector_stores__retrieve/input.json +366 -0
  462. package/__fixtures__/-2.complex.openai/vector_stores__retrieve/output.py +16 -0
  463. package/__fixtures__/-2.complex.openai/vector_stores__search/input.json +637 -0
  464. package/__fixtures__/-2.complex.openai/vector_stores__search/output.py +19 -0
  465. package/__fixtures__/-2.complex.openai/vector_stores__update/input.json +409 -0
  466. package/__fixtures__/-2.complex.openai/vector_stores__update/output.py +18 -0
  467. package/__fixtures__/-2.complex.openai/videos__characters__create/input.json +216 -0
  468. package/__fixtures__/-2.complex.openai/videos__characters__create/output.py +22 -0
  469. package/__fixtures__/-2.complex.openai/videos__characters__retrieve/input.json +193 -0
  470. package/__fixtures__/-2.complex.openai/videos__characters__retrieve/output.py +22 -0
  471. package/__fixtures__/-2.complex.openai/videos__create/input.json +465 -0
  472. package/__fixtures__/-2.complex.openai/videos__create/output.py +16 -0
  473. package/__fixtures__/-2.complex.openai/videos__delete/input.json +190 -0
  474. package/__fixtures__/-2.complex.openai/videos__delete/output.py +16 -0
  475. package/__fixtures__/-2.complex.openai/videos__download_content/input.json +181 -0
  476. package/__fixtures__/-2.complex.openai/videos__download_content/output.py +18 -0
  477. package/__fixtures__/-2.complex.openai/videos__edits__create/input.json +422 -0
  478. package/__fixtures__/-2.complex.openai/videos__edits__create/output.py +20 -0
  479. package/__fixtures__/-2.complex.openai/videos__extensions__create/input.json +446 -0
  480. package/__fixtures__/-2.complex.openai/videos__extensions__create/output.py +20 -0
  481. package/__fixtures__/-2.complex.openai/videos__list/input.json +477 -0
  482. package/__fixtures__/-2.complex.openai/videos__list/output.py +17 -0
  483. package/__fixtures__/-2.complex.openai/videos__remix/input.json +405 -0
  484. package/__fixtures__/-2.complex.openai/videos__remix/output.py +16 -0
  485. package/__fixtures__/-2.complex.openai/videos__retrieve/input.json +380 -0
  486. package/__fixtures__/-2.complex.openai/videos__retrieve/output.py +16 -0
  487. package/__fixtures__/1.basic/input.json +249 -0
  488. package/__fixtures__/1.basic/output/petstore/__init__.py +6 -0
  489. package/__fixtures__/1.basic/output/petstore/_client.py +21 -0
  490. package/__fixtures__/1.basic/output/petstore/_pagination.py +42 -0
  491. package/__fixtures__/1.basic/output/petstore/_transport.py +391 -0
  492. package/__fixtures__/1.basic/output/petstore/models.py +33 -0
  493. package/__fixtures__/1.basic/output/petstore/resources.py +25 -0
  494. package/__fixtures__/1.basic/output/pyproject.toml +12 -0
  495. package/__fixtures__/1.basic/output/tests/conftest.py +16 -0
  496. package/__fixtures__/1.basic/output/tests/test_pets.py +36 -0
  497. package/__fixtures__/1.basic/output/tests/utils.py +28 -0
  498. package/__fixtures__/2.wire/input.json +351 -0
  499. package/__fixtures__/2.wire/output/pyproject.toml +12 -0
  500. package/__fixtures__/2.wire/output/tests/conftest.py +16 -0
  501. package/__fixtures__/2.wire/output/tests/test_items.py +18 -0
  502. package/__fixtures__/2.wire/output/tests/test_tokens.py +17 -0
  503. package/__fixtures__/2.wire/output/tests/test_uploads.py +27 -0
  504. package/__fixtures__/2.wire/output/tests/utils.py +28 -0
  505. package/__fixtures__/2.wire/output/wire_service/__init__.py +6 -0
  506. package/__fixtures__/2.wire/output/wire_service/_client.py +23 -0
  507. package/__fixtures__/2.wire/output/wire_service/_pagination.py +42 -0
  508. package/__fixtures__/2.wire/output/wire_service/_transport.py +391 -0
  509. package/__fixtures__/2.wire/output/wire_service/models.py +44 -0
  510. package/__fixtures__/2.wire/output/wire_service/resources.py +38 -0
  511. package/__tests__/docs.test.ts +115 -0
  512. package/__tests__/e2e/harness.ts +79 -0
  513. package/__tests__/e2e/openai.test.ts +14 -0
  514. package/__tests__/e2e/publish.test.ts +19 -0
  515. package/__tests__/opensdk-python.test.ts +134 -0
  516. package/__tests__/utils.ts +117 -0
  517. package/biome.json +25 -0
  518. package/dist/index.cjs +1274 -0
  519. package/dist/index.cjs.map +1 -0
  520. package/dist/index.d.cts +32 -0
  521. package/dist/index.d.ts +32 -0
  522. package/dist/index.js +1246 -0
  523. package/dist/index.js.map +1 -0
  524. package/index.ts +1 -0
  525. package/package.json +30 -0
  526. package/src/emitter.ts +95 -0
  527. package/src/example-py.ts +60 -0
  528. package/src/index.ts +4 -0
  529. package/src/method.ts +13 -0
  530. package/src/naming.ts +45 -0
  531. package/src/project.ts +446 -0
  532. package/src/publish.ts +22 -0
  533. package/src/pytype.ts +86 -0
  534. package/src/runtime.ts +551 -0
  535. package/src/tests-py.ts +197 -0
  536. package/src/types.ts +8 -0
  537. package/tsconfig.json +18 -0
  538. package/tsup.config.ts +19 -0
  539. package/vitest.config.ts +8 -0
@@ -0,0 +1,1887 @@
1
+ {
2
+ "opensdk": "1.0.0",
3
+ "info": {
4
+ "title": "openai",
5
+ "version": "2.3.0"
6
+ },
7
+ "servers": [
8
+ "https://api.openai.com/v1"
9
+ ],
10
+ "security": [
11
+ {
12
+ "type": "http",
13
+ "kind": "bearer",
14
+ "schemeName": "ApiKeyAuth",
15
+ "envVar": "OPENAI_API_KEY",
16
+ "scheme": "bearer"
17
+ },
18
+ {
19
+ "type": "http",
20
+ "kind": "bearer",
21
+ "schemeName": "AdminApiKeyAuth",
22
+ "envVar": "OPENAI_API_KEY",
23
+ "scheme": "bearer"
24
+ }
25
+ ],
26
+ "types": [
27
+ {
28
+ "name": "CreateFineTuningJobRequest",
29
+ "kind": "struct",
30
+ "fields": [
31
+ {
32
+ "name": "model",
33
+ "type": {
34
+ "kind": "ref",
35
+ "name": "CreateFineTuningJobRequestModel"
36
+ },
37
+ "required": true,
38
+ "description": "The name of the model to fine-tune. You can select one of the\n[supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned).\n"
39
+ },
40
+ {
41
+ "name": "training_file",
42
+ "type": {
43
+ "kind": "scalar",
44
+ "scalar": "string"
45
+ },
46
+ "required": true,
47
+ "description": "The ID of an uploaded file that contains training data.\n\nSee [upload file](/docs/api-reference/files/create) for how to upload a file.\n\nYour dataset must be formatted as a JSONL file. Additionally, you must upload your file with the purpose `fine-tune`.\n\nThe contents of the file should differ depending on if the model uses the [chat](/docs/api-reference/fine-tuning/chat-input), [completions](/docs/api-reference/fine-tuning/completions-input) format, or if the fine-tuning method uses the [preference](/docs/api-reference/fine-tuning/preference-input) format.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details.\n"
48
+ },
49
+ {
50
+ "name": "hyperparameters",
51
+ "type": {
52
+ "kind": "ref",
53
+ "name": "CreateFineTuningJobRequestHyperparameters"
54
+ },
55
+ "required": false,
56
+ "deprecated": true,
57
+ "description": "The hyperparameters used for the fine-tuning job.\nThis value is now deprecated in favor of `method`, and should be passed in under the `method` parameter.\n"
58
+ },
59
+ {
60
+ "name": "suffix",
61
+ "type": {
62
+ "kind": "scalar",
63
+ "scalar": "string",
64
+ "nullable": true
65
+ },
66
+ "required": false,
67
+ "nullable": true,
68
+ "default": null,
69
+ "description": "A string of up to 64 characters that will be added to your fine-tuned model name.\n\nFor example, a `suffix` of \"custom-model-name\" would produce a model name like `ft:gpt-4o-mini:openai:custom-model-name:7p4lURel`.\n"
70
+ },
71
+ {
72
+ "name": "validation_file",
73
+ "type": {
74
+ "kind": "scalar",
75
+ "scalar": "string",
76
+ "nullable": true
77
+ },
78
+ "required": false,
79
+ "nullable": true,
80
+ "description": "The ID of an uploaded file that contains validation data.\n\nIf you provide this file, the data is used to generate validation\nmetrics periodically during fine-tuning. These metrics can be viewed in\nthe fine-tuning results file.\nThe same data should not be present in both train and validation files.\n\nYour dataset must be formatted as a JSONL file. You must upload your file with the purpose `fine-tune`.\n\nSee the [fine-tuning guide](/docs/guides/model-optimization) for more details.\n"
81
+ },
82
+ {
83
+ "name": "integrations",
84
+ "type": {
85
+ "kind": "array",
86
+ "items": {
87
+ "kind": "ref",
88
+ "name": "CreateFineTuningJobRequestIntegrationsItem"
89
+ },
90
+ "nullable": true
91
+ },
92
+ "required": false,
93
+ "nullable": true,
94
+ "description": "A list of integrations to enable for your fine-tuning job."
95
+ },
96
+ {
97
+ "name": "seed",
98
+ "type": {
99
+ "kind": "scalar",
100
+ "scalar": "integer",
101
+ "nullable": true
102
+ },
103
+ "required": false,
104
+ "nullable": true,
105
+ "description": "The seed controls the reproducibility of the job. Passing in the same seed and job parameters should produce the same results, but may differ in rare cases.\nIf a seed is not specified, one will be generated for you.\n"
106
+ },
107
+ {
108
+ "name": "method",
109
+ "type": {
110
+ "kind": "ref",
111
+ "name": "FineTuneMethod"
112
+ },
113
+ "required": false
114
+ },
115
+ {
116
+ "name": "metadata",
117
+ "type": {
118
+ "kind": "ref",
119
+ "name": "Metadata"
120
+ },
121
+ "required": false
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "name": "CreateFineTuningJobRequestModel",
127
+ "kind": "union",
128
+ "semantics": "anyOf",
129
+ "variants": [
130
+ {
131
+ "kind": "scalar",
132
+ "scalar": "string"
133
+ },
134
+ {
135
+ "kind": "ref",
136
+ "name": "CreateFineTuningJobRequestModelString"
137
+ }
138
+ ],
139
+ "description": "The name of the model to fine-tune. You can select one of the\n[supported models](/docs/guides/fine-tuning#which-models-can-be-fine-tuned).\n"
140
+ },
141
+ {
142
+ "name": "CreateFineTuningJobRequestModelString",
143
+ "kind": "enum",
144
+ "base": "string",
145
+ "values": [
146
+ {
147
+ "value": "babbage-002"
148
+ },
149
+ {
150
+ "value": "davinci-002"
151
+ },
152
+ {
153
+ "value": "gpt-3.5-turbo"
154
+ },
155
+ {
156
+ "value": "gpt-4o-mini"
157
+ }
158
+ ]
159
+ },
160
+ {
161
+ "name": "CreateFineTuningJobRequestHyperparameters",
162
+ "kind": "struct",
163
+ "fields": [
164
+ {
165
+ "name": "batch_size",
166
+ "type": {
167
+ "kind": "ref",
168
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
169
+ },
170
+ "required": false,
171
+ "default": "auto",
172
+ "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.\n"
173
+ },
174
+ {
175
+ "name": "learning_rate_multiplier",
176
+ "type": {
177
+ "kind": "ref",
178
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
179
+ },
180
+ "required": false,
181
+ "default": "auto",
182
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.\n"
183
+ },
184
+ {
185
+ "name": "n_epochs",
186
+ "type": {
187
+ "kind": "ref",
188
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
189
+ },
190
+ "required": false,
191
+ "default": "auto",
192
+ "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.\n"
193
+ }
194
+ ],
195
+ "description": "The hyperparameters used for the fine-tuning job.\nThis value is now deprecated in favor of `method`, and should be passed in under the `method` parameter.\n"
196
+ },
197
+ {
198
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize",
199
+ "kind": "union",
200
+ "semantics": "oneOf",
201
+ "variants": [
202
+ {
203
+ "kind": "scalar",
204
+ "scalar": "string",
205
+ "const": "auto"
206
+ },
207
+ {
208
+ "kind": "scalar",
209
+ "scalar": "integer"
210
+ }
211
+ ],
212
+ "description": "Number of examples in each batch. A larger batch size means that model parameters\nare updated less frequently, but with lower variance.\n"
213
+ },
214
+ {
215
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier",
216
+ "kind": "union",
217
+ "semantics": "oneOf",
218
+ "variants": [
219
+ {
220
+ "kind": "scalar",
221
+ "scalar": "string",
222
+ "const": "auto"
223
+ },
224
+ {
225
+ "kind": "scalar",
226
+ "scalar": "number"
227
+ }
228
+ ],
229
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.\n"
230
+ },
231
+ {
232
+ "name": "CreateFineTuningJobRequestIntegrationsItem",
233
+ "kind": "struct",
234
+ "fields": [
235
+ {
236
+ "name": "type",
237
+ "type": {
238
+ "kind": "scalar",
239
+ "scalar": "string",
240
+ "const": "wandb"
241
+ },
242
+ "required": true,
243
+ "description": "The type of integration to enable. Currently, only \"wandb\" (Weights and Biases) is supported.\n"
244
+ },
245
+ {
246
+ "name": "wandb",
247
+ "type": {
248
+ "kind": "ref",
249
+ "name": "CreateFineTuningJobRequestIntegrationsItemWandb"
250
+ },
251
+ "required": true,
252
+ "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run.\n"
253
+ }
254
+ ]
255
+ },
256
+ {
257
+ "name": "CreateFineTuningJobRequestIntegrationsItemWandb",
258
+ "kind": "struct",
259
+ "fields": [
260
+ {
261
+ "name": "project",
262
+ "type": {
263
+ "kind": "scalar",
264
+ "scalar": "string"
265
+ },
266
+ "required": true,
267
+ "description": "The name of the project that the new run will be created under.\n"
268
+ },
269
+ {
270
+ "name": "name",
271
+ "type": {
272
+ "kind": "scalar",
273
+ "scalar": "string",
274
+ "nullable": true
275
+ },
276
+ "required": false,
277
+ "nullable": true,
278
+ "description": "A display name to set for the run. If not set, we will use the Job ID as the name.\n"
279
+ },
280
+ {
281
+ "name": "entity",
282
+ "type": {
283
+ "kind": "scalar",
284
+ "scalar": "string",
285
+ "nullable": true
286
+ },
287
+ "required": false,
288
+ "nullable": true,
289
+ "description": "The entity to use for the run. This allows you to set the team or username of the WandB user that you would\nlike associated with the run. If not set, the default entity for the registered WandB API key is used.\n"
290
+ },
291
+ {
292
+ "name": "tags",
293
+ "type": {
294
+ "kind": "array",
295
+ "items": {
296
+ "kind": "scalar",
297
+ "scalar": "string"
298
+ }
299
+ },
300
+ "required": false,
301
+ "description": "A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some\ndefault tags are generated by OpenAI: \"openai/finetune\", \"openai/{base-model}\", \"openai/{ftjob-abcdef}\".\n"
302
+ }
303
+ ],
304
+ "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run.\n"
305
+ },
306
+ {
307
+ "name": "FineTuneMethod",
308
+ "kind": "struct",
309
+ "fields": [
310
+ {
311
+ "name": "type",
312
+ "type": {
313
+ "kind": "ref",
314
+ "name": "FineTuneMethodType"
315
+ },
316
+ "required": true,
317
+ "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`."
318
+ },
319
+ {
320
+ "name": "supervised",
321
+ "type": {
322
+ "kind": "ref",
323
+ "name": "FineTuneSupervisedMethod"
324
+ },
325
+ "required": false
326
+ },
327
+ {
328
+ "name": "dpo",
329
+ "type": {
330
+ "kind": "ref",
331
+ "name": "FineTuneDpoMethod"
332
+ },
333
+ "required": false
334
+ },
335
+ {
336
+ "name": "reinforcement",
337
+ "type": {
338
+ "kind": "ref",
339
+ "name": "FineTuneReinforcementMethod"
340
+ },
341
+ "required": false
342
+ }
343
+ ],
344
+ "description": "The method used for fine-tuning."
345
+ },
346
+ {
347
+ "name": "FineTuneMethodType",
348
+ "kind": "enum",
349
+ "base": "string",
350
+ "values": [
351
+ {
352
+ "value": "supervised"
353
+ },
354
+ {
355
+ "value": "dpo"
356
+ },
357
+ {
358
+ "value": "reinforcement"
359
+ }
360
+ ],
361
+ "description": "The type of method. Is either `supervised`, `dpo`, or `reinforcement`."
362
+ },
363
+ {
364
+ "name": "FineTuneSupervisedMethod",
365
+ "kind": "struct",
366
+ "fields": [
367
+ {
368
+ "name": "hyperparameters",
369
+ "type": {
370
+ "kind": "ref",
371
+ "name": "FineTuneSupervisedHyperparameters"
372
+ },
373
+ "required": false
374
+ }
375
+ ],
376
+ "description": "Configuration for the supervised fine-tuning method."
377
+ },
378
+ {
379
+ "name": "FineTuneSupervisedHyperparameters",
380
+ "kind": "struct",
381
+ "fields": [
382
+ {
383
+ "name": "batch_size",
384
+ "type": {
385
+ "kind": "ref",
386
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
387
+ },
388
+ "required": false,
389
+ "default": "auto",
390
+ "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.\n"
391
+ },
392
+ {
393
+ "name": "learning_rate_multiplier",
394
+ "type": {
395
+ "kind": "ref",
396
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
397
+ },
398
+ "required": false,
399
+ "default": "auto",
400
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.\n"
401
+ },
402
+ {
403
+ "name": "n_epochs",
404
+ "type": {
405
+ "kind": "ref",
406
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
407
+ },
408
+ "required": false,
409
+ "default": "auto",
410
+ "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.\n"
411
+ }
412
+ ],
413
+ "description": "The hyperparameters used for the fine-tuning job."
414
+ },
415
+ {
416
+ "name": "FineTuneDpoMethod",
417
+ "kind": "struct",
418
+ "fields": [
419
+ {
420
+ "name": "hyperparameters",
421
+ "type": {
422
+ "kind": "ref",
423
+ "name": "FineTuneDpoHyperparameters"
424
+ },
425
+ "required": false
426
+ }
427
+ ],
428
+ "description": "Configuration for the DPO fine-tuning method."
429
+ },
430
+ {
431
+ "name": "FineTuneDpoHyperparameters",
432
+ "kind": "struct",
433
+ "fields": [
434
+ {
435
+ "name": "beta",
436
+ "type": {
437
+ "kind": "ref",
438
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
439
+ },
440
+ "required": false,
441
+ "default": "auto",
442
+ "description": "The beta value for the DPO method. A higher beta value will increase the weight of the penalty between the policy and reference model.\n"
443
+ },
444
+ {
445
+ "name": "batch_size",
446
+ "type": {
447
+ "kind": "ref",
448
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
449
+ },
450
+ "required": false,
451
+ "default": "auto",
452
+ "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.\n"
453
+ },
454
+ {
455
+ "name": "learning_rate_multiplier",
456
+ "type": {
457
+ "kind": "ref",
458
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
459
+ },
460
+ "required": false,
461
+ "default": "auto",
462
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.\n"
463
+ },
464
+ {
465
+ "name": "n_epochs",
466
+ "type": {
467
+ "kind": "ref",
468
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
469
+ },
470
+ "required": false,
471
+ "default": "auto",
472
+ "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.\n"
473
+ }
474
+ ],
475
+ "description": "The hyperparameters used for the DPO fine-tuning job."
476
+ },
477
+ {
478
+ "name": "FineTuneReinforcementMethod",
479
+ "kind": "struct",
480
+ "fields": [
481
+ {
482
+ "name": "grader",
483
+ "type": {
484
+ "kind": "ref",
485
+ "name": "FineTuneReinforcementMethodGrader"
486
+ },
487
+ "required": true,
488
+ "description": "The grader used for the fine-tuning job."
489
+ },
490
+ {
491
+ "name": "hyperparameters",
492
+ "type": {
493
+ "kind": "ref",
494
+ "name": "FineTuneReinforcementHyperparameters"
495
+ },
496
+ "required": false
497
+ }
498
+ ],
499
+ "description": "Configuration for the reinforcement fine-tuning method."
500
+ },
501
+ {
502
+ "name": "FineTuneReinforcementMethodGrader",
503
+ "kind": "union",
504
+ "semantics": "oneOf",
505
+ "variants": [
506
+ {
507
+ "kind": "ref",
508
+ "name": "GraderStringCheck"
509
+ },
510
+ {
511
+ "kind": "ref",
512
+ "name": "GraderTextSimilarity"
513
+ },
514
+ {
515
+ "kind": "ref",
516
+ "name": "GraderPython"
517
+ },
518
+ {
519
+ "kind": "ref",
520
+ "name": "GraderScoreModel"
521
+ },
522
+ {
523
+ "kind": "ref",
524
+ "name": "GraderMulti"
525
+ }
526
+ ],
527
+ "description": "The grader used for the fine-tuning job."
528
+ },
529
+ {
530
+ "name": "GraderStringCheck",
531
+ "kind": "struct",
532
+ "fields": [
533
+ {
534
+ "name": "type",
535
+ "type": {
536
+ "kind": "scalar",
537
+ "scalar": "string",
538
+ "const": "string_check"
539
+ },
540
+ "required": true,
541
+ "description": "The object type, which is always `string_check`."
542
+ },
543
+ {
544
+ "name": "name",
545
+ "type": {
546
+ "kind": "scalar",
547
+ "scalar": "string"
548
+ },
549
+ "required": true,
550
+ "description": "The name of the grader."
551
+ },
552
+ {
553
+ "name": "input",
554
+ "type": {
555
+ "kind": "scalar",
556
+ "scalar": "string"
557
+ },
558
+ "required": true,
559
+ "description": "The input text. This may include template strings."
560
+ },
561
+ {
562
+ "name": "reference",
563
+ "type": {
564
+ "kind": "scalar",
565
+ "scalar": "string"
566
+ },
567
+ "required": true,
568
+ "description": "The reference text. This may include template strings."
569
+ },
570
+ {
571
+ "name": "operation",
572
+ "type": {
573
+ "kind": "ref",
574
+ "name": "GraderStringCheckOperation"
575
+ },
576
+ "required": true,
577
+ "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`."
578
+ }
579
+ ],
580
+ "description": "A StringCheckGrader object that performs a string comparison between input and reference using a specified operation.\n"
581
+ },
582
+ {
583
+ "name": "GraderStringCheckOperation",
584
+ "kind": "enum",
585
+ "base": "string",
586
+ "values": [
587
+ {
588
+ "value": "eq"
589
+ },
590
+ {
591
+ "value": "ne"
592
+ },
593
+ {
594
+ "value": "like"
595
+ },
596
+ {
597
+ "value": "ilike"
598
+ }
599
+ ],
600
+ "description": "The string check operation to perform. One of `eq`, `ne`, `like`, or `ilike`."
601
+ },
602
+ {
603
+ "name": "GraderTextSimilarity",
604
+ "kind": "struct",
605
+ "fields": [
606
+ {
607
+ "name": "type",
608
+ "type": {
609
+ "kind": "scalar",
610
+ "scalar": "string",
611
+ "const": "text_similarity"
612
+ },
613
+ "required": true,
614
+ "default": "text_similarity",
615
+ "description": "The type of grader."
616
+ },
617
+ {
618
+ "name": "name",
619
+ "type": {
620
+ "kind": "scalar",
621
+ "scalar": "string"
622
+ },
623
+ "required": true,
624
+ "description": "The name of the grader."
625
+ },
626
+ {
627
+ "name": "input",
628
+ "type": {
629
+ "kind": "scalar",
630
+ "scalar": "string"
631
+ },
632
+ "required": true,
633
+ "description": "The text being graded."
634
+ },
635
+ {
636
+ "name": "reference",
637
+ "type": {
638
+ "kind": "scalar",
639
+ "scalar": "string"
640
+ },
641
+ "required": true,
642
+ "description": "The text being graded against."
643
+ },
644
+ {
645
+ "name": "evaluation_metric",
646
+ "type": {
647
+ "kind": "ref",
648
+ "name": "GraderTextSimilarityEvaluationMetric"
649
+ },
650
+ "required": true,
651
+ "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, \n`gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, \nor `rouge_l`.\n"
652
+ }
653
+ ],
654
+ "description": "A TextSimilarityGrader object which grades text based on similarity metrics.\n"
655
+ },
656
+ {
657
+ "name": "GraderTextSimilarityEvaluationMetric",
658
+ "kind": "enum",
659
+ "base": "string",
660
+ "values": [
661
+ {
662
+ "value": "cosine"
663
+ },
664
+ {
665
+ "value": "fuzzy_match"
666
+ },
667
+ {
668
+ "value": "bleu"
669
+ },
670
+ {
671
+ "value": "gleu"
672
+ },
673
+ {
674
+ "value": "meteor"
675
+ },
676
+ {
677
+ "value": "rouge_1"
678
+ },
679
+ {
680
+ "value": "rouge_2"
681
+ },
682
+ {
683
+ "value": "rouge_3"
684
+ },
685
+ {
686
+ "value": "rouge_4"
687
+ },
688
+ {
689
+ "value": "rouge_5"
690
+ },
691
+ {
692
+ "value": "rouge_l"
693
+ }
694
+ ],
695
+ "description": "The evaluation metric to use. One of `cosine`, `fuzzy_match`, `bleu`, \n`gleu`, `meteor`, `rouge_1`, `rouge_2`, `rouge_3`, `rouge_4`, `rouge_5`, \nor `rouge_l`.\n"
696
+ },
697
+ {
698
+ "name": "GraderPython",
699
+ "kind": "struct",
700
+ "fields": [
701
+ {
702
+ "name": "type",
703
+ "type": {
704
+ "kind": "scalar",
705
+ "scalar": "string",
706
+ "const": "python"
707
+ },
708
+ "required": true,
709
+ "description": "The object type, which is always `python`."
710
+ },
711
+ {
712
+ "name": "name",
713
+ "type": {
714
+ "kind": "scalar",
715
+ "scalar": "string"
716
+ },
717
+ "required": true,
718
+ "description": "The name of the grader."
719
+ },
720
+ {
721
+ "name": "source",
722
+ "type": {
723
+ "kind": "scalar",
724
+ "scalar": "string"
725
+ },
726
+ "required": true,
727
+ "description": "The source code of the python script."
728
+ },
729
+ {
730
+ "name": "image_tag",
731
+ "type": {
732
+ "kind": "scalar",
733
+ "scalar": "string"
734
+ },
735
+ "required": false,
736
+ "description": "The image tag to use for the python script."
737
+ }
738
+ ],
739
+ "description": "A PythonGrader object that runs a python script on the input.\n"
740
+ },
741
+ {
742
+ "name": "GraderScoreModel",
743
+ "kind": "struct",
744
+ "fields": [
745
+ {
746
+ "name": "type",
747
+ "type": {
748
+ "kind": "scalar",
749
+ "scalar": "string",
750
+ "const": "score_model"
751
+ },
752
+ "required": true,
753
+ "description": "The object type, which is always `score_model`."
754
+ },
755
+ {
756
+ "name": "name",
757
+ "type": {
758
+ "kind": "scalar",
759
+ "scalar": "string"
760
+ },
761
+ "required": true,
762
+ "description": "The name of the grader."
763
+ },
764
+ {
765
+ "name": "model",
766
+ "type": {
767
+ "kind": "scalar",
768
+ "scalar": "string"
769
+ },
770
+ "required": true,
771
+ "description": "The model to use for the evaluation."
772
+ },
773
+ {
774
+ "name": "sampling_params",
775
+ "type": {
776
+ "kind": "ref",
777
+ "name": "GraderScoreModelSamplingParams"
778
+ },
779
+ "required": false,
780
+ "description": "The sampling parameters for the model."
781
+ },
782
+ {
783
+ "name": "input",
784
+ "type": {
785
+ "kind": "array",
786
+ "items": {
787
+ "kind": "ref",
788
+ "name": "EvalItem"
789
+ }
790
+ },
791
+ "required": true,
792
+ "description": "The input messages evaluated by the grader. Supports text, output text, input image, and input audio content blocks, and may include template strings.\n"
793
+ },
794
+ {
795
+ "name": "range",
796
+ "type": {
797
+ "kind": "array",
798
+ "items": {
799
+ "kind": "scalar",
800
+ "scalar": "number"
801
+ }
802
+ },
803
+ "required": false,
804
+ "description": "The range of the score. Defaults to `[0, 1]`."
805
+ }
806
+ ],
807
+ "description": "A ScoreModelGrader object that uses a model to assign a score to the input.\n"
808
+ },
809
+ {
810
+ "name": "GraderScoreModelSamplingParams",
811
+ "kind": "struct",
812
+ "fields": [
813
+ {
814
+ "name": "seed",
815
+ "type": {
816
+ "kind": "scalar",
817
+ "scalar": "integer",
818
+ "nullable": true
819
+ },
820
+ "required": false
821
+ },
822
+ {
823
+ "name": "top_p",
824
+ "type": {
825
+ "kind": "scalar",
826
+ "scalar": "number",
827
+ "nullable": true
828
+ },
829
+ "required": false
830
+ },
831
+ {
832
+ "name": "temperature",
833
+ "type": {
834
+ "kind": "scalar",
835
+ "scalar": "number",
836
+ "nullable": true
837
+ },
838
+ "required": false
839
+ },
840
+ {
841
+ "name": "max_completions_tokens",
842
+ "type": {
843
+ "kind": "scalar",
844
+ "scalar": "integer",
845
+ "nullable": true
846
+ },
847
+ "required": false
848
+ },
849
+ {
850
+ "name": "reasoning_effort",
851
+ "type": {
852
+ "kind": "ref",
853
+ "name": "ReasoningEffort"
854
+ },
855
+ "required": false
856
+ }
857
+ ],
858
+ "description": "The sampling parameters for the model."
859
+ },
860
+ {
861
+ "name": "ReasoningEffort",
862
+ "kind": "enum",
863
+ "base": "string",
864
+ "values": [
865
+ {
866
+ "value": "none"
867
+ },
868
+ {
869
+ "value": "minimal"
870
+ },
871
+ {
872
+ "value": "low"
873
+ },
874
+ {
875
+ "value": "medium"
876
+ },
877
+ {
878
+ "value": "high"
879
+ },
880
+ {
881
+ "value": "xhigh"
882
+ }
883
+ ],
884
+ "description": "Constrains effort on reasoning for\n[reasoning models](https://platform.openai.com/docs/guides/reasoning).\nCurrently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing\nreasoning effort can result in faster responses and fewer tokens used\non reasoning in a response.\n\n- `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1.\n- All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`.\n- The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.\n- `xhigh` is supported for all models after `gpt-5.1-codex-max`.\n"
885
+ },
886
+ {
887
+ "name": "EvalItem",
888
+ "kind": "struct",
889
+ "fields": [
890
+ {
891
+ "name": "role",
892
+ "type": {
893
+ "kind": "ref",
894
+ "name": "EvalItemRole"
895
+ },
896
+ "required": true,
897
+ "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n`developer`.\n"
898
+ },
899
+ {
900
+ "name": "content",
901
+ "type": {
902
+ "kind": "ref",
903
+ "name": "EvalItemContent"
904
+ },
905
+ "required": true
906
+ },
907
+ {
908
+ "name": "type",
909
+ "type": {
910
+ "kind": "scalar",
911
+ "scalar": "string",
912
+ "const": "message"
913
+ },
914
+ "required": false,
915
+ "description": "The type of the message input. Always `message`.\n"
916
+ }
917
+ ],
918
+ "description": "A message input to the model with a role indicating instruction following\nhierarchy. Instructions given with the `developer` or `system` role take\nprecedence over instructions given with the `user` role. Messages with the\n`assistant` role are presumed to have been generated by the model in previous\ninteractions.\n"
919
+ },
920
+ {
921
+ "name": "EvalItemRole",
922
+ "kind": "enum",
923
+ "base": "string",
924
+ "values": [
925
+ {
926
+ "value": "user"
927
+ },
928
+ {
929
+ "value": "assistant"
930
+ },
931
+ {
932
+ "value": "system"
933
+ },
934
+ {
935
+ "value": "developer"
936
+ }
937
+ ],
938
+ "description": "The role of the message input. One of `user`, `assistant`, `system`, or\n`developer`.\n"
939
+ },
940
+ {
941
+ "name": "EvalItemContent",
942
+ "kind": "union",
943
+ "semantics": "oneOf",
944
+ "variants": [
945
+ {
946
+ "kind": "ref",
947
+ "name": "EvalItemContentItem"
948
+ },
949
+ {
950
+ "kind": "ref",
951
+ "name": "EvalItemContentArray"
952
+ }
953
+ ],
954
+ "description": "Inputs to the model - can contain template strings. Supports text, output text, input images, and input audio, either as a single item or an array of items.\n"
955
+ },
956
+ {
957
+ "name": "EvalItemContentItem",
958
+ "kind": "union",
959
+ "semantics": "oneOf",
960
+ "variants": [
961
+ {
962
+ "kind": "ref",
963
+ "name": "EvalItemContentText"
964
+ },
965
+ {
966
+ "kind": "ref",
967
+ "name": "InputTextContent"
968
+ },
969
+ {
970
+ "kind": "ref",
971
+ "name": "EvalItemContentOutputText"
972
+ },
973
+ {
974
+ "kind": "ref",
975
+ "name": "EvalItemInputImage"
976
+ },
977
+ {
978
+ "kind": "ref",
979
+ "name": "InputAudio"
980
+ }
981
+ ],
982
+ "description": "A single content item: input text, output text, input image, or input audio.\n"
983
+ },
984
+ {
985
+ "name": "EvalItemContentText",
986
+ "kind": "alias",
987
+ "of": {
988
+ "kind": "scalar",
989
+ "scalar": "string"
990
+ }
991
+ },
992
+ {
993
+ "name": "InputTextContent",
994
+ "kind": "struct",
995
+ "fields": [
996
+ {
997
+ "name": "type",
998
+ "type": {
999
+ "kind": "scalar",
1000
+ "scalar": "string",
1001
+ "const": "input_text"
1002
+ },
1003
+ "required": true,
1004
+ "default": "input_text",
1005
+ "description": "The type of the input item. Always `input_text`."
1006
+ },
1007
+ {
1008
+ "name": "text",
1009
+ "type": {
1010
+ "kind": "scalar",
1011
+ "scalar": "string"
1012
+ },
1013
+ "required": true,
1014
+ "description": "The text input to the model."
1015
+ }
1016
+ ],
1017
+ "description": "A text input to the model."
1018
+ },
1019
+ {
1020
+ "name": "EvalItemContentOutputText",
1021
+ "kind": "struct",
1022
+ "fields": [
1023
+ {
1024
+ "name": "type",
1025
+ "type": {
1026
+ "kind": "scalar",
1027
+ "scalar": "string",
1028
+ "const": "output_text"
1029
+ },
1030
+ "required": true,
1031
+ "description": "The type of the output text. Always `output_text`.\n"
1032
+ },
1033
+ {
1034
+ "name": "text",
1035
+ "type": {
1036
+ "kind": "scalar",
1037
+ "scalar": "string"
1038
+ },
1039
+ "required": true,
1040
+ "description": "The text output from the model.\n"
1041
+ }
1042
+ ],
1043
+ "description": "A text output from the model.\n"
1044
+ },
1045
+ {
1046
+ "name": "EvalItemInputImage",
1047
+ "kind": "struct",
1048
+ "fields": [
1049
+ {
1050
+ "name": "type",
1051
+ "type": {
1052
+ "kind": "scalar",
1053
+ "scalar": "string",
1054
+ "const": "input_image"
1055
+ },
1056
+ "required": true,
1057
+ "description": "The type of the image input. Always `input_image`.\n"
1058
+ },
1059
+ {
1060
+ "name": "image_url",
1061
+ "type": {
1062
+ "kind": "scalar",
1063
+ "scalar": "string",
1064
+ "format": "uri"
1065
+ },
1066
+ "required": true,
1067
+ "description": "The URL of the image input.\n"
1068
+ },
1069
+ {
1070
+ "name": "detail",
1071
+ "type": {
1072
+ "kind": "scalar",
1073
+ "scalar": "string"
1074
+ },
1075
+ "required": false,
1076
+ "description": "The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`.\n"
1077
+ }
1078
+ ],
1079
+ "description": "An image input block used within EvalItem content arrays."
1080
+ },
1081
+ {
1082
+ "name": "InputAudio",
1083
+ "kind": "struct",
1084
+ "fields": [
1085
+ {
1086
+ "name": "type",
1087
+ "type": {
1088
+ "kind": "scalar",
1089
+ "scalar": "string",
1090
+ "const": "input_audio"
1091
+ },
1092
+ "required": true,
1093
+ "description": "The type of the input item. Always `input_audio`.\n"
1094
+ },
1095
+ {
1096
+ "name": "input_audio",
1097
+ "type": {
1098
+ "kind": "ref",
1099
+ "name": "InputAudioInputAudio"
1100
+ },
1101
+ "required": true
1102
+ }
1103
+ ],
1104
+ "description": "An audio input to the model.\n"
1105
+ },
1106
+ {
1107
+ "name": "InputAudioInputAudio",
1108
+ "kind": "struct",
1109
+ "fields": [
1110
+ {
1111
+ "name": "data",
1112
+ "type": {
1113
+ "kind": "scalar",
1114
+ "scalar": "string"
1115
+ },
1116
+ "required": true,
1117
+ "description": "Base64-encoded audio data.\n"
1118
+ },
1119
+ {
1120
+ "name": "format",
1121
+ "type": {
1122
+ "kind": "ref",
1123
+ "name": "InputAudioInputAudioFormat"
1124
+ },
1125
+ "required": true,
1126
+ "description": "The format of the audio data. Currently supported formats are `mp3` and\n`wav`.\n"
1127
+ }
1128
+ ]
1129
+ },
1130
+ {
1131
+ "name": "InputAudioInputAudioFormat",
1132
+ "kind": "enum",
1133
+ "base": "string",
1134
+ "values": [
1135
+ {
1136
+ "value": "mp3"
1137
+ },
1138
+ {
1139
+ "value": "wav"
1140
+ }
1141
+ ],
1142
+ "description": "The format of the audio data. Currently supported formats are `mp3` and\n`wav`.\n"
1143
+ },
1144
+ {
1145
+ "name": "EvalItemContentArray",
1146
+ "kind": "alias",
1147
+ "of": {
1148
+ "kind": "array",
1149
+ "items": {
1150
+ "kind": "ref",
1151
+ "name": "EvalItemContentItem"
1152
+ }
1153
+ }
1154
+ },
1155
+ {
1156
+ "name": "GraderMulti",
1157
+ "kind": "struct",
1158
+ "fields": [
1159
+ {
1160
+ "name": "type",
1161
+ "type": {
1162
+ "kind": "scalar",
1163
+ "scalar": "string",
1164
+ "const": "multi"
1165
+ },
1166
+ "required": true,
1167
+ "default": "multi",
1168
+ "description": "The object type, which is always `multi`."
1169
+ },
1170
+ {
1171
+ "name": "name",
1172
+ "type": {
1173
+ "kind": "scalar",
1174
+ "scalar": "string"
1175
+ },
1176
+ "required": true,
1177
+ "description": "The name of the grader."
1178
+ },
1179
+ {
1180
+ "name": "graders",
1181
+ "type": {
1182
+ "kind": "ref",
1183
+ "name": "GraderMultiGraders"
1184
+ },
1185
+ "required": true
1186
+ },
1187
+ {
1188
+ "name": "calculate_output",
1189
+ "type": {
1190
+ "kind": "scalar",
1191
+ "scalar": "string"
1192
+ },
1193
+ "required": true,
1194
+ "description": "A formula to calculate the output based on grader results."
1195
+ }
1196
+ ],
1197
+ "description": "A MultiGrader object combines the output of multiple graders to produce a single score."
1198
+ },
1199
+ {
1200
+ "name": "GraderMultiGraders",
1201
+ "kind": "union",
1202
+ "semantics": "oneOf",
1203
+ "variants": [
1204
+ {
1205
+ "kind": "ref",
1206
+ "name": "GraderStringCheck"
1207
+ },
1208
+ {
1209
+ "kind": "ref",
1210
+ "name": "GraderTextSimilarity"
1211
+ },
1212
+ {
1213
+ "kind": "ref",
1214
+ "name": "GraderPython"
1215
+ },
1216
+ {
1217
+ "kind": "ref",
1218
+ "name": "GraderScoreModel"
1219
+ },
1220
+ {
1221
+ "kind": "ref",
1222
+ "name": "GraderLabelModel"
1223
+ }
1224
+ ]
1225
+ },
1226
+ {
1227
+ "name": "GraderLabelModel",
1228
+ "kind": "struct",
1229
+ "fields": [
1230
+ {
1231
+ "name": "type",
1232
+ "type": {
1233
+ "kind": "scalar",
1234
+ "scalar": "string",
1235
+ "const": "label_model"
1236
+ },
1237
+ "required": true,
1238
+ "description": "The object type, which is always `label_model`."
1239
+ },
1240
+ {
1241
+ "name": "name",
1242
+ "type": {
1243
+ "kind": "scalar",
1244
+ "scalar": "string"
1245
+ },
1246
+ "required": true,
1247
+ "description": "The name of the grader."
1248
+ },
1249
+ {
1250
+ "name": "model",
1251
+ "type": {
1252
+ "kind": "scalar",
1253
+ "scalar": "string"
1254
+ },
1255
+ "required": true,
1256
+ "description": "The model to use for the evaluation. Must support structured outputs."
1257
+ },
1258
+ {
1259
+ "name": "input",
1260
+ "type": {
1261
+ "kind": "array",
1262
+ "items": {
1263
+ "kind": "ref",
1264
+ "name": "EvalItem"
1265
+ }
1266
+ },
1267
+ "required": true
1268
+ },
1269
+ {
1270
+ "name": "labels",
1271
+ "type": {
1272
+ "kind": "array",
1273
+ "items": {
1274
+ "kind": "scalar",
1275
+ "scalar": "string"
1276
+ }
1277
+ },
1278
+ "required": true,
1279
+ "description": "The labels to assign to each item in the evaluation."
1280
+ },
1281
+ {
1282
+ "name": "passing_labels",
1283
+ "type": {
1284
+ "kind": "array",
1285
+ "items": {
1286
+ "kind": "scalar",
1287
+ "scalar": "string"
1288
+ }
1289
+ },
1290
+ "required": true,
1291
+ "description": "The labels that indicate a passing result. Must be a subset of labels."
1292
+ }
1293
+ ],
1294
+ "description": "A LabelModelGrader object which uses a model to assign labels to each item\nin the evaluation.\n"
1295
+ },
1296
+ {
1297
+ "name": "FineTuneReinforcementHyperparameters",
1298
+ "kind": "struct",
1299
+ "fields": [
1300
+ {
1301
+ "name": "batch_size",
1302
+ "type": {
1303
+ "kind": "ref",
1304
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
1305
+ },
1306
+ "required": false,
1307
+ "default": "auto",
1308
+ "description": "Number of examples in each batch. A larger batch size means that model parameters are updated less frequently, but with lower variance.\n"
1309
+ },
1310
+ {
1311
+ "name": "learning_rate_multiplier",
1312
+ "type": {
1313
+ "kind": "ref",
1314
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
1315
+ },
1316
+ "required": false,
1317
+ "default": "auto",
1318
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid overfitting.\n"
1319
+ },
1320
+ {
1321
+ "name": "n_epochs",
1322
+ "type": {
1323
+ "kind": "ref",
1324
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
1325
+ },
1326
+ "required": false,
1327
+ "default": "auto",
1328
+ "description": "The number of epochs to train the model for. An epoch refers to one full cycle through the training dataset.\n"
1329
+ },
1330
+ {
1331
+ "name": "reasoning_effort",
1332
+ "type": {
1333
+ "kind": "ref",
1334
+ "name": "FineTuneReinforcementHyperparametersReasoningEffort"
1335
+ },
1336
+ "required": false,
1337
+ "default": "default",
1338
+ "description": "Level of reasoning effort.\n"
1339
+ },
1340
+ {
1341
+ "name": "compute_multiplier",
1342
+ "type": {
1343
+ "kind": "ref",
1344
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
1345
+ },
1346
+ "required": false,
1347
+ "default": "auto",
1348
+ "description": "Multiplier on amount of compute used for exploring search space during training.\n"
1349
+ },
1350
+ {
1351
+ "name": "eval_interval",
1352
+ "type": {
1353
+ "kind": "ref",
1354
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
1355
+ },
1356
+ "required": false,
1357
+ "default": "auto",
1358
+ "description": "The number of training steps between evaluation runs.\n"
1359
+ },
1360
+ {
1361
+ "name": "eval_samples",
1362
+ "type": {
1363
+ "kind": "ref",
1364
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
1365
+ },
1366
+ "required": false,
1367
+ "default": "auto",
1368
+ "description": "Number of evaluation samples to generate per training step.\n"
1369
+ }
1370
+ ],
1371
+ "description": "The hyperparameters used for the reinforcement fine-tuning job."
1372
+ },
1373
+ {
1374
+ "name": "FineTuneReinforcementHyperparametersReasoningEffort",
1375
+ "kind": "enum",
1376
+ "base": "string",
1377
+ "values": [
1378
+ {
1379
+ "value": "default"
1380
+ },
1381
+ {
1382
+ "value": "low"
1383
+ },
1384
+ {
1385
+ "value": "medium"
1386
+ },
1387
+ {
1388
+ "value": "high"
1389
+ }
1390
+ ],
1391
+ "description": "Level of reasoning effort.\n"
1392
+ },
1393
+ {
1394
+ "name": "Metadata",
1395
+ "kind": "alias",
1396
+ "of": {
1397
+ "kind": "map",
1398
+ "values": {
1399
+ "kind": "scalar",
1400
+ "scalar": "string"
1401
+ },
1402
+ "nullable": true
1403
+ }
1404
+ },
1405
+ {
1406
+ "name": "FineTuningJob",
1407
+ "kind": "struct",
1408
+ "fields": [
1409
+ {
1410
+ "name": "id",
1411
+ "type": {
1412
+ "kind": "scalar",
1413
+ "scalar": "string"
1414
+ },
1415
+ "required": true,
1416
+ "description": "The object identifier, which can be referenced in the API endpoints."
1417
+ },
1418
+ {
1419
+ "name": "created_at",
1420
+ "type": {
1421
+ "kind": "scalar",
1422
+ "scalar": "integer",
1423
+ "format": "unixtime"
1424
+ },
1425
+ "required": true,
1426
+ "description": "The Unix timestamp (in seconds) for when the fine-tuning job was created."
1427
+ },
1428
+ {
1429
+ "name": "error",
1430
+ "type": {
1431
+ "kind": "ref",
1432
+ "name": "FineTuningJobError",
1433
+ "nullable": true
1434
+ },
1435
+ "required": true
1436
+ },
1437
+ {
1438
+ "name": "fine_tuned_model",
1439
+ "type": {
1440
+ "kind": "scalar",
1441
+ "scalar": "string",
1442
+ "nullable": true
1443
+ },
1444
+ "required": true
1445
+ },
1446
+ {
1447
+ "name": "finished_at",
1448
+ "type": {
1449
+ "kind": "scalar",
1450
+ "scalar": "integer",
1451
+ "format": "unixtime",
1452
+ "nullable": true
1453
+ },
1454
+ "required": true
1455
+ },
1456
+ {
1457
+ "name": "hyperparameters",
1458
+ "type": {
1459
+ "kind": "ref",
1460
+ "name": "FineTuningJobHyperparameters"
1461
+ },
1462
+ "required": true,
1463
+ "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs."
1464
+ },
1465
+ {
1466
+ "name": "model",
1467
+ "type": {
1468
+ "kind": "scalar",
1469
+ "scalar": "string"
1470
+ },
1471
+ "required": true,
1472
+ "description": "The base model that is being fine-tuned."
1473
+ },
1474
+ {
1475
+ "name": "object",
1476
+ "type": {
1477
+ "kind": "scalar",
1478
+ "scalar": "string",
1479
+ "const": "fine_tuning.job"
1480
+ },
1481
+ "required": true,
1482
+ "description": "The object type, which is always \"fine_tuning.job\"."
1483
+ },
1484
+ {
1485
+ "name": "organization_id",
1486
+ "type": {
1487
+ "kind": "scalar",
1488
+ "scalar": "string"
1489
+ },
1490
+ "required": true,
1491
+ "description": "The organization that owns the fine-tuning job."
1492
+ },
1493
+ {
1494
+ "name": "result_files",
1495
+ "type": {
1496
+ "kind": "array",
1497
+ "items": {
1498
+ "kind": "scalar",
1499
+ "scalar": "string"
1500
+ }
1501
+ },
1502
+ "required": true,
1503
+ "description": "The compiled results file ID(s) for the fine-tuning job. You can retrieve the results with the [Files API](/docs/api-reference/files/retrieve-contents)."
1504
+ },
1505
+ {
1506
+ "name": "status",
1507
+ "type": {
1508
+ "kind": "ref",
1509
+ "name": "FineTuningJobStatus"
1510
+ },
1511
+ "required": true,
1512
+ "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`."
1513
+ },
1514
+ {
1515
+ "name": "trained_tokens",
1516
+ "type": {
1517
+ "kind": "scalar",
1518
+ "scalar": "integer",
1519
+ "nullable": true
1520
+ },
1521
+ "required": true
1522
+ },
1523
+ {
1524
+ "name": "training_file",
1525
+ "type": {
1526
+ "kind": "scalar",
1527
+ "scalar": "string"
1528
+ },
1529
+ "required": true,
1530
+ "description": "The file ID used for training. You can retrieve the training data with the [Files API](/docs/api-reference/files/retrieve-contents)."
1531
+ },
1532
+ {
1533
+ "name": "validation_file",
1534
+ "type": {
1535
+ "kind": "scalar",
1536
+ "scalar": "string",
1537
+ "nullable": true
1538
+ },
1539
+ "required": true
1540
+ },
1541
+ {
1542
+ "name": "integrations",
1543
+ "type": {
1544
+ "kind": "array",
1545
+ "items": {
1546
+ "kind": "ref",
1547
+ "name": "FineTuningIntegration"
1548
+ },
1549
+ "nullable": true
1550
+ },
1551
+ "required": false
1552
+ },
1553
+ {
1554
+ "name": "seed",
1555
+ "type": {
1556
+ "kind": "scalar",
1557
+ "scalar": "integer"
1558
+ },
1559
+ "required": true,
1560
+ "description": "The seed used for the fine-tuning job."
1561
+ },
1562
+ {
1563
+ "name": "estimated_finish",
1564
+ "type": {
1565
+ "kind": "scalar",
1566
+ "scalar": "integer",
1567
+ "format": "unixtime",
1568
+ "nullable": true
1569
+ },
1570
+ "required": false
1571
+ },
1572
+ {
1573
+ "name": "method",
1574
+ "type": {
1575
+ "kind": "ref",
1576
+ "name": "FineTuneMethod"
1577
+ },
1578
+ "required": false
1579
+ },
1580
+ {
1581
+ "name": "metadata",
1582
+ "type": {
1583
+ "kind": "ref",
1584
+ "name": "Metadata"
1585
+ },
1586
+ "required": false
1587
+ }
1588
+ ],
1589
+ "description": "The `fine_tuning.job` object represents a fine-tuning job that has been created through the API.\n"
1590
+ },
1591
+ {
1592
+ "name": "FineTuningJobError",
1593
+ "kind": "struct",
1594
+ "fields": [
1595
+ {
1596
+ "name": "code",
1597
+ "type": {
1598
+ "kind": "scalar",
1599
+ "scalar": "string"
1600
+ },
1601
+ "required": true,
1602
+ "description": "A machine-readable error code."
1603
+ },
1604
+ {
1605
+ "name": "message",
1606
+ "type": {
1607
+ "kind": "scalar",
1608
+ "scalar": "string"
1609
+ },
1610
+ "required": true,
1611
+ "description": "A human-readable error message."
1612
+ },
1613
+ {
1614
+ "name": "param",
1615
+ "type": {
1616
+ "kind": "scalar",
1617
+ "scalar": "string",
1618
+ "nullable": true
1619
+ },
1620
+ "required": true
1621
+ }
1622
+ ],
1623
+ "description": "For fine-tuning jobs that have `failed`, this will contain more information on the cause of the failure."
1624
+ },
1625
+ {
1626
+ "name": "FineTuningJobHyperparameters",
1627
+ "kind": "struct",
1628
+ "fields": [
1629
+ {
1630
+ "name": "batch_size",
1631
+ "type": {
1632
+ "kind": "ref",
1633
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize",
1634
+ "nullable": true
1635
+ },
1636
+ "required": false
1637
+ },
1638
+ {
1639
+ "name": "learning_rate_multiplier",
1640
+ "type": {
1641
+ "kind": "ref",
1642
+ "name": "CreateFineTuningJobRequestHyperparametersLearningRateMultiplier"
1643
+ },
1644
+ "required": false,
1645
+ "default": "auto",
1646
+ "description": "Scaling factor for the learning rate. A smaller learning rate may be useful to avoid\noverfitting.\n"
1647
+ },
1648
+ {
1649
+ "name": "n_epochs",
1650
+ "type": {
1651
+ "kind": "ref",
1652
+ "name": "CreateFineTuningJobRequestHyperparametersBatchSize"
1653
+ },
1654
+ "required": false,
1655
+ "default": "auto",
1656
+ "description": "The number of epochs to train the model for. An epoch refers to one full cycle\nthrough the training dataset.\n"
1657
+ }
1658
+ ],
1659
+ "description": "The hyperparameters used for the fine-tuning job. This value will only be returned when running `supervised` jobs."
1660
+ },
1661
+ {
1662
+ "name": "FineTuningJobStatus",
1663
+ "kind": "enum",
1664
+ "base": "string",
1665
+ "values": [
1666
+ {
1667
+ "value": "validating_files"
1668
+ },
1669
+ {
1670
+ "value": "queued"
1671
+ },
1672
+ {
1673
+ "value": "running"
1674
+ },
1675
+ {
1676
+ "value": "succeeded"
1677
+ },
1678
+ {
1679
+ "value": "failed"
1680
+ },
1681
+ {
1682
+ "value": "cancelled"
1683
+ }
1684
+ ],
1685
+ "description": "The current status of the fine-tuning job, which can be either `validating_files`, `queued`, `running`, `succeeded`, `failed`, or `cancelled`."
1686
+ },
1687
+ {
1688
+ "name": "FineTuningIntegration",
1689
+ "kind": "struct",
1690
+ "fields": [
1691
+ {
1692
+ "name": "type",
1693
+ "type": {
1694
+ "kind": "scalar",
1695
+ "scalar": "string",
1696
+ "const": "wandb"
1697
+ },
1698
+ "required": true,
1699
+ "description": "The type of the integration being enabled for the fine-tuning job"
1700
+ },
1701
+ {
1702
+ "name": "wandb",
1703
+ "type": {
1704
+ "kind": "ref",
1705
+ "name": "FineTuningIntegrationWandb"
1706
+ },
1707
+ "required": true,
1708
+ "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run.\n"
1709
+ }
1710
+ ]
1711
+ },
1712
+ {
1713
+ "name": "FineTuningIntegrationWandb",
1714
+ "kind": "struct",
1715
+ "fields": [
1716
+ {
1717
+ "name": "project",
1718
+ "type": {
1719
+ "kind": "scalar",
1720
+ "scalar": "string"
1721
+ },
1722
+ "required": true,
1723
+ "description": "The name of the project that the new run will be created under.\n"
1724
+ },
1725
+ {
1726
+ "name": "name",
1727
+ "type": {
1728
+ "kind": "scalar",
1729
+ "scalar": "string",
1730
+ "nullable": true
1731
+ },
1732
+ "required": false
1733
+ },
1734
+ {
1735
+ "name": "entity",
1736
+ "type": {
1737
+ "kind": "scalar",
1738
+ "scalar": "string",
1739
+ "nullable": true
1740
+ },
1741
+ "required": false
1742
+ },
1743
+ {
1744
+ "name": "tags",
1745
+ "type": {
1746
+ "kind": "array",
1747
+ "items": {
1748
+ "kind": "scalar",
1749
+ "scalar": "string"
1750
+ }
1751
+ },
1752
+ "required": false,
1753
+ "description": "A list of tags to be attached to the newly created run. These tags are passed through directly to WandB. Some\ndefault tags are generated by OpenAI: \"openai/finetune\", \"openai/{base-model}\", \"openai/{ftjob-abcdef}\".\n"
1754
+ }
1755
+ ],
1756
+ "description": "The settings for your integration with Weights and Biases. This payload specifies the project that\nmetrics will be sent to. Optionally, you can set an explicit display name for your run, add tags\nto your run, and set a default entity (team, username, etc) to be associated with your run.\n"
1757
+ }
1758
+ ],
1759
+ "resources": [
1760
+ {
1761
+ "name": "fine-tuning",
1762
+ "resources": [
1763
+ {
1764
+ "name": "jobs",
1765
+ "methods": [
1766
+ {
1767
+ "action": "create",
1768
+ "httpMethod": "post",
1769
+ "path": "/fine_tuning/jobs",
1770
+ "operationId": "createFineTuningJob",
1771
+ "description": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\n\nResponse includes details of the enqueued job including job status and the name of the fine-tuned models once complete.\n\n[Learn more about fine-tuning](/docs/guides/model-optimization)\n",
1772
+ "requestBody": {
1773
+ "contentType": "application/json",
1774
+ "type": {
1775
+ "kind": "ref",
1776
+ "name": "CreateFineTuningJobRequest"
1777
+ },
1778
+ "required": true,
1779
+ "encoding": "json"
1780
+ },
1781
+ "responses": [
1782
+ {
1783
+ "status": "200",
1784
+ "description": "OK",
1785
+ "contentType": "application/json",
1786
+ "type": {
1787
+ "kind": "ref",
1788
+ "name": "FineTuningJob"
1789
+ }
1790
+ }
1791
+ ],
1792
+ "primaryResponse": {
1793
+ "kind": "ref",
1794
+ "name": "FineTuningJob"
1795
+ }
1796
+ }
1797
+ ]
1798
+ }
1799
+ ]
1800
+ }
1801
+ ],
1802
+ "sdk": {
1803
+ "retry": {
1804
+ "maxRetries": 2,
1805
+ "retryableStatusCodes": [
1806
+ 408,
1807
+ 429,
1808
+ 500,
1809
+ 502,
1810
+ 503,
1811
+ 504
1812
+ ],
1813
+ "retryConnectionErrors": true,
1814
+ "honorRetryAfterHeader": true,
1815
+ "backoff": {
1816
+ "initialDelayMs": 500,
1817
+ "maxDelayMs": 8000,
1818
+ "multiplier": 2,
1819
+ "jitter": 0.25
1820
+ }
1821
+ },
1822
+ "timeout": {
1823
+ "defaultTimeoutMs": 60000
1824
+ },
1825
+ "errors": {
1826
+ "statusCodeMap": {
1827
+ "400": "BadRequest",
1828
+ "401": "Unauthorized",
1829
+ "403": "PermissionDenied",
1830
+ "404": "NotFound",
1831
+ "409": "Conflict",
1832
+ "422": "UnprocessableEntity",
1833
+ "429": "RateLimited"
1834
+ },
1835
+ "clientErrorKind": "API",
1836
+ "serverErrorKind": "Internal"
1837
+ },
1838
+ "userAgent": {
1839
+ "sdkIdentifierTemplate": "{package}-{language}/{version}",
1840
+ "includeRuntimeVersion": false,
1841
+ "aiAgentEnvVars": {
1842
+ "CLAUDE_CODE": "claude-code",
1843
+ "CURSOR_AGENT": "cursor",
1844
+ "CLINE_ACTIVE": "cline",
1845
+ "WINDSURF_ACTIVE": "windsurf",
1846
+ "COPILOT_AGENT": "copilot"
1847
+ }
1848
+ },
1849
+ "telemetry": {
1850
+ "requestIdHeader": "X-Request-ID",
1851
+ "headerName": "X-Client-Telemetry",
1852
+ "enabledByDefault": false
1853
+ },
1854
+ "logging": {
1855
+ "events": [
1856
+ "request.start",
1857
+ "request.success",
1858
+ "request.retry",
1859
+ "request.rate_limited",
1860
+ "request.error",
1861
+ "request.connection_error"
1862
+ ]
1863
+ },
1864
+ "idempotency": {
1865
+ "headerName": "Idempotency-Key",
1866
+ "autoGenerateForPost": true
1867
+ },
1868
+ "pagination": {
1869
+ "autoPageDelayMs": 0
1870
+ },
1871
+ "requestGuard": {
1872
+ "optionKeys": [
1873
+ "api_key",
1874
+ "apiKey",
1875
+ "idempotency_key",
1876
+ "idempotencyKey",
1877
+ "extra_headers",
1878
+ "extraHeaders",
1879
+ "max_retries",
1880
+ "maxRetries",
1881
+ "base_url",
1882
+ "baseUrl",
1883
+ "timeout"
1884
+ ]
1885
+ }
1886
+ }
1887
+ }