responses.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. "use strict";
  2. // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  3. Object.defineProperty(exports, "__esModule", { value: true });
  4. exports.Responses = void 0;
  5. const tslib_1 = require("../../internal/tslib.js");
  6. const ResponsesParser_1 = require("../../lib/ResponsesParser.js");
  7. const ResponseStream_1 = require("../../lib/responses/ResponseStream.js");
  8. const resource_1 = require("../../core/resource.js");
  9. const InputItemsAPI = tslib_1.__importStar(require("./input-items.js"));
  10. const input_items_1 = require("./input-items.js");
  11. const InputTokensAPI = tslib_1.__importStar(require("./input-tokens.js"));
  12. const input_tokens_1 = require("./input-tokens.js");
  13. const headers_1 = require("../../internal/headers.js");
  14. const path_1 = require("../../internal/utils/path.js");
  15. class Responses extends resource_1.APIResource {
  16. constructor() {
  17. super(...arguments);
  18. this.inputItems = new InputItemsAPI.InputItems(this._client);
  19. this.inputTokens = new InputTokensAPI.InputTokens(this._client);
  20. }
  21. create(body, options) {
  22. return this._client.post('/responses', { body, ...options, stream: body.stream ?? false })._thenUnwrap((rsp) => {
  23. if ('object' in rsp && rsp.object === 'response') {
  24. (0, ResponsesParser_1.addOutputText)(rsp);
  25. }
  26. return rsp;
  27. });
  28. }
  29. retrieve(responseID, query = {}, options) {
  30. return this._client.get((0, path_1.path) `/responses/${responseID}`, {
  31. query,
  32. ...options,
  33. stream: query?.stream ?? false,
  34. })._thenUnwrap((rsp) => {
  35. if ('object' in rsp && rsp.object === 'response') {
  36. (0, ResponsesParser_1.addOutputText)(rsp);
  37. }
  38. return rsp;
  39. });
  40. }
  41. /**
  42. * Deletes a model response with the given ID.
  43. *
  44. * @example
  45. * ```ts
  46. * await client.responses.delete(
  47. * 'resp_677efb5139a88190b512bc3fef8e535d',
  48. * );
  49. * ```
  50. */
  51. delete(responseID, options) {
  52. return this._client.delete((0, path_1.path) `/responses/${responseID}`, {
  53. ...options,
  54. headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
  55. });
  56. }
  57. parse(body, options) {
  58. return this._client.responses
  59. .create(body, options)
  60. ._thenUnwrap((response) => (0, ResponsesParser_1.parseResponse)(response, body));
  61. }
  62. /**
  63. * Creates a model response stream
  64. */
  65. stream(body, options) {
  66. return ResponseStream_1.ResponseStream.createResponse(this._client, body, options);
  67. }
  68. /**
  69. * Cancels a model response with the given ID. Only responses created with the
  70. * `background` parameter set to `true` can be cancelled.
  71. * [Learn more](https://platform.openai.com/docs/guides/background).
  72. *
  73. * @example
  74. * ```ts
  75. * const response = await client.responses.cancel(
  76. * 'resp_677efb5139a88190b512bc3fef8e535d',
  77. * );
  78. * ```
  79. */
  80. cancel(responseID, options) {
  81. return this._client.post((0, path_1.path) `/responses/${responseID}/cancel`, options);
  82. }
  83. /**
  84. * Compact conversation
  85. *
  86. * @example
  87. * ```ts
  88. * const compactedResponse = await client.responses.compact({
  89. * model: 'gpt-5.2',
  90. * });
  91. * ```
  92. */
  93. compact(body, options) {
  94. return this._client.post('/responses/compact', { body, ...options });
  95. }
  96. }
  97. exports.Responses = Responses;
  98. Responses.InputItems = input_items_1.InputItems;
  99. Responses.InputTokens = input_tokens_1.InputTokens;
  100. //# sourceMappingURL=responses.js.map