@google/genai 0.10.0 → 0.11.0

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.
package/dist/genai.d.ts CHANGED
@@ -23,6 +23,17 @@ export declare enum ActivityHandling {
23
23
  export declare interface ActivityStart {
24
24
  }
25
25
 
26
+ /** Optional. Adapter size for tuning. */
27
+ export declare enum AdapterSize {
28
+ ADAPTER_SIZE_UNSPECIFIED = "ADAPTER_SIZE_UNSPECIFIED",
29
+ ADAPTER_SIZE_ONE = "ADAPTER_SIZE_ONE",
30
+ ADAPTER_SIZE_TWO = "ADAPTER_SIZE_TWO",
31
+ ADAPTER_SIZE_FOUR = "ADAPTER_SIZE_FOUR",
32
+ ADAPTER_SIZE_EIGHT = "ADAPTER_SIZE_EIGHT",
33
+ ADAPTER_SIZE_SIXTEEN = "ADAPTER_SIZE_SIXTEEN",
34
+ ADAPTER_SIZE_THIRTY_TWO = "ADAPTER_SIZE_THIRTY_TWO"
35
+ }
36
+
26
37
  /**
27
38
  * The ApiClient class is used to send requests to the Gemini API or Vertex AI
28
39
  * endpoints.
@@ -258,7 +269,7 @@ export declare class Caches extends BaseModule {
258
269
  * ```ts
259
270
  * const contents = ...; // Initialize the content to cache.
260
271
  * const response = await ai.caches.create({
261
- * model: 'gemini-1.5-flash',
272
+ * model: 'gemini-2.0-flash-001',
262
273
  * config: {
263
274
  * 'contents': contents,
264
275
  * 'displayName': 'test cache',
@@ -277,7 +288,7 @@ export declare class Caches extends BaseModule {
277
288
  *
278
289
  * @example
279
290
  * ```ts
280
- * await ai.caches.get({name: 'gemini-1.5-flash'});
291
+ * await ai.caches.get({name: '...'}); // The server-generated resource name.
281
292
  * ```
282
293
  */
283
294
  get(params: types.GetCachedContentParameters): Promise<types.CachedContent>;
@@ -289,7 +300,7 @@ export declare class Caches extends BaseModule {
289
300
  *
290
301
  * @example
291
302
  * ```ts
292
- * await ai.caches.delete({name: 'gemini-1.5-flash'});
303
+ * await ai.caches.delete({name: '...'}); // The server-generated resource name.
293
304
  * ```
294
305
  */
295
306
  delete(params: types.DeleteCachedContentParameters): Promise<types.DeleteCachedContentResponse>;
@@ -302,7 +313,7 @@ export declare class Caches extends BaseModule {
302
313
  * @example
303
314
  * ```ts
304
315
  * const response = await ai.caches.update({
305
- * name: 'gemini-1.5-flash',
316
+ * name: '...', // The server-generated resource name.
306
317
  * config: {'ttl': '7600s'}
307
318
  * });
308
319
  * ```
@@ -685,7 +696,7 @@ export declare interface CreateCachedContentConfig {
685
696
 
686
697
  /** Parameters for caches.create method. */
687
698
  export declare interface CreateCachedContentParameters {
688
- /** ID of the model to use. Example: gemini-1.5-flash */
699
+ /** ID of the model to use. Example: gemini-2.0-flash */
689
700
  model: string;
690
701
  /** Configuration that contains optional parameters.
691
702
  */
@@ -700,7 +711,7 @@ export declare interface CreateCachedContentParameters {
700
711
  export declare interface CreateChatParameters {
701
712
  /** The name of the model to use for the chat session.
702
713
 
703
- For example: 'gemini-2.0-flash', 'gemini-1.5-pro', etc. See gemini API
714
+ For example: 'gemini-2.0-flash', 'gemini-2.0-flash-lite', etc. See Gemini API
704
715
  docs to find the available models.
705
716
  */
706
717
  model: string;
@@ -791,11 +802,100 @@ export declare function createPartFromText(text: string): Part;
791
802
  */
792
803
  export declare function createPartFromUri(uri: string, mimeType: string): Part;
793
804
 
805
+ /** Supervised fine-tuning job creation request - optional fields. */
806
+ export declare interface CreateTuningJobConfig {
807
+ /** Used to override HTTP request options. */
808
+ httpOptions?: HttpOptions;
809
+ /** Abort signal which can be used to cancel the request.
810
+
811
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
812
+ operation will not cancel the request in the service. You will still
813
+ be charged usage for any applicable operations.
814
+ */
815
+ abortSignal?: AbortSignal;
816
+ /** Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
817
+ validationDataset?: TuningValidationDataset;
818
+ /** The display name of the tuned Model. The name can be up to 128 characters long and can consist of any UTF-8 characters. */
819
+ tunedModelDisplayName?: string;
820
+ /** The description of the TuningJob */
821
+ description?: string;
822
+ /** Number of complete passes the model makes over the entire training dataset during training. */
823
+ epochCount?: number;
824
+ /** Multiplier for adjusting the default learning rate. */
825
+ learningRateMultiplier?: number;
826
+ /** Adapter size for tuning. */
827
+ adapterSize?: AdapterSize;
828
+ /** The batch size hyperparameter for tuning. If not set, a default of 4 or 16 will be used based on the number of training examples. */
829
+ batchSize?: number;
830
+ /** The learning rate hyperparameter for tuning. If not set, a default of 0.001 or 0.0002 will be calculated based on the number of training examples. */
831
+ learningRate?: number;
832
+ }
833
+
834
+ /** Supervised fine-tuning job creation parameters - optional fields. */
835
+ export declare interface CreateTuningJobParameters {
836
+ /** The base model that is being tuned, e.g., "gemini-1.0-pro-002". */
837
+ baseModel: string;
838
+ /** Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
839
+ trainingDataset: TuningDataset;
840
+ /** Configuration for the tuning job. */
841
+ config?: CreateTuningJobConfig;
842
+ }
843
+
794
844
  /**
795
845
  * Creates a `Content` object with a user role from a `PartListUnion` object or `string`.
796
846
  */
797
847
  export declare function createUserContent(partOrString: PartListUnion | string): Content;
798
848
 
849
+ /** Distribution computed over a tuning dataset. */
850
+ export declare interface DatasetDistribution {
851
+ /** Output only. Defines the histogram bucket. */
852
+ buckets?: DatasetDistributionDistributionBucket[];
853
+ /** Output only. The maximum of the population values. */
854
+ max?: number;
855
+ /** Output only. The arithmetic mean of the values in the population. */
856
+ mean?: number;
857
+ /** Output only. The median of the values in the population. */
858
+ median?: number;
859
+ /** Output only. The minimum of the population values. */
860
+ min?: number;
861
+ /** Output only. The 5th percentile of the values in the population. */
862
+ p5?: number;
863
+ /** Output only. The 95th percentile of the values in the population. */
864
+ p95?: number;
865
+ /** Output only. Sum of a given population of values. */
866
+ sum?: number;
867
+ }
868
+
869
+ /** Dataset bucket used to create a histogram for the distribution given a population of values. */
870
+ export declare interface DatasetDistributionDistributionBucket {
871
+ /** Output only. Number of values in the bucket. */
872
+ count?: string;
873
+ /** Output only. Left bound of the bucket. */
874
+ left?: number;
875
+ /** Output only. Right bound of the bucket. */
876
+ right?: number;
877
+ }
878
+
879
+ /** Statistics computed over a tuning dataset. */
880
+ export declare interface DatasetStats {
881
+ /** Output only. Number of billable characters in the tuning dataset. */
882
+ totalBillableCharacterCount?: string;
883
+ /** Output only. Number of tuning characters in the tuning dataset. */
884
+ totalTuningCharacterCount?: string;
885
+ /** Output only. Number of examples in the tuning dataset. */
886
+ tuningDatasetExampleCount?: string;
887
+ /** Output only. Number of tuning steps for this Tuning Job. */
888
+ tuningStepCount?: string;
889
+ /** Output only. Sample user messages in the training dataset uri. */
890
+ userDatasetExamples?: Content[];
891
+ /** Output only. Dataset distributions for the user input tokens. */
892
+ userInputTokenDistribution?: DatasetDistribution;
893
+ /** Output only. Dataset distributions for the messages per example. */
894
+ userMessagePerExampleDistribution?: DatasetDistribution;
895
+ /** Output only. Dataset distributions for the user output tokens. */
896
+ userOutputTokenDistribution?: DatasetDistribution;
897
+ }
898
+
799
899
  /** Optional parameters for caches.delete method. */
800
900
  export declare interface DeleteCachedContentConfig {
801
901
  /** Used to override HTTP request options. */
@@ -848,6 +948,63 @@ export declare interface DeleteFileParameters {
848
948
  export declare class DeleteFileResponse {
849
949
  }
850
950
 
951
+ /** Configuration for deleting a tuned model. */
952
+ export declare interface DeleteModelConfig {
953
+ /** Used to override HTTP request options. */
954
+ httpOptions?: HttpOptions;
955
+ /** Abort signal which can be used to cancel the request.
956
+
957
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
958
+ operation will not cancel the request in the service. You will still
959
+ be charged usage for any applicable operations.
960
+ */
961
+ abortSignal?: AbortSignal;
962
+ }
963
+
964
+ /** Parameters for deleting a tuned model. */
965
+ export declare interface DeleteModelParameters {
966
+ model: string;
967
+ /** Optional parameters for the request. */
968
+ config?: DeleteModelConfig;
969
+ }
970
+
971
+ export declare class DeleteModelResponse {
972
+ }
973
+
974
+ /** Statistics computed for datasets used for distillation. */
975
+ export declare interface DistillationDataStats {
976
+ /** Output only. Statistics computed for the training dataset. */
977
+ trainingDatasetStats?: DatasetStats;
978
+ }
979
+
980
+ /** Hyperparameters for Distillation. */
981
+ export declare interface DistillationHyperParameters {
982
+ /** Optional. Adapter size for distillation. */
983
+ adapterSize?: AdapterSize;
984
+ /** Optional. Number of complete passes the model makes over the entire training dataset during training. */
985
+ epochCount?: string;
986
+ /** Optional. Multiplier for adjusting the default learning rate. */
987
+ learningRateMultiplier?: number;
988
+ }
989
+
990
+ /** Tuning Spec for Distillation. */
991
+ export declare interface DistillationSpec {
992
+ /** The base teacher model that is being distilled, e.g., "gemini-1.0-pro-002". */
993
+ baseTeacherModel?: string;
994
+ /** Optional. Hyperparameters for Distillation. */
995
+ hyperParameters?: DistillationHyperParameters;
996
+ /** Required. A path in a Cloud Storage bucket, which will be treated as the root output directory of the distillation pipeline. It is used by the system to generate the paths of output artifacts. */
997
+ pipelineRootDirectory?: string;
998
+ /** The student model that is being tuned, e.g., "google/gemma-2b-1.1-it". */
999
+ studentModel?: string;
1000
+ /** Required. Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
1001
+ trainingDatasetUri?: string;
1002
+ /** The resource name of the Tuned teacher model. Format: `projects/{project}/locations/{location}/models/{model}`. */
1003
+ tunedTeacherModelSource?: string;
1004
+ /** Optional. Cloud Storage path to file containing validation dataset for tuning. The dataset must be formatted as a JSONL file. */
1005
+ validationDatasetUri?: string;
1006
+ }
1007
+
851
1008
  /** Used to override the default configuration. */
852
1009
  export declare interface DownloadFileConfig {
853
1010
  /** Used to override HTTP request options. */
@@ -940,6 +1097,12 @@ export declare class EmbedContentResponse {
940
1097
  metadata?: EmbedContentMetadata;
941
1098
  }
942
1099
 
1100
+ /** Represents a customer-managed encryption key spec that can be applied to a top-level resource. */
1101
+ export declare interface EncryptionSpec {
1102
+ /** Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created. */
1103
+ kmsKeyName?: string;
1104
+ }
1105
+
943
1106
  /** An endpoint where you deploy models. */
944
1107
  export declare interface Endpoint {
945
1108
  /** Resource name of the endpoint. */
@@ -1220,21 +1383,16 @@ export declare enum FunctionCallingConfigMode {
1220
1383
  NONE = "NONE"
1221
1384
  }
1222
1385
 
1223
- /** Defines a function that the model can generate JSON inputs for.
1224
-
1225
- The inputs are based on `OpenAPI 3.0 specifications
1226
- <https://spec.openapis.org/oas/v3.0.3>`_.
1227
- */
1386
+ /** Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client. */
1228
1387
  export declare interface FunctionDeclaration {
1229
- /** Describes the output from the function in the OpenAPI JSON Schema
1230
- Object format. */
1231
- response?: Schema;
1232
1388
  /** Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function. */
1233
1389
  description?: string;
1234
1390
  /** Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64. */
1235
1391
  name?: string;
1236
1392
  /** Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1 */
1237
1393
  parameters?: Schema;
1394
+ /** Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function. */
1395
+ response?: Schema;
1238
1396
  }
1239
1397
 
1240
1398
  /** A function response. */
@@ -1887,6 +2045,26 @@ export declare interface GetOperationParameters {
1887
2045
  config?: GetOperationConfig;
1888
2046
  }
1889
2047
 
2048
+ /** Optional parameters for tunings.get method. */
2049
+ export declare interface GetTuningJobConfig {
2050
+ /** Used to override HTTP request options. */
2051
+ httpOptions?: HttpOptions;
2052
+ /** Abort signal which can be used to cancel the request.
2053
+
2054
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
2055
+ operation will not cancel the request in the service. You will still
2056
+ be charged usage for any applicable operations.
2057
+ */
2058
+ abortSignal?: AbortSignal;
2059
+ }
2060
+
2061
+ /** Parameters for the get method. */
2062
+ export declare interface GetTuningJobParameters {
2063
+ name: string;
2064
+ /** Optional parameters for the request. */
2065
+ config?: GetTuningJobConfig;
2066
+ }
2067
+
1890
2068
  /**
1891
2069
  * The Google GenAI SDK.
1892
2070
  *
@@ -1929,6 +2107,7 @@ export declare class GoogleGenAI {
1929
2107
  readonly caches: Caches;
1930
2108
  readonly files: Files;
1931
2109
  readonly operations: Operations;
2110
+ readonly tunings: Tunings;
1932
2111
  constructor(options: GoogleGenAIOptions);
1933
2112
  }
1934
2113
 
@@ -1943,7 +2122,7 @@ export declare interface GoogleGenAIOptions {
1943
2122
  *
1944
2123
  * @remarks
1945
2124
  * When true, the {@link https://cloud.google.com/vertex-ai/docs/reference/rest | Vertex AI API} will used.
1946
- * When false, the {@link https://cloud.google.com/vertex-ai/docs/reference/rest | Gemini API} will be used.
2125
+ * When false, the {@link https://ai.google.dev/api | Gemini API} will be used.
1947
2126
  *
1948
2127
  * If unset, default SDK behavior is to use the Gemini API service.
1949
2128
  */
@@ -1951,12 +2130,14 @@ export declare interface GoogleGenAIOptions {
1951
2130
  /**
1952
2131
  * Optional. The Google Cloud project ID for Vertex AI clients.
1953
2132
  *
2133
+ * Find your project ID: https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects
2134
+ *
1954
2135
  * @remarks
1955
2136
  * Only supported on Node runtimes, ignored on browser runtimes.
1956
2137
  */
1957
2138
  project?: string;
1958
2139
  /**
1959
- * Optional. The Google Cloud project region for Vertex AI clients.
2140
+ * Optional. The Google Cloud project {@link https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations | location} for Vertex AI clients.
1960
2141
  *
1961
2142
  * @remarks
1962
2143
  * Only supported on Node runtimes, ignored on browser runtimes.
@@ -1993,6 +2174,16 @@ export declare interface GoogleGenAIOptions {
1993
2174
  httpOptions?: HttpOptions;
1994
2175
  }
1995
2176
 
2177
+ /** The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). */
2178
+ export declare interface GoogleRpcStatus {
2179
+ /** The status code, which should be an enum value of google.rpc.Code. */
2180
+ code?: number;
2181
+ /** A list of messages that carry the error details. There is a common set of message types for APIs to use. */
2182
+ details?: Record<string, unknown>[];
2183
+ /** A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client. */
2184
+ message?: string;
2185
+ }
2186
+
1996
2187
  /** Tool to support Google Search in Model. Powered by Google. */
1997
2188
  export declare interface GoogleSearch {
1998
2189
  }
@@ -2209,6 +2400,22 @@ export declare enum ImagePromptLanguage {
2209
2400
  hi = "hi"
2210
2401
  }
2211
2402
 
2403
+ /** Output only. The detailed state of the job. */
2404
+ export declare enum JobState {
2405
+ JOB_STATE_UNSPECIFIED = "JOB_STATE_UNSPECIFIED",
2406
+ JOB_STATE_QUEUED = "JOB_STATE_QUEUED",
2407
+ JOB_STATE_PENDING = "JOB_STATE_PENDING",
2408
+ JOB_STATE_RUNNING = "JOB_STATE_RUNNING",
2409
+ JOB_STATE_SUCCEEDED = "JOB_STATE_SUCCEEDED",
2410
+ JOB_STATE_FAILED = "JOB_STATE_FAILED",
2411
+ JOB_STATE_CANCELLING = "JOB_STATE_CANCELLING",
2412
+ JOB_STATE_CANCELLED = "JOB_STATE_CANCELLED",
2413
+ JOB_STATE_PAUSED = "JOB_STATE_PAUSED",
2414
+ JOB_STATE_EXPIRED = "JOB_STATE_EXPIRED",
2415
+ JOB_STATE_UPDATING = "JOB_STATE_UPDATING",
2416
+ JOB_STATE_PARTIALLY_SUCCEEDED = "JOB_STATE_PARTIALLY_SUCCEEDED"
2417
+ }
2418
+
2212
2419
  /** Required. Programming language of the `code`. */
2213
2420
  export declare enum Language {
2214
2421
  LANGUAGE_UNSPECIFIED = "LANGUAGE_UNSPECIFIED",
@@ -2273,6 +2480,35 @@ export declare class ListFilesResponse {
2273
2480
  files?: File_2[];
2274
2481
  }
2275
2482
 
2483
+ /** Configuration for the list tuning jobs method. */
2484
+ export declare interface ListTuningJobsConfig {
2485
+ /** Used to override HTTP request options. */
2486
+ httpOptions?: HttpOptions;
2487
+ /** Abort signal which can be used to cancel the request.
2488
+
2489
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
2490
+ operation will not cancel the request in the service. You will still
2491
+ be charged usage for any applicable operations.
2492
+ */
2493
+ abortSignal?: AbortSignal;
2494
+ pageSize?: number;
2495
+ pageToken?: string;
2496
+ filter?: string;
2497
+ }
2498
+
2499
+ /** Parameters for the list tuning jobs method. */
2500
+ export declare interface ListTuningJobsParameters {
2501
+ config?: ListTuningJobsConfig;
2502
+ }
2503
+
2504
+ /** Response for the list tuning jobs method. */
2505
+ export declare class ListTuningJobsResponse {
2506
+ /** A token to retrieve the next page of results. Pass to ListTuningJobsRequest.page_token to obtain that page. */
2507
+ nextPageToken?: string;
2508
+ /** List of TuningJobs in the requested page. */
2509
+ tuningJobs?: TuningJob[];
2510
+ }
2511
+
2276
2512
  /**
2277
2513
  Live class encapsulates the configuration for live interaction with the
2278
2514
  Generative Language API. It embeds ApiClient for general API settings.
@@ -2987,6 +3223,36 @@ export declare class Models extends BaseModule {
2987
3223
  * ```
2988
3224
  */
2989
3225
  get(params: types.GetModelParameters): Promise<types.Model>;
3226
+ /**
3227
+ * Updates a tuned model by its name.
3228
+ *
3229
+ * @param params - The parameters for updating the model.
3230
+ * @return The response from the API.
3231
+ *
3232
+ * @example
3233
+ * ```ts
3234
+ * const response = await ai.models.update({
3235
+ * model: 'tuned-model-name',
3236
+ * config: {
3237
+ * displayName: 'New display name',
3238
+ * description: 'New description',
3239
+ * },
3240
+ * });
3241
+ * ```
3242
+ */
3243
+ update(params: types.UpdateModelParameters): Promise<types.Model>;
3244
+ /**
3245
+ * Deletes a tuned model by its name.
3246
+ *
3247
+ * @param params - The parameters for deleting the model.
3248
+ * @return The response from the API.
3249
+ *
3250
+ * @example
3251
+ * ```ts
3252
+ * const response = await ai.models.delete({model: 'tuned-model-name'});
3253
+ * ```
3254
+ */
3255
+ delete(params: types.DeleteModelParameters): Promise<types.DeleteModelResponse>;
2990
3256
  /**
2991
3257
  * Counts the number of tokens in the given contents. Multimodal input is
2992
3258
  * supported for Gemini models.
@@ -3055,6 +3321,18 @@ export declare interface ModelSelectionConfig {
3055
3321
  featureSelectionPreference?: FeatureSelectionPreference;
3056
3322
  }
3057
3323
 
3324
+ /** A long-running operation. */
3325
+ export declare interface Operation {
3326
+ /** The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`. */
3327
+ name?: string;
3328
+ /** Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any. */
3329
+ metadata?: Record<string, unknown>;
3330
+ /** If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available. */
3331
+ done?: boolean;
3332
+ /** The error result of the operation in case of failure or cancellation. */
3333
+ error?: Record<string, unknown>;
3334
+ }
3335
+
3058
3336
  /** Parameters for the get method of the operations module. */
3059
3337
  export declare interface OperationGetParameters {
3060
3338
  /** The operation to be retrieved. */
@@ -3246,6 +3524,16 @@ export declare interface Part {
3246
3524
 
3247
3525
  export declare type PartListUnion = PartUnion[] | PartUnion;
3248
3526
 
3527
+ /** Tuning spec for Partner models. */
3528
+ export declare interface PartnerModelTuningSpec {
3529
+ /** Hyperparameters for tuning. The accepted hyper_parameters and their valid range of values will differ depending on the base model. */
3530
+ hyperParameters?: Record<string, unknown>;
3531
+ /** Required. Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
3532
+ trainingDatasetUri?: string;
3533
+ /** Optional. Cloud Storage path to file containing validation dataset for tuning. The dataset must be formatted as a JSONL file. */
3534
+ validationDatasetUri?: string;
3535
+ }
3536
+
3249
3537
  export declare type PartUnion = Part | string;
3250
3538
 
3251
3539
  /** Enum that controls the generation of people. */
@@ -3431,45 +3719,42 @@ export declare interface SafetySetting {
3431
3719
  threshold?: HarmBlockThreshold;
3432
3720
  }
3433
3721
 
3434
- /** Schema that defines the format of input and output data.
3435
-
3436
- Represents a select subset of an OpenAPI 3.0 schema object.
3437
- */
3722
+ /** Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed. */
3438
3723
  export declare interface Schema {
3439
- /** Optional. Example of the object. Will only populated when the object is the root. */
3440
- example?: unknown;
3441
- /** Optional. Pattern of the Type.STRING to restrict a string to a regular expression. */
3442
- pattern?: string;
3443
- /** Optional. Default value of the data. */
3444
- default?: unknown;
3445
- /** Optional. Maximum length of the Type.STRING */
3446
- maxLength?: string;
3447
- /** Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING */
3448
- minLength?: string;
3449
- /** Optional. Minimum number of the properties for Type.OBJECT. */
3450
- minProperties?: string;
3451
- /** Optional. Maximum number of the properties for Type.OBJECT. */
3452
- maxProperties?: string;
3453
3724
  /** Optional. The value should be validated against any (one or more) of the subschemas in the list. */
3454
3725
  anyOf?: Schema[];
3726
+ /** Optional. Default value of the data. */
3727
+ default?: unknown;
3455
3728
  /** Optional. The description of the data. */
3456
3729
  description?: string;
3457
3730
  /** Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:["101", "201", "301"]} */
3458
3731
  enum?: string[];
3732
+ /** Optional. Example of the object. Will only populated when the object is the root. */
3733
+ example?: unknown;
3459
3734
  /** Optional. The format of the data. Supported formats: for NUMBER type: "float", "double" for INTEGER type: "int32", "int64" for STRING type: "email", "byte", etc */
3460
3735
  format?: string;
3461
3736
  /** Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY. */
3462
3737
  items?: Schema;
3463
3738
  /** Optional. Maximum number of the elements for Type.ARRAY. */
3464
3739
  maxItems?: string;
3740
+ /** Optional. Maximum length of the Type.STRING */
3741
+ maxLength?: string;
3742
+ /** Optional. Maximum number of the properties for Type.OBJECT. */
3743
+ maxProperties?: string;
3465
3744
  /** Optional. Maximum value of the Type.INTEGER and Type.NUMBER */
3466
3745
  maximum?: number;
3467
3746
  /** Optional. Minimum number of the elements for Type.ARRAY. */
3468
3747
  minItems?: string;
3748
+ /** Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING */
3749
+ minLength?: string;
3750
+ /** Optional. Minimum number of the properties for Type.OBJECT. */
3751
+ minProperties?: string;
3469
3752
  /** Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER */
3470
3753
  minimum?: number;
3471
3754
  /** Optional. Indicates if the value may be null. */
3472
3755
  nullable?: boolean;
3756
+ /** Optional. Pattern of the Type.STRING to restrict a string to a regular expression. */
3757
+ pattern?: string;
3473
3758
  /** Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT. */
3474
3759
  properties?: Record<string, Schema>;
3475
3760
  /** Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties. */
@@ -3778,6 +4063,84 @@ export declare enum SubjectReferenceType {
3778
4063
  SUBJECT_TYPE_PRODUCT = "SUBJECT_TYPE_PRODUCT"
3779
4064
  }
3780
4065
 
4066
+ /** Hyperparameters for SFT. */
4067
+ export declare interface SupervisedHyperParameters {
4068
+ /** Optional. Adapter size for tuning. */
4069
+ adapterSize?: AdapterSize;
4070
+ /** Optional. Number of complete passes the model makes over the entire training dataset during training. */
4071
+ epochCount?: string;
4072
+ /** Optional. Multiplier for adjusting the default learning rate. */
4073
+ learningRateMultiplier?: number;
4074
+ }
4075
+
4076
+ /** Dataset distribution for Supervised Tuning. */
4077
+ export declare interface SupervisedTuningDatasetDistribution {
4078
+ /** Output only. Sum of a given population of values that are billable. */
4079
+ billableSum?: string;
4080
+ /** Output only. Defines the histogram bucket. */
4081
+ buckets?: SupervisedTuningDatasetDistributionDatasetBucket[];
4082
+ /** Output only. The maximum of the population values. */
4083
+ max?: number;
4084
+ /** Output only. The arithmetic mean of the values in the population. */
4085
+ mean?: number;
4086
+ /** Output only. The median of the values in the population. */
4087
+ median?: number;
4088
+ /** Output only. The minimum of the population values. */
4089
+ min?: number;
4090
+ /** Output only. The 5th percentile of the values in the population. */
4091
+ p5?: number;
4092
+ /** Output only. The 95th percentile of the values in the population. */
4093
+ p95?: number;
4094
+ /** Output only. Sum of a given population of values. */
4095
+ sum?: string;
4096
+ }
4097
+
4098
+ /** Dataset bucket used to create a histogram for the distribution given a population of values. */
4099
+ export declare interface SupervisedTuningDatasetDistributionDatasetBucket {
4100
+ /** Output only. Number of values in the bucket. */
4101
+ count?: number;
4102
+ /** Output only. Left bound of the bucket. */
4103
+ left?: number;
4104
+ /** Output only. Right bound of the bucket. */
4105
+ right?: number;
4106
+ }
4107
+
4108
+ /** Tuning data statistics for Supervised Tuning. */
4109
+ export declare interface SupervisedTuningDataStats {
4110
+ /** Output only. Number of billable characters in the tuning dataset. */
4111
+ totalBillableCharacterCount?: string;
4112
+ /** Output only. Number of billable tokens in the tuning dataset. */
4113
+ totalBillableTokenCount?: string;
4114
+ /** The number of examples in the dataset that have been truncated by any amount. */
4115
+ totalTruncatedExampleCount?: string;
4116
+ /** Output only. Number of tuning characters in the tuning dataset. */
4117
+ totalTuningCharacterCount?: string;
4118
+ /** A partial sample of the indices (starting from 1) of the truncated examples. */
4119
+ truncatedExampleIndices?: string[];
4120
+ /** Output only. Number of examples in the tuning dataset. */
4121
+ tuningDatasetExampleCount?: string;
4122
+ /** Output only. Number of tuning steps for this Tuning Job. */
4123
+ tuningStepCount?: string;
4124
+ /** Output only. Sample user messages in the training dataset uri. */
4125
+ userDatasetExamples?: Content[];
4126
+ /** Output only. Dataset distributions for the user input tokens. */
4127
+ userInputTokenDistribution?: SupervisedTuningDatasetDistribution;
4128
+ /** Output only. Dataset distributions for the messages per example. */
4129
+ userMessagePerExampleDistribution?: SupervisedTuningDatasetDistribution;
4130
+ /** Output only. Dataset distributions for the user output tokens. */
4131
+ userOutputTokenDistribution?: SupervisedTuningDatasetDistribution;
4132
+ }
4133
+
4134
+ /** Tuning Spec for Supervised Tuning for first party models. */
4135
+ export declare interface SupervisedTuningSpec {
4136
+ /** Optional. Hyperparameters for SFT. */
4137
+ hyperParameters?: SupervisedHyperParameters;
4138
+ /** Required. Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
4139
+ trainingDatasetUri?: string;
4140
+ /** Optional. Cloud Storage path to file containing validation dataset for tuning. The dataset must be formatted as a JSONL file. */
4141
+ validationDatasetUri?: string;
4142
+ }
4143
+
3781
4144
  export declare interface TestTableFile {
3782
4145
  comment?: string;
3783
4146
  testMethod?: string;
@@ -3826,8 +4189,6 @@ export declare interface TokensInfo {
3826
4189
 
3827
4190
  /** Tool details of a tool that the model may use to generate a response. */
3828
4191
  export declare interface Tool {
3829
- /** List of function declarations that the tool supports. */
3830
- functionDeclarations?: FunctionDeclaration[];
3831
4192
  /** Optional. Retrieval tool type. System will always execute the provided retrieval tool(s) to get external knowledge to answer the prompt. Retrieval results are presented to the model for generation. */
3832
4193
  retrieval?: Retrieval;
3833
4194
  /** Optional. Google Search tool type. Specialized retrieval tool
@@ -3837,6 +4198,8 @@ export declare interface Tool {
3837
4198
  googleSearchRetrieval?: GoogleSearchRetrieval;
3838
4199
  /** Optional. CodeExecution tool type. Enables the model to execute code as part of generation. This field is only used by the Gemini Developer API services. */
3839
4200
  codeExecution?: ToolCodeExecution;
4201
+ /** Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall in the response. User should provide a FunctionResponse for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 128 function declarations can be provided. */
4202
+ functionDeclarations?: FunctionDeclaration[];
3840
4203
  }
3841
4204
 
3842
4205
  /** Tool that executes code generated by the model, and automatically returns the result to the model. See also [ExecutableCode]and [CodeExecutionResult] which are input and output to this tool. */
@@ -3871,6 +4234,13 @@ export declare interface Transcription {
3871
4234
  finished?: boolean;
3872
4235
  }
3873
4236
 
4237
+ export declare interface TunedModel {
4238
+ /** Output only. The resource name of the TunedModel. Format: `projects/{project}/locations/{location}/models/{model}`. */
4239
+ model?: string;
4240
+ /** Output only. A resource name of an Endpoint. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`. */
4241
+ endpoint?: string;
4242
+ }
4243
+
3874
4244
  /** A tuned machine learning model. */
3875
4245
  export declare interface TunedModelInfo {
3876
4246
  /** ID of the base model that you want to tune. */
@@ -3881,6 +4251,115 @@ export declare interface TunedModelInfo {
3881
4251
  updateTime?: string;
3882
4252
  }
3883
4253
 
4254
+ /** Supervised fine-tuning training dataset. */
4255
+ export declare interface TuningDataset {
4256
+ /** GCS URI of the file containing training dataset in JSONL format. */
4257
+ gcsUri?: string;
4258
+ /** Inline examples with simple input/output text. */
4259
+ examples?: TuningExample[];
4260
+ }
4261
+
4262
+ /** The tuning data statistic values for TuningJob. */
4263
+ export declare interface TuningDataStats {
4264
+ /** Output only. Statistics for distillation. */
4265
+ distillationDataStats?: DistillationDataStats;
4266
+ /** The SFT Tuning data stats. */
4267
+ supervisedTuningDataStats?: SupervisedTuningDataStats;
4268
+ }
4269
+
4270
+ export declare interface TuningExample {
4271
+ /** Text model input. */
4272
+ textInput?: string;
4273
+ /** The expected model output. */
4274
+ output?: string;
4275
+ }
4276
+
4277
+ /** A tuning job. */
4278
+ export declare interface TuningJob {
4279
+ /** Output only. Identifier. Resource name of a TuningJob. Format: `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` */
4280
+ name?: string;
4281
+ /** Output only. The detailed state of the job. */
4282
+ state?: JobState;
4283
+ /** Output only. Time when the TuningJob was created. */
4284
+ createTime?: string;
4285
+ /** Output only. Time when the TuningJob for the first time entered the `JOB_STATE_RUNNING` state. */
4286
+ startTime?: string;
4287
+ /** Output only. Time when the TuningJob entered any of the following JobStates: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`, `JOB_STATE_EXPIRED`. */
4288
+ endTime?: string;
4289
+ /** Output only. Time when the TuningJob was most recently updated. */
4290
+ updateTime?: string;
4291
+ /** Output only. Only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`. */
4292
+ error?: GoogleRpcStatus;
4293
+ /** Optional. The description of the TuningJob. */
4294
+ description?: string;
4295
+ /** The base model that is being tuned, e.g., "gemini-1.0-pro-002". . */
4296
+ baseModel?: string;
4297
+ /** Output only. The tuned model resources associated with this TuningJob. */
4298
+ tunedModel?: TunedModel;
4299
+ /** Tuning Spec for Supervised Fine Tuning. */
4300
+ supervisedTuningSpec?: SupervisedTuningSpec;
4301
+ /** Output only. The tuning data statistics associated with this TuningJob. */
4302
+ tuningDataStats?: TuningDataStats;
4303
+ /** Customer-managed encryption key options for a TuningJob. If this is set, then all resources created by the TuningJob will be encrypted with the provided encryption key. */
4304
+ encryptionSpec?: EncryptionSpec;
4305
+ /** Tuning Spec for open sourced and third party Partner models. */
4306
+ partnerModelTuningSpec?: PartnerModelTuningSpec;
4307
+ /** Tuning Spec for Distillation. */
4308
+ distillationSpec?: DistillationSpec;
4309
+ /** Output only. The Experiment associated with this TuningJob. */
4310
+ experiment?: string;
4311
+ /** Optional. The labels with user-defined metadata to organize TuningJob and generated resources such as Model and Endpoint. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. */
4312
+ labels?: Record<string, string>;
4313
+ /** Output only. The resource name of the PipelineJob associated with the TuningJob. Format: `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`. */
4314
+ pipelineJob?: string;
4315
+ /** Optional. The display name of the TunedModel. The name can be up to 128 characters long and can consist of any UTF-8 characters. */
4316
+ tunedModelDisplayName?: string;
4317
+ }
4318
+
4319
+ declare class Tunings extends BaseModule {
4320
+ private readonly apiClient;
4321
+ constructor(apiClient: ApiClient);
4322
+ /**
4323
+ * Gets a TuningJob.
4324
+ *
4325
+ * @param name - The resource name of the tuning job.
4326
+ * @return - A TuningJob object.
4327
+ *
4328
+ * @experimental - The SDK's tuning implementation is experimental, and may
4329
+ * change in future versions.
4330
+ */
4331
+ get: (params: types.GetTuningJobParameters) => Promise<types.TuningJob>;
4332
+ /**
4333
+ * Lists tuning jobs.
4334
+ *
4335
+ * @param config - The configuration for the list request.
4336
+ * @return - A list of tuning jobs.
4337
+ *
4338
+ * @experimental - The SDK's tuning implementation is experimental, and may
4339
+ * change in future versions.
4340
+ */
4341
+ list: (params?: types.ListTuningJobsParameters) => Promise<Pager<types.TuningJob>>;
4342
+ /**
4343
+ * Creates a supervised fine-tuning job.
4344
+ *
4345
+ * @param params - The parameters for the tuning job.
4346
+ * @return - A TuningJob operation.
4347
+ *
4348
+ * @experimental - The SDK's tuning implementation is experimental, and may
4349
+ * change in future versions.
4350
+ */
4351
+ tune: (params: types.CreateTuningJobParameters) => Promise<types.TuningJob>;
4352
+ private getInternal;
4353
+ private listInternal;
4354
+ private tuneInternal;
4355
+ private tuneMldevInternal;
4356
+ }
4357
+
4358
+ export declare interface TuningValidationDataset {
4359
+ /** GCS URI of the file containing validation dataset in JSONL format. */
4360
+ gcsUri?: string;
4361
+ }
4362
+
3884
4363
  /** Options about which input is included in the user's turn. */
3885
4364
  export declare enum TurnCoverage {
3886
4365
  TURN_COVERAGE_UNSPECIFIED = "TURN_COVERAGE_UNSPECIFIED",
@@ -3912,11 +4391,11 @@ declare namespace types {
3912
4391
  createModelContent,
3913
4392
  Outcome,
3914
4393
  Language,
3915
- Type,
3916
4394
  HarmCategory,
3917
4395
  HarmBlockMethod,
3918
4396
  HarmBlockThreshold,
3919
4397
  Mode,
4398
+ Type,
3920
4399
  FinishReason,
3921
4400
  HarmProbability,
3922
4401
  HarmSeverity,
@@ -3924,6 +4403,8 @@ declare namespace types {
3924
4403
  TrafficType,
3925
4404
  Modality,
3926
4405
  MediaResolution,
4406
+ JobState,
4407
+ AdapterSize,
3927
4408
  FeatureSelectionPreference,
3928
4409
  DynamicRetrievalConfigMode,
3929
4410
  FunctionCallingConfigMode,
@@ -3950,10 +4431,8 @@ declare namespace types {
3950
4431
  Part,
3951
4432
  Content,
3952
4433
  HttpOptions,
3953
- Schema,
3954
4434
  ModelSelectionConfig,
3955
4435
  SafetySetting,
3956
- FunctionDeclaration,
3957
4436
  GoogleSearch,
3958
4437
  DynamicRetrievalConfig,
3959
4438
  GoogleSearchRetrieval,
@@ -3968,6 +4447,8 @@ declare namespace types {
3968
4447
  VertexRagStore,
3969
4448
  Retrieval,
3970
4449
  ToolCodeExecution,
4450
+ Schema,
4451
+ FunctionDeclaration,
3971
4452
  Tool,
3972
4453
  FunctionCallingConfig,
3973
4454
  ToolConfig,
@@ -4017,6 +4498,11 @@ declare namespace types {
4017
4498
  Endpoint,
4018
4499
  TunedModelInfo,
4019
4500
  Model,
4501
+ UpdateModelConfig,
4502
+ UpdateModelParameters,
4503
+ DeleteModelConfig,
4504
+ DeleteModelParameters,
4505
+ DeleteModelResponse,
4020
4506
  GenerationConfig,
4021
4507
  CountTokensConfig,
4022
4508
  CountTokensParameters,
@@ -4031,6 +4517,34 @@ declare namespace types {
4031
4517
  GeneratedVideo,
4032
4518
  GenerateVideosResponse,
4033
4519
  GenerateVideosOperation,
4520
+ GetTuningJobConfig,
4521
+ GetTuningJobParameters,
4522
+ TunedModel,
4523
+ GoogleRpcStatus,
4524
+ SupervisedHyperParameters,
4525
+ SupervisedTuningSpec,
4526
+ DatasetDistributionDistributionBucket,
4527
+ DatasetDistribution,
4528
+ DatasetStats,
4529
+ DistillationDataStats,
4530
+ SupervisedTuningDatasetDistributionDatasetBucket,
4531
+ SupervisedTuningDatasetDistribution,
4532
+ SupervisedTuningDataStats,
4533
+ TuningDataStats,
4534
+ EncryptionSpec,
4535
+ PartnerModelTuningSpec,
4536
+ DistillationHyperParameters,
4537
+ DistillationSpec,
4538
+ TuningJob,
4539
+ ListTuningJobsConfig,
4540
+ ListTuningJobsParameters,
4541
+ ListTuningJobsResponse,
4542
+ TuningExample,
4543
+ TuningDataset,
4544
+ TuningValidationDataset,
4545
+ CreateTuningJobConfig,
4546
+ CreateTuningJobParameters,
4547
+ Operation,
4034
4548
  CreateCachedContentConfig,
4035
4549
  CreateCachedContentParameters,
4036
4550
  CachedContentUsageMetadata,
@@ -4151,6 +4665,27 @@ export declare interface UpdateCachedContentParameters {
4151
4665
  config?: UpdateCachedContentConfig;
4152
4666
  }
4153
4667
 
4668
+ /** Configuration for updating a tuned model. */
4669
+ export declare interface UpdateModelConfig {
4670
+ /** Used to override HTTP request options. */
4671
+ httpOptions?: HttpOptions;
4672
+ /** Abort signal which can be used to cancel the request.
4673
+
4674
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
4675
+ operation will not cancel the request in the service. You will still
4676
+ be charged usage for any applicable operations.
4677
+ */
4678
+ abortSignal?: AbortSignal;
4679
+ displayName?: string;
4680
+ description?: string;
4681
+ }
4682
+
4683
+ /** Configuration for updating a tuned model. */
4684
+ export declare interface UpdateModelParameters {
4685
+ model: string;
4686
+ config?: UpdateModelConfig;
4687
+ }
4688
+
4154
4689
  declare interface Uploader {
4155
4690
  /**
4156
4691
  * Uploads a file to the given upload url.