@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.
@@ -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
  *
@@ -1941,6 +2119,7 @@ export declare class GoogleGenAI {
1941
2119
  readonly caches: Caches;
1942
2120
  readonly files: Files;
1943
2121
  readonly operations: Operations;
2122
+ readonly tunings: Tunings;
1944
2123
  constructor(options: GoogleGenAIOptions);
1945
2124
  }
1946
2125
 
@@ -1955,7 +2134,7 @@ export declare interface GoogleGenAIOptions {
1955
2134
  *
1956
2135
  * @remarks
1957
2136
  * When true, the {@link https://cloud.google.com/vertex-ai/docs/reference/rest | Vertex AI API} will used.
1958
- * When false, the {@link https://cloud.google.com/vertex-ai/docs/reference/rest | Gemini API} will be used.
2137
+ * When false, the {@link https://ai.google.dev/api | Gemini API} will be used.
1959
2138
  *
1960
2139
  * If unset, default SDK behavior is to use the Gemini API service.
1961
2140
  */
@@ -1963,12 +2142,14 @@ export declare interface GoogleGenAIOptions {
1963
2142
  /**
1964
2143
  * Optional. The Google Cloud project ID for Vertex AI clients.
1965
2144
  *
2145
+ * Find your project ID: https://cloud.google.com/resource-manager/docs/creating-managing-projects#identifying_projects
2146
+ *
1966
2147
  * @remarks
1967
2148
  * Only supported on Node runtimes, ignored on browser runtimes.
1968
2149
  */
1969
2150
  project?: string;
1970
2151
  /**
1971
- * Optional. The Google Cloud project region for Vertex AI clients.
2152
+ * Optional. The Google Cloud project {@link https://cloud.google.com/vertex-ai/generative-ai/docs/learn/locations | location} for Vertex AI clients.
1972
2153
  *
1973
2154
  * @remarks
1974
2155
  * Only supported on Node runtimes, ignored on browser runtimes.
@@ -2005,6 +2186,16 @@ export declare interface GoogleGenAIOptions {
2005
2186
  httpOptions?: HttpOptions;
2006
2187
  }
2007
2188
 
2189
+ /** 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). */
2190
+ export declare interface GoogleRpcStatus {
2191
+ /** The status code, which should be an enum value of google.rpc.Code. */
2192
+ code?: number;
2193
+ /** A list of messages that carry the error details. There is a common set of message types for APIs to use. */
2194
+ details?: Record<string, unknown>[];
2195
+ /** 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. */
2196
+ message?: string;
2197
+ }
2198
+
2008
2199
  /** Tool to support Google Search in Model. Powered by Google. */
2009
2200
  export declare interface GoogleSearch {
2010
2201
  }
@@ -2221,6 +2412,22 @@ export declare enum ImagePromptLanguage {
2221
2412
  hi = "hi"
2222
2413
  }
2223
2414
 
2415
+ /** Output only. The detailed state of the job. */
2416
+ export declare enum JobState {
2417
+ JOB_STATE_UNSPECIFIED = "JOB_STATE_UNSPECIFIED",
2418
+ JOB_STATE_QUEUED = "JOB_STATE_QUEUED",
2419
+ JOB_STATE_PENDING = "JOB_STATE_PENDING",
2420
+ JOB_STATE_RUNNING = "JOB_STATE_RUNNING",
2421
+ JOB_STATE_SUCCEEDED = "JOB_STATE_SUCCEEDED",
2422
+ JOB_STATE_FAILED = "JOB_STATE_FAILED",
2423
+ JOB_STATE_CANCELLING = "JOB_STATE_CANCELLING",
2424
+ JOB_STATE_CANCELLED = "JOB_STATE_CANCELLED",
2425
+ JOB_STATE_PAUSED = "JOB_STATE_PAUSED",
2426
+ JOB_STATE_EXPIRED = "JOB_STATE_EXPIRED",
2427
+ JOB_STATE_UPDATING = "JOB_STATE_UPDATING",
2428
+ JOB_STATE_PARTIALLY_SUCCEEDED = "JOB_STATE_PARTIALLY_SUCCEEDED"
2429
+ }
2430
+
2224
2431
  /** Required. Programming language of the `code`. */
2225
2432
  export declare enum Language {
2226
2433
  LANGUAGE_UNSPECIFIED = "LANGUAGE_UNSPECIFIED",
@@ -2285,6 +2492,35 @@ export declare class ListFilesResponse {
2285
2492
  files?: File_2[];
2286
2493
  }
2287
2494
 
2495
+ /** Configuration for the list tuning jobs method. */
2496
+ export declare interface ListTuningJobsConfig {
2497
+ /** Used to override HTTP request options. */
2498
+ httpOptions?: HttpOptions;
2499
+ /** Abort signal which can be used to cancel the request.
2500
+
2501
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
2502
+ operation will not cancel the request in the service. You will still
2503
+ be charged usage for any applicable operations.
2504
+ */
2505
+ abortSignal?: AbortSignal;
2506
+ pageSize?: number;
2507
+ pageToken?: string;
2508
+ filter?: string;
2509
+ }
2510
+
2511
+ /** Parameters for the list tuning jobs method. */
2512
+ export declare interface ListTuningJobsParameters {
2513
+ config?: ListTuningJobsConfig;
2514
+ }
2515
+
2516
+ /** Response for the list tuning jobs method. */
2517
+ export declare class ListTuningJobsResponse {
2518
+ /** A token to retrieve the next page of results. Pass to ListTuningJobsRequest.page_token to obtain that page. */
2519
+ nextPageToken?: string;
2520
+ /** List of TuningJobs in the requested page. */
2521
+ tuningJobs?: TuningJob[];
2522
+ }
2523
+
2288
2524
  /**
2289
2525
  Live class encapsulates the configuration for live interaction with the
2290
2526
  Generative Language API. It embeds ApiClient for general API settings.
@@ -2999,6 +3235,36 @@ export declare class Models extends BaseModule {
2999
3235
  * ```
3000
3236
  */
3001
3237
  get(params: types.GetModelParameters): Promise<types.Model>;
3238
+ /**
3239
+ * Updates a tuned model by its name.
3240
+ *
3241
+ * @param params - The parameters for updating the model.
3242
+ * @return The response from the API.
3243
+ *
3244
+ * @example
3245
+ * ```ts
3246
+ * const response = await ai.models.update({
3247
+ * model: 'tuned-model-name',
3248
+ * config: {
3249
+ * displayName: 'New display name',
3250
+ * description: 'New description',
3251
+ * },
3252
+ * });
3253
+ * ```
3254
+ */
3255
+ update(params: types.UpdateModelParameters): Promise<types.Model>;
3256
+ /**
3257
+ * Deletes a tuned model by its name.
3258
+ *
3259
+ * @param params - The parameters for deleting the model.
3260
+ * @return The response from the API.
3261
+ *
3262
+ * @example
3263
+ * ```ts
3264
+ * const response = await ai.models.delete({model: 'tuned-model-name'});
3265
+ * ```
3266
+ */
3267
+ delete(params: types.DeleteModelParameters): Promise<types.DeleteModelResponse>;
3002
3268
  /**
3003
3269
  * Counts the number of tokens in the given contents. Multimodal input is
3004
3270
  * supported for Gemini models.
@@ -3067,6 +3333,18 @@ export declare interface ModelSelectionConfig {
3067
3333
  featureSelectionPreference?: FeatureSelectionPreference;
3068
3334
  }
3069
3335
 
3336
+ /** A long-running operation. */
3337
+ export declare interface Operation {
3338
+ /** 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}`. */
3339
+ name?: string;
3340
+ /** 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. */
3341
+ metadata?: Record<string, unknown>;
3342
+ /** 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. */
3343
+ done?: boolean;
3344
+ /** The error result of the operation in case of failure or cancellation. */
3345
+ error?: Record<string, unknown>;
3346
+ }
3347
+
3070
3348
  /** Parameters for the get method of the operations module. */
3071
3349
  export declare interface OperationGetParameters {
3072
3350
  /** The operation to be retrieved. */
@@ -3258,6 +3536,16 @@ export declare interface Part {
3258
3536
 
3259
3537
  export declare type PartListUnion = PartUnion[] | PartUnion;
3260
3538
 
3539
+ /** Tuning spec for Partner models. */
3540
+ export declare interface PartnerModelTuningSpec {
3541
+ /** Hyperparameters for tuning. The accepted hyper_parameters and their valid range of values will differ depending on the base model. */
3542
+ hyperParameters?: Record<string, unknown>;
3543
+ /** Required. Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
3544
+ trainingDatasetUri?: string;
3545
+ /** Optional. Cloud Storage path to file containing validation dataset for tuning. The dataset must be formatted as a JSONL file. */
3546
+ validationDatasetUri?: string;
3547
+ }
3548
+
3261
3549
  export declare type PartUnion = Part | string;
3262
3550
 
3263
3551
  /** Enum that controls the generation of people. */
@@ -3443,45 +3731,42 @@ export declare interface SafetySetting {
3443
3731
  threshold?: HarmBlockThreshold;
3444
3732
  }
3445
3733
 
3446
- /** Schema that defines the format of input and output data.
3447
-
3448
- Represents a select subset of an OpenAPI 3.0 schema object.
3449
- */
3734
+ /** 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. */
3450
3735
  export declare interface Schema {
3451
- /** Optional. Example of the object. Will only populated when the object is the root. */
3452
- example?: unknown;
3453
- /** Optional. Pattern of the Type.STRING to restrict a string to a regular expression. */
3454
- pattern?: string;
3455
- /** Optional. Default value of the data. */
3456
- default?: unknown;
3457
- /** Optional. Maximum length of the Type.STRING */
3458
- maxLength?: string;
3459
- /** Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING */
3460
- minLength?: string;
3461
- /** Optional. Minimum number of the properties for Type.OBJECT. */
3462
- minProperties?: string;
3463
- /** Optional. Maximum number of the properties for Type.OBJECT. */
3464
- maxProperties?: string;
3465
3736
  /** Optional. The value should be validated against any (one or more) of the subschemas in the list. */
3466
3737
  anyOf?: Schema[];
3738
+ /** Optional. Default value of the data. */
3739
+ default?: unknown;
3467
3740
  /** Optional. The description of the data. */
3468
3741
  description?: string;
3469
3742
  /** 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"]} */
3470
3743
  enum?: string[];
3744
+ /** Optional. Example of the object. Will only populated when the object is the root. */
3745
+ example?: unknown;
3471
3746
  /** Optional. The format of the data. Supported formats: for NUMBER type: "float", "double" for INTEGER type: "int32", "int64" for STRING type: "email", "byte", etc */
3472
3747
  format?: string;
3473
3748
  /** Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY. */
3474
3749
  items?: Schema;
3475
3750
  /** Optional. Maximum number of the elements for Type.ARRAY. */
3476
3751
  maxItems?: string;
3752
+ /** Optional. Maximum length of the Type.STRING */
3753
+ maxLength?: string;
3754
+ /** Optional. Maximum number of the properties for Type.OBJECT. */
3755
+ maxProperties?: string;
3477
3756
  /** Optional. Maximum value of the Type.INTEGER and Type.NUMBER */
3478
3757
  maximum?: number;
3479
3758
  /** Optional. Minimum number of the elements for Type.ARRAY. */
3480
3759
  minItems?: string;
3760
+ /** Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING */
3761
+ minLength?: string;
3762
+ /** Optional. Minimum number of the properties for Type.OBJECT. */
3763
+ minProperties?: string;
3481
3764
  /** Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER */
3482
3765
  minimum?: number;
3483
3766
  /** Optional. Indicates if the value may be null. */
3484
3767
  nullable?: boolean;
3768
+ /** Optional. Pattern of the Type.STRING to restrict a string to a regular expression. */
3769
+ pattern?: string;
3485
3770
  /** Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT. */
3486
3771
  properties?: Record<string, Schema>;
3487
3772
  /** Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties. */
@@ -3790,6 +4075,84 @@ export declare enum SubjectReferenceType {
3790
4075
  SUBJECT_TYPE_PRODUCT = "SUBJECT_TYPE_PRODUCT"
3791
4076
  }
3792
4077
 
4078
+ /** Hyperparameters for SFT. */
4079
+ export declare interface SupervisedHyperParameters {
4080
+ /** Optional. Adapter size for tuning. */
4081
+ adapterSize?: AdapterSize;
4082
+ /** Optional. Number of complete passes the model makes over the entire training dataset during training. */
4083
+ epochCount?: string;
4084
+ /** Optional. Multiplier for adjusting the default learning rate. */
4085
+ learningRateMultiplier?: number;
4086
+ }
4087
+
4088
+ /** Dataset distribution for Supervised Tuning. */
4089
+ export declare interface SupervisedTuningDatasetDistribution {
4090
+ /** Output only. Sum of a given population of values that are billable. */
4091
+ billableSum?: string;
4092
+ /** Output only. Defines the histogram bucket. */
4093
+ buckets?: SupervisedTuningDatasetDistributionDatasetBucket[];
4094
+ /** Output only. The maximum of the population values. */
4095
+ max?: number;
4096
+ /** Output only. The arithmetic mean of the values in the population. */
4097
+ mean?: number;
4098
+ /** Output only. The median of the values in the population. */
4099
+ median?: number;
4100
+ /** Output only. The minimum of the population values. */
4101
+ min?: number;
4102
+ /** Output only. The 5th percentile of the values in the population. */
4103
+ p5?: number;
4104
+ /** Output only. The 95th percentile of the values in the population. */
4105
+ p95?: number;
4106
+ /** Output only. Sum of a given population of values. */
4107
+ sum?: string;
4108
+ }
4109
+
4110
+ /** Dataset bucket used to create a histogram for the distribution given a population of values. */
4111
+ export declare interface SupervisedTuningDatasetDistributionDatasetBucket {
4112
+ /** Output only. Number of values in the bucket. */
4113
+ count?: number;
4114
+ /** Output only. Left bound of the bucket. */
4115
+ left?: number;
4116
+ /** Output only. Right bound of the bucket. */
4117
+ right?: number;
4118
+ }
4119
+
4120
+ /** Tuning data statistics for Supervised Tuning. */
4121
+ export declare interface SupervisedTuningDataStats {
4122
+ /** Output only. Number of billable characters in the tuning dataset. */
4123
+ totalBillableCharacterCount?: string;
4124
+ /** Output only. Number of billable tokens in the tuning dataset. */
4125
+ totalBillableTokenCount?: string;
4126
+ /** The number of examples in the dataset that have been truncated by any amount. */
4127
+ totalTruncatedExampleCount?: string;
4128
+ /** Output only. Number of tuning characters in the tuning dataset. */
4129
+ totalTuningCharacterCount?: string;
4130
+ /** A partial sample of the indices (starting from 1) of the truncated examples. */
4131
+ truncatedExampleIndices?: string[];
4132
+ /** Output only. Number of examples in the tuning dataset. */
4133
+ tuningDatasetExampleCount?: string;
4134
+ /** Output only. Number of tuning steps for this Tuning Job. */
4135
+ tuningStepCount?: string;
4136
+ /** Output only. Sample user messages in the training dataset uri. */
4137
+ userDatasetExamples?: Content[];
4138
+ /** Output only. Dataset distributions for the user input tokens. */
4139
+ userInputTokenDistribution?: SupervisedTuningDatasetDistribution;
4140
+ /** Output only. Dataset distributions for the messages per example. */
4141
+ userMessagePerExampleDistribution?: SupervisedTuningDatasetDistribution;
4142
+ /** Output only. Dataset distributions for the user output tokens. */
4143
+ userOutputTokenDistribution?: SupervisedTuningDatasetDistribution;
4144
+ }
4145
+
4146
+ /** Tuning Spec for Supervised Tuning for first party models. */
4147
+ export declare interface SupervisedTuningSpec {
4148
+ /** Optional. Hyperparameters for SFT. */
4149
+ hyperParameters?: SupervisedHyperParameters;
4150
+ /** Required. Cloud Storage path to file containing training dataset for tuning. The dataset must be formatted as a JSONL file. */
4151
+ trainingDatasetUri?: string;
4152
+ /** Optional. Cloud Storage path to file containing validation dataset for tuning. The dataset must be formatted as a JSONL file. */
4153
+ validationDatasetUri?: string;
4154
+ }
4155
+
3793
4156
  export declare interface TestTableFile {
3794
4157
  comment?: string;
3795
4158
  testMethod?: string;
@@ -3838,8 +4201,6 @@ export declare interface TokensInfo {
3838
4201
 
3839
4202
  /** Tool details of a tool that the model may use to generate a response. */
3840
4203
  export declare interface Tool {
3841
- /** List of function declarations that the tool supports. */
3842
- functionDeclarations?: FunctionDeclaration[];
3843
4204
  /** 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. */
3844
4205
  retrieval?: Retrieval;
3845
4206
  /** Optional. Google Search tool type. Specialized retrieval tool
@@ -3849,6 +4210,8 @@ export declare interface Tool {
3849
4210
  googleSearchRetrieval?: GoogleSearchRetrieval;
3850
4211
  /** 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. */
3851
4212
  codeExecution?: ToolCodeExecution;
4213
+ /** 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. */
4214
+ functionDeclarations?: FunctionDeclaration[];
3852
4215
  }
3853
4216
 
3854
4217
  /** 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. */
@@ -3883,6 +4246,13 @@ export declare interface Transcription {
3883
4246
  finished?: boolean;
3884
4247
  }
3885
4248
 
4249
+ export declare interface TunedModel {
4250
+ /** Output only. The resource name of the TunedModel. Format: `projects/{project}/locations/{location}/models/{model}`. */
4251
+ model?: string;
4252
+ /** Output only. A resource name of an Endpoint. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`. */
4253
+ endpoint?: string;
4254
+ }
4255
+
3886
4256
  /** A tuned machine learning model. */
3887
4257
  export declare interface TunedModelInfo {
3888
4258
  /** ID of the base model that you want to tune. */
@@ -3893,6 +4263,115 @@ export declare interface TunedModelInfo {
3893
4263
  updateTime?: string;
3894
4264
  }
3895
4265
 
4266
+ /** Supervised fine-tuning training dataset. */
4267
+ export declare interface TuningDataset {
4268
+ /** GCS URI of the file containing training dataset in JSONL format. */
4269
+ gcsUri?: string;
4270
+ /** Inline examples with simple input/output text. */
4271
+ examples?: TuningExample[];
4272
+ }
4273
+
4274
+ /** The tuning data statistic values for TuningJob. */
4275
+ export declare interface TuningDataStats {
4276
+ /** Output only. Statistics for distillation. */
4277
+ distillationDataStats?: DistillationDataStats;
4278
+ /** The SFT Tuning data stats. */
4279
+ supervisedTuningDataStats?: SupervisedTuningDataStats;
4280
+ }
4281
+
4282
+ export declare interface TuningExample {
4283
+ /** Text model input. */
4284
+ textInput?: string;
4285
+ /** The expected model output. */
4286
+ output?: string;
4287
+ }
4288
+
4289
+ /** A tuning job. */
4290
+ export declare interface TuningJob {
4291
+ /** Output only. Identifier. Resource name of a TuningJob. Format: `projects/{project}/locations/{location}/tuningJobs/{tuning_job}` */
4292
+ name?: string;
4293
+ /** Output only. The detailed state of the job. */
4294
+ state?: JobState;
4295
+ /** Output only. Time when the TuningJob was created. */
4296
+ createTime?: string;
4297
+ /** Output only. Time when the TuningJob for the first time entered the `JOB_STATE_RUNNING` state. */
4298
+ startTime?: string;
4299
+ /** Output only. Time when the TuningJob entered any of the following JobStates: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`, `JOB_STATE_EXPIRED`. */
4300
+ endTime?: string;
4301
+ /** Output only. Time when the TuningJob was most recently updated. */
4302
+ updateTime?: string;
4303
+ /** Output only. Only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`. */
4304
+ error?: GoogleRpcStatus;
4305
+ /** Optional. The description of the TuningJob. */
4306
+ description?: string;
4307
+ /** The base model that is being tuned, e.g., "gemini-1.0-pro-002". . */
4308
+ baseModel?: string;
4309
+ /** Output only. The tuned model resources associated with this TuningJob. */
4310
+ tunedModel?: TunedModel;
4311
+ /** Tuning Spec for Supervised Fine Tuning. */
4312
+ supervisedTuningSpec?: SupervisedTuningSpec;
4313
+ /** Output only. The tuning data statistics associated with this TuningJob. */
4314
+ tuningDataStats?: TuningDataStats;
4315
+ /** 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. */
4316
+ encryptionSpec?: EncryptionSpec;
4317
+ /** Tuning Spec for open sourced and third party Partner models. */
4318
+ partnerModelTuningSpec?: PartnerModelTuningSpec;
4319
+ /** Tuning Spec for Distillation. */
4320
+ distillationSpec?: DistillationSpec;
4321
+ /** Output only. The Experiment associated with this TuningJob. */
4322
+ experiment?: string;
4323
+ /** 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. */
4324
+ labels?: Record<string, string>;
4325
+ /** Output only. The resource name of the PipelineJob associated with the TuningJob. Format: `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`. */
4326
+ pipelineJob?: string;
4327
+ /** Optional. The display name of the TunedModel. The name can be up to 128 characters long and can consist of any UTF-8 characters. */
4328
+ tunedModelDisplayName?: string;
4329
+ }
4330
+
4331
+ declare class Tunings extends BaseModule {
4332
+ private readonly apiClient;
4333
+ constructor(apiClient: ApiClient);
4334
+ /**
4335
+ * Gets a TuningJob.
4336
+ *
4337
+ * @param name - The resource name of the tuning job.
4338
+ * @return - A TuningJob object.
4339
+ *
4340
+ * @experimental - The SDK's tuning implementation is experimental, and may
4341
+ * change in future versions.
4342
+ */
4343
+ get: (params: types.GetTuningJobParameters) => Promise<types.TuningJob>;
4344
+ /**
4345
+ * Lists tuning jobs.
4346
+ *
4347
+ * @param config - The configuration for the list request.
4348
+ * @return - A list of tuning jobs.
4349
+ *
4350
+ * @experimental - The SDK's tuning implementation is experimental, and may
4351
+ * change in future versions.
4352
+ */
4353
+ list: (params?: types.ListTuningJobsParameters) => Promise<Pager<types.TuningJob>>;
4354
+ /**
4355
+ * Creates a supervised fine-tuning job.
4356
+ *
4357
+ * @param params - The parameters for the tuning job.
4358
+ * @return - A TuningJob operation.
4359
+ *
4360
+ * @experimental - The SDK's tuning implementation is experimental, and may
4361
+ * change in future versions.
4362
+ */
4363
+ tune: (params: types.CreateTuningJobParameters) => Promise<types.TuningJob>;
4364
+ private getInternal;
4365
+ private listInternal;
4366
+ private tuneInternal;
4367
+ private tuneMldevInternal;
4368
+ }
4369
+
4370
+ export declare interface TuningValidationDataset {
4371
+ /** GCS URI of the file containing validation dataset in JSONL format. */
4372
+ gcsUri?: string;
4373
+ }
4374
+
3896
4375
  /** Options about which input is included in the user's turn. */
3897
4376
  export declare enum TurnCoverage {
3898
4377
  TURN_COVERAGE_UNSPECIFIED = "TURN_COVERAGE_UNSPECIFIED",
@@ -3924,11 +4403,11 @@ declare namespace types {
3924
4403
  createModelContent,
3925
4404
  Outcome,
3926
4405
  Language,
3927
- Type,
3928
4406
  HarmCategory,
3929
4407
  HarmBlockMethod,
3930
4408
  HarmBlockThreshold,
3931
4409
  Mode,
4410
+ Type,
3932
4411
  FinishReason,
3933
4412
  HarmProbability,
3934
4413
  HarmSeverity,
@@ -3936,6 +4415,8 @@ declare namespace types {
3936
4415
  TrafficType,
3937
4416
  Modality,
3938
4417
  MediaResolution,
4418
+ JobState,
4419
+ AdapterSize,
3939
4420
  FeatureSelectionPreference,
3940
4421
  DynamicRetrievalConfigMode,
3941
4422
  FunctionCallingConfigMode,
@@ -3962,10 +4443,8 @@ declare namespace types {
3962
4443
  Part,
3963
4444
  Content,
3964
4445
  HttpOptions,
3965
- Schema,
3966
4446
  ModelSelectionConfig,
3967
4447
  SafetySetting,
3968
- FunctionDeclaration,
3969
4448
  GoogleSearch,
3970
4449
  DynamicRetrievalConfig,
3971
4450
  GoogleSearchRetrieval,
@@ -3980,6 +4459,8 @@ declare namespace types {
3980
4459
  VertexRagStore,
3981
4460
  Retrieval,
3982
4461
  ToolCodeExecution,
4462
+ Schema,
4463
+ FunctionDeclaration,
3983
4464
  Tool,
3984
4465
  FunctionCallingConfig,
3985
4466
  ToolConfig,
@@ -4029,6 +4510,11 @@ declare namespace types {
4029
4510
  Endpoint,
4030
4511
  TunedModelInfo,
4031
4512
  Model,
4513
+ UpdateModelConfig,
4514
+ UpdateModelParameters,
4515
+ DeleteModelConfig,
4516
+ DeleteModelParameters,
4517
+ DeleteModelResponse,
4032
4518
  GenerationConfig,
4033
4519
  CountTokensConfig,
4034
4520
  CountTokensParameters,
@@ -4043,6 +4529,34 @@ declare namespace types {
4043
4529
  GeneratedVideo,
4044
4530
  GenerateVideosResponse,
4045
4531
  GenerateVideosOperation,
4532
+ GetTuningJobConfig,
4533
+ GetTuningJobParameters,
4534
+ TunedModel,
4535
+ GoogleRpcStatus,
4536
+ SupervisedHyperParameters,
4537
+ SupervisedTuningSpec,
4538
+ DatasetDistributionDistributionBucket,
4539
+ DatasetDistribution,
4540
+ DatasetStats,
4541
+ DistillationDataStats,
4542
+ SupervisedTuningDatasetDistributionDatasetBucket,
4543
+ SupervisedTuningDatasetDistribution,
4544
+ SupervisedTuningDataStats,
4545
+ TuningDataStats,
4546
+ EncryptionSpec,
4547
+ PartnerModelTuningSpec,
4548
+ DistillationHyperParameters,
4549
+ DistillationSpec,
4550
+ TuningJob,
4551
+ ListTuningJobsConfig,
4552
+ ListTuningJobsParameters,
4553
+ ListTuningJobsResponse,
4554
+ TuningExample,
4555
+ TuningDataset,
4556
+ TuningValidationDataset,
4557
+ CreateTuningJobConfig,
4558
+ CreateTuningJobParameters,
4559
+ Operation,
4046
4560
  CreateCachedContentConfig,
4047
4561
  CreateCachedContentParameters,
4048
4562
  CachedContentUsageMetadata,
@@ -4163,6 +4677,27 @@ export declare interface UpdateCachedContentParameters {
4163
4677
  config?: UpdateCachedContentConfig;
4164
4678
  }
4165
4679
 
4680
+ /** Configuration for updating a tuned model. */
4681
+ export declare interface UpdateModelConfig {
4682
+ /** Used to override HTTP request options. */
4683
+ httpOptions?: HttpOptions;
4684
+ /** Abort signal which can be used to cancel the request.
4685
+
4686
+ NOTE: AbortSignal is a client-only operation. Using it to cancel an
4687
+ operation will not cancel the request in the service. You will still
4688
+ be charged usage for any applicable operations.
4689
+ */
4690
+ abortSignal?: AbortSignal;
4691
+ displayName?: string;
4692
+ description?: string;
4693
+ }
4694
+
4695
+ /** Configuration for updating a tuned model. */
4696
+ export declare interface UpdateModelParameters {
4697
+ model: string;
4698
+ config?: UpdateModelConfig;
4699
+ }
4700
+
4166
4701
  declare interface Uploader {
4167
4702
  /**
4168
4703
  * Uploads a file to the given upload url.