Skip to content

Commit d2d42ca

Browse files
authored
AbortSignal support (#144)
Add `SingleRequestOptions` with `AbortSignal` support to most of the asynchronous methods of: - `GenerativeModel` - `GoogleAIFileManager` - `ChatSession` **NOTE:** `AbortSignal` is a client-only operation. Using it to cancel an operation will not cancel the request in the service. You will still be charged usage for any applicable operations. Some methods are not supported as they would leave the server in an ambiguous state, namely `GoogleAIFileManager.uploadFile()` and `GoogleAIFileManager.deleteFile()`.
1 parent 9eabe6c commit d2d42ca

File tree

40 files changed

+590
-117
lines changed

40 files changed

+590
-117
lines changed

.changeset/tough-beds-serve.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@google/generative-ai": minor
3+
---
4+
5+
Adds `SingleRequestOptions` with `AbortSignal` support to most of the asynchronous methods of `GenerativeModel`, `GoogleAIFileManager` and `ChatSession`.

common/api-review/generative-ai-server.api.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,9 @@ export class GoogleAIFileManager {
355355
// (undocumented)
356356
apiKey: string;
357357
deleteFile(fileId: string): Promise<void>;
358-
getFile(fileId: string): Promise<FileMetadataResponse>;
359-
listFiles(listParams?: ListParams): Promise<ListFilesResponse>;
358+
getFile(fileId: string, requestOptions?: SingleRequestOptions): Promise<FileMetadataResponse>;
359+
// Warning: (ae-forgotten-export) The symbol "SingleRequestOptions" needs to be exported by the entry point index.d.ts
360+
listFiles(listParams?: ListParams, requestOptions?: SingleRequestOptions): Promise<ListFilesResponse>;
360361
uploadFile(filePath: string, fileMetadata: FileMetadata): Promise<UploadFileResponse>;
361362
}
362363

common/api-review/generative-ai.api.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,14 @@ export interface CachedContentBase {
6262

6363
// @public
6464
export class ChatSession {
65-
constructor(apiKey: string, model: string, params?: StartChatParams, requestOptions?: RequestOptions);
65+
constructor(apiKey: string, model: string, params?: StartChatParams, _requestOptions?: RequestOptions);
6666
getHistory(): Promise<Content[]>;
6767
// (undocumented)
6868
model: string;
6969
// (undocumented)
7070
params?: StartChatParams;
71-
// (undocumented)
72-
requestOptions?: RequestOptions;
73-
sendMessage(request: string | Array<string | Part>): Promise<GenerateContentResult>;
74-
sendMessageStream(request: string | Array<string | Part>): Promise<GenerateContentStreamResult>;
71+
sendMessage(request: string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentResult>;
72+
sendMessageStream(request: string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentStreamResult>;
7573
}
7674

7775
// @public
@@ -462,16 +460,16 @@ export interface GenerativeContentBlob {
462460

463461
// @public
464462
export class GenerativeModel {
465-
constructor(apiKey: string, modelParams: ModelParams, requestOptions?: RequestOptions);
463+
constructor(apiKey: string, modelParams: ModelParams, _requestOptions?: RequestOptions);
466464
// (undocumented)
467465
apiKey: string;
468-
batchEmbedContents(batchEmbedContentRequest: BatchEmbedContentsRequest): Promise<BatchEmbedContentsResponse>;
466+
batchEmbedContents(batchEmbedContentRequest: BatchEmbedContentsRequest, requestOptions?: SingleRequestOptions): Promise<BatchEmbedContentsResponse>;
469467
// (undocumented)
470468
cachedContent: CachedContent;
471-
countTokens(request: CountTokensRequest | string | Array<string | Part>): Promise<CountTokensResponse>;
472-
embedContent(request: EmbedContentRequest | string | Array<string | Part>): Promise<EmbedContentResponse>;
473-
generateContent(request: GenerateContentRequest | string | Array<string | Part>): Promise<GenerateContentResult>;
474-
generateContentStream(request: GenerateContentRequest | string | Array<string | Part>): Promise<GenerateContentStreamResult>;
469+
countTokens(request: CountTokensRequest | string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<CountTokensResponse>;
470+
embedContent(request: EmbedContentRequest | string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<EmbedContentResponse>;
471+
generateContent(request: GenerateContentRequest | string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentResult>;
472+
generateContentStream(request: GenerateContentRequest | string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentStreamResult>;
475473
// (undocumented)
476474
generationConfig: GenerationConfig;
477475
// (undocumented)
@@ -667,6 +665,11 @@ export interface Schema {
667665
type?: FunctionDeclarationSchemaType;
668666
}
669667

668+
// @public
669+
export interface SingleRequestOptions extends RequestOptions {
670+
signal?: AbortSignal;
671+
}
672+
670673
// @public
671674
export interface StartChatParams extends BaseParams {
672675
cachedContent?: string;

docs/reference/files/generative-ai.googleaifilemanager.deletefile.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44

55
## GoogleAIFileManager.deleteFile() method
66

7-
Delete file with given ID
7+
Delete file with given ID.
8+
9+
Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.
810

911
**Signature:**
1012

1113
```typescript
12-
deleteFile(fileId: string): Promise<void>;
14+
deleteFile(fileId: string, requestOptions?: SingleRequestOptions): Promise<void>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| fileId | string | |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

docs/reference/files/generative-ai.googleaifilemanager.getfile.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44

55
## GoogleAIFileManager.getFile() method
66

7-
Get metadata for file with given ID
7+
Get metadata for file with given ID.
8+
9+
Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.
810

911
**Signature:**
1012

1113
```typescript
12-
getFile(fileId: string): Promise<FileMetadataResponse>;
14+
getFile(fileId: string, requestOptions?: SingleRequestOptions): Promise<FileMetadataResponse>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| fileId | string | |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

docs/reference/files/generative-ai.googleaifilemanager.listfiles.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44

55
## GoogleAIFileManager.listFiles() method
66

7-
List all uploaded files
7+
List all uploaded files.
8+
9+
Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.
810

911
**Signature:**
1012

1113
```typescript
12-
listFiles(listParams?: ListParams): Promise<ListFilesResponse>;
14+
listFiles(listParams?: ListParams, requestOptions?: SingleRequestOptions): Promise<ListFilesResponse>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| listParams | [ListParams](./generative-ai.listparams.md) | _(Optional)_ |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

docs/reference/files/generative-ai.googleaifilemanager.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ export declare class GoogleAIFileManager
2828

2929
| Method | Modifiers | Description |
3030
| --- | --- | --- |
31-
| [deleteFile(fileId)](./generative-ai.googleaifilemanager.deletefile.md) | | Delete file with given ID |
32-
| [getFile(fileId)](./generative-ai.googleaifilemanager.getfile.md) | | Get metadata for file with given ID |
33-
| [listFiles(listParams)](./generative-ai.googleaifilemanager.listfiles.md) | | List all uploaded files |
34-
| [uploadFile(filePath, fileMetadata)](./generative-ai.googleaifilemanager.uploadfile.md) | | Upload a file |
31+
| [deleteFile(fileId, requestOptions)](./generative-ai.googleaifilemanager.deletefile.md) | | <p>Delete file with given ID.</p><p>Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.</p> |
32+
| [getFile(fileId, requestOptions)](./generative-ai.googleaifilemanager.getfile.md) | | <p>Get metadata for file with given ID.</p><p>Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.</p> |
33+
| [listFiles(listParams, requestOptions)](./generative-ai.googleaifilemanager.listfiles.md) | | <p>List all uploaded files.</p><p>Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.</p> |
34+
| [uploadFile(filePath, fileMetadata, requestOptions)](./generative-ai.googleaifilemanager.uploadfile.md) | | <p>Upload a file.</p><p>Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.</p> |
3535

docs/reference/files/generative-ai.googleaifilemanager.uploadfile.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@
44

55
## GoogleAIFileManager.uploadFile() method
66

7-
Upload a file
7+
Upload a file.
8+
9+
Any fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the [GoogleAIFileManager](./generative-ai.googleaifilemanager.md) initialization.
810

911
**Signature:**
1012

1113
```typescript
12-
uploadFile(filePath: string, fileMetadata: FileMetadata): Promise<UploadFileResponse>;
14+
uploadFile(filePath: string, fileMetadata: FileMetadata, requestOptions?: SingleRequestOptions): Promise<UploadFileResponse>;
1315
```
1416

1517
## Parameters
@@ -18,6 +20,7 @@ uploadFile(filePath: string, fileMetadata: FileMetadata): Promise<UploadFileResp
1820
| --- | --- | --- |
1921
| filePath | string | |
2022
| fileMetadata | [FileMetadata](./generative-ai.filemetadata.md) | |
23+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2124

2225
**Returns:**
2326

docs/reference/files/generative-ai.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
| [ListParams](./generative-ai.listparams.md) | Params to pass to [GoogleAIFileManager.listFiles()](./generative-ai.googleaifilemanager.listfiles.md) |
2828
| [RequestOptions](./generative-ai.requestoptions.md) | Params passed to getGenerativeModel() or GoogleAIFileManager(). |
2929
| [RpcStatus](./generative-ai.rpcstatus.md) | Standard RPC error status object. |
30+
| [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | Params passed to atomic asynchronous operations. |
3031
| [UploadFileResponse](./generative-ai.uploadfileresponse.md) | Response from calling [GoogleAIFileManager.uploadFile()](./generative-ai.googleaifilemanager.uploadfile.md) |
3132
| [VideoMetadata](./generative-ai.videometadata.md) | Metadata populated when video has been processed. |
3233

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@google/generative-ai](./generative-ai.md) &gt; [SingleRequestOptions](./generative-ai.singlerequestoptions.md)
4+
5+
## SingleRequestOptions interface
6+
7+
Params passed to atomic asynchronous operations.
8+
9+
**Signature:**
10+
11+
```typescript
12+
export interface SingleRequestOptions extends RequestOptions
13+
```
14+
**Extends:** [RequestOptions](./generative-ai.requestoptions.md)
15+
16+
## Properties
17+
18+
| Property | Modifiers | Type | Description |
19+
| --- | --- | --- | --- |
20+
| [signal?](./generative-ai.singlerequestoptions.signal.md) | | AbortSignal | _(Optional)_ An object that may be used to abort asynchronous requests. The request may also be aborted due to the expiration of the timeout value, if provided, and if the timeout occurs first. |
21+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@google/generative-ai](./generative-ai.md) &gt; [SingleRequestOptions](./generative-ai.singlerequestoptions.md) &gt; [signal](./generative-ai.singlerequestoptions.signal.md)
4+
5+
## SingleRequestOptions.signal property
6+
7+
An object that may be used to abort asynchronous requests. The request may also be aborted due to the expiration of the timeout value, if provided, and if the timeout occurs first.
8+
9+
**Signature:**
10+
11+
```typescript
12+
signal?: AbortSignal;
13+
```

docs/reference/main/generative-ai.chatsession._constructor_.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Constructs a new instance of the `ChatSession` class
99
**Signature:**
1010

1111
```typescript
12-
constructor(apiKey: string, model: string, params?: StartChatParams, requestOptions?: RequestOptions);
12+
constructor(apiKey: string, model: string, params?: StartChatParams, _requestOptions?: RequestOptions);
1313
```
1414

1515
## Parameters
@@ -19,5 +19,5 @@ constructor(apiKey: string, model: string, params?: StartChatParams, requestOpti
1919
| apiKey | string | |
2020
| model | string | |
2121
| params | [StartChatParams](./generative-ai.startchatparams.md) | _(Optional)_ |
22-
| requestOptions | [RequestOptions](./generative-ai.requestoptions.md) | _(Optional)_ |
22+
| \_requestOptions | [RequestOptions](./generative-ai.requestoptions.md) | _(Optional)_ |
2323

docs/reference/main/generative-ai.chatsession.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,20 @@ export declare class ChatSession
1616

1717
| Constructor | Modifiers | Description |
1818
| --- | --- | --- |
19-
| [(constructor)(apiKey, model, params, requestOptions)](./generative-ai.chatsession._constructor_.md) | | Constructs a new instance of the <code>ChatSession</code> class |
19+
| [(constructor)(apiKey, model, params, \_requestOptions)](./generative-ai.chatsession._constructor_.md) | | Constructs a new instance of the <code>ChatSession</code> class |
2020

2121
## Properties
2222

2323
| Property | Modifiers | Type | Description |
2424
| --- | --- | --- | --- |
2525
| [model](./generative-ai.chatsession.model.md) | | string | |
2626
| [params?](./generative-ai.chatsession.params.md) | | [StartChatParams](./generative-ai.startchatparams.md) | _(Optional)_ |
27-
| [requestOptions?](./generative-ai.chatsession.requestoptions.md) | | [RequestOptions](./generative-ai.requestoptions.md) | _(Optional)_ |
2827

2928
## Methods
3029

3130
| Method | Modifiers | Description |
3231
| --- | --- | --- |
3332
| [getHistory()](./generative-ai.chatsession.gethistory.md) | | Gets the chat history so far. Blocked prompts are not added to history. Blocked candidates are not added to history, nor are the prompts that generated them. |
34-
| [sendMessage(request)](./generative-ai.chatsession.sendmessage.md) | | Sends a chat message and receives a non-streaming [GenerateContentResult](./generative-ai.generatecontentresult.md) |
35-
| [sendMessageStream(request)](./generative-ai.chatsession.sendmessagestream.md) | | Sends a chat message and receives the response as a [GenerateContentStreamResult](./generative-ai.generatecontentstreamresult.md) containing an iterable stream and a response promise. |
33+
| [sendMessage(request, requestOptions)](./generative-ai.chatsession.sendmessage.md) | | <p>Sends a chat message and receives a non-streaming [GenerateContentResult](./generative-ai.generatecontentresult.md)<!-- -->.</p><p>Fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the initialization.</p> |
34+
| [sendMessageStream(request, requestOptions)](./generative-ai.chatsession.sendmessagestream.md) | | <p>Sends a chat message and receives the response as a [GenerateContentStreamResult](./generative-ai.generatecontentstreamresult.md) containing an iterable stream and a response promise.</p><p>Fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the initialization.</p> |
3635

docs/reference/main/generative-ai.chatsession.requestoptions.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

docs/reference/main/generative-ai.chatsession.sendmessage.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44

55
## ChatSession.sendMessage() method
66

7-
Sends a chat message and receives a non-streaming [GenerateContentResult](./generative-ai.generatecontentresult.md)
7+
Sends a chat message and receives a non-streaming [GenerateContentResult](./generative-ai.generatecontentresult.md)<!-- -->.
8+
9+
Fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the initialization.
810

911
**Signature:**
1012

1113
```typescript
12-
sendMessage(request: string | Array<string | Part>): Promise<GenerateContentResult>;
14+
sendMessage(request: string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentResult>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| request | string \| Array&lt;string \| [Part](./generative-ai.part.md)<!-- -->&gt; | |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

docs/reference/main/generative-ai.chatsession.sendmessagestream.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,20 @@
66

77
Sends a chat message and receives the response as a [GenerateContentStreamResult](./generative-ai.generatecontentstreamresult.md) containing an iterable stream and a response promise.
88

9+
Fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the initialization.
10+
911
**Signature:**
1012

1113
```typescript
12-
sendMessageStream(request: string | Array<string | Part>): Promise<GenerateContentStreamResult>;
14+
sendMessageStream(request: string | Array<string | Part>, requestOptions?: SingleRequestOptions): Promise<GenerateContentStreamResult>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| request | string \| Array&lt;string \| [Part](./generative-ai.part.md)<!-- -->&gt; | |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

docs/reference/main/generative-ai.generativemodel._constructor_.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Constructs a new instance of the `GenerativeModel` class
99
**Signature:**
1010

1111
```typescript
12-
constructor(apiKey: string, modelParams: ModelParams, requestOptions?: RequestOptions);
12+
constructor(apiKey: string, modelParams: ModelParams, _requestOptions?: RequestOptions);
1313
```
1414

1515
## Parameters
@@ -18,5 +18,5 @@ constructor(apiKey: string, modelParams: ModelParams, requestOptions?: RequestOp
1818
| --- | --- | --- |
1919
| apiKey | string | |
2020
| modelParams | [ModelParams](./generative-ai.modelparams.md) | |
21-
| requestOptions | [RequestOptions](./generative-ai.requestoptions.md) | _(Optional)_ |
21+
| \_requestOptions | [RequestOptions](./generative-ai.requestoptions.md) | _(Optional)_ |
2222

docs/reference/main/generative-ai.generativemodel.batchembedcontents.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,20 @@
66

77
Embeds an array of [EmbedContentRequest](./generative-ai.embedcontentrequest.md)<!-- -->s.
88

9+
Fields set in the optional [SingleRequestOptions](./generative-ai.singlerequestoptions.md) parameter will take precedence over the [RequestOptions](./generative-ai.requestoptions.md) values provided at the time of the initialization.
10+
911
**Signature:**
1012

1113
```typescript
12-
batchEmbedContents(batchEmbedContentRequest: BatchEmbedContentsRequest): Promise<BatchEmbedContentsResponse>;
14+
batchEmbedContents(batchEmbedContentRequest: BatchEmbedContentsRequest, requestOptions?: SingleRequestOptions): Promise<BatchEmbedContentsResponse>;
1315
```
1416

1517
## Parameters
1618

1719
| Parameter | Type | Description |
1820
| --- | --- | --- |
1921
| batchEmbedContentRequest | [BatchEmbedContentsRequest](./generative-ai.batchembedcontentsrequest.md) | |
22+
| requestOptions | [SingleRequestOptions](./generative-ai.singlerequestoptions.md) | _(Optional)_ |
2023

2124
**Returns:**
2225

0 commit comments

Comments
 (0)