Skip to content

Commit d435079

Browse files
committed
feat: add support for response cancel
1 parent 68fd99c commit d435079

3 files changed

Lines changed: 59 additions & 0 deletions

File tree

README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,20 @@ $response->deleted; // true
155155
$response->toArray(); // ['id' => 'curie:ft-acmeco-2021-03-03-21-44-20', ...]
156156
```
157157

158+
#### `delete`
159+
160+
Delete a fine-tuned model.
161+
162+
```php
163+
$response = $client->models()->delete('curie:ft-acmeco-2021-03-03-21-44-20');
164+
165+
$response->id; // 'curie:ft-acmeco-2021-03-03-21-44-20'
166+
$response->object; // 'model'
167+
$response->deleted; // true
168+
169+
$response->toArray(); // ['id' => 'curie:ft-acmeco-2021-03-03-21-44-20', ...]
170+
```
171+
158172
### `Responses` Resource
159173

160174
#### `create`
@@ -254,6 +268,19 @@ $response->truncation; // 'disabled'
254268
$response->toArray(); // ['id' => 'resp_67ccd2bed1ec8190b14f964abc054267', ...]
255269
```
256270

271+
### `cancel`
272+
273+
Cancel a model response (background request) with the given ID.
274+
275+
```php
276+
$response = $client->responses()->cancel('resp_67ccd2bed1ec8190b14f964abc054267');
277+
278+
$response->id; // 'resp_67ccd2bed1ec8190b14f964abc054267'
279+
$response->status; // 'canceled'
280+
281+
$response->toArray(); // ['id' => 'resp_67ccd2bed1ec8190b14f964abc054267', 'status' => 'canceled', ...]
282+
```
283+
257284
### `delete`
258285

259286
Deletes a model response with the given ID.

src/Resources/Responses.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,21 @@ public function retrieve(string $id): RetrieveResponse
8080
return RetrieveResponse::from($response->data(), $response->meta());
8181
}
8282

83+
/**
84+
* Cancels a model response with the given ID. Must be marked as 'background' to be cancellable.
85+
*
86+
* @see https://platform.openai.com/docs/api-reference/responses/cancel
87+
*/
88+
public function cancel(string $id): RetrieveResponse
89+
{
90+
$payload = Payload::cancel('responses', $id);
91+
92+
/** @var Response<RetrieveResponseType> $response */
93+
$response = $this->transporter->requestObject($payload);
94+
95+
return RetrieveResponse::from($response->data(), $response->meta());
96+
}
97+
8398
/**
8499
* Deletes a model response with the given ID.
85100
*

tests/Resources/Responses.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,20 @@
201201
expect($result->meta())
202202
->toBeInstanceOf(MetaInformation::class);
203203
});
204+
205+
test('cancel', function () {
206+
$client = mockClient('POST', 'responses/resp_67ccf18ef5fc8190b16dbee19bc54e5f087bb177ab789d5c/cancel', [
207+
], \OpenAI\ValueObjects\Transporter\Response::from(retrieveResponseResource(), metaHeaders()));
208+
209+
$result = $client->responses()->cancel('resp_67ccf18ef5fc8190b16dbee19bc54e5f087bb177ab789d5c');
210+
211+
expect($result)
212+
->toBeInstanceOf(RetrieveResponse::class)
213+
->id->toBe('resp_67ccf18ef5fc8190b16dbee19bc54e5f087bb177ab789d5c')
214+
->object->toBe('response')
215+
->createdAt->toBe(1741484430)
216+
->status->toBe('completed');
217+
218+
expect($result->meta())
219+
->toBeInstanceOf(MetaInformation::class);
220+
});

0 commit comments

Comments
 (0)