| // Copyright 2023 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| syntax = "proto3"; |
| |
| package google.ai.generativelanguage.v1beta; |
| |
| import "google/ai/generativelanguage/v1beta/model.proto"; |
| import "google/ai/generativelanguage/v1beta/tuned_model.proto"; |
| import "google/api/annotations.proto"; |
| import "google/api/client.proto"; |
| import "google/api/field_behavior.proto"; |
| import "google/api/resource.proto"; |
| import "google/longrunning/operations.proto"; |
| import "google/protobuf/empty.proto"; |
| import "google/protobuf/field_mask.proto"; |
| |
| option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb"; |
| option java_multiple_files = true; |
| option java_outer_classname = "ModelServiceProto"; |
| option java_package = "com.google.ai.generativelanguage.v1beta"; |
| |
| // Provides methods for getting metadata information about Generative Models. |
| service ModelService { |
| option (google.api.default_host) = "generativelanguage.googleapis.com"; |
| |
| // Gets information about a specific Model. |
| rpc GetModel(GetModelRequest) returns (Model) { |
| option (google.api.http) = { |
| get: "/v1beta/{name=models/*}" |
| }; |
| option (google.api.method_signature) = "name"; |
| } |
| |
| // Lists models available through the API. |
| rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { |
| option (google.api.http) = { |
| get: "/v1beta/models" |
| }; |
| option (google.api.method_signature) = "page_size,page_token"; |
| } |
| |
| // Gets information about a specific TunedModel. |
| rpc GetTunedModel(GetTunedModelRequest) returns (TunedModel) { |
| option (google.api.http) = { |
| get: "/v1beta/{name=tunedModels/*}" |
| }; |
| option (google.api.method_signature) = "name"; |
| } |
| |
| // Lists tuned models owned by the user. |
| rpc ListTunedModels(ListTunedModelsRequest) |
| returns (ListTunedModelsResponse) { |
| option (google.api.http) = { |
| get: "/v1beta/tunedModels" |
| }; |
| option (google.api.method_signature) = "page_size,page_token"; |
| } |
| |
| // Creates a tuned model. |
| // Intermediate tuning progress (if any) is accessed through the |
| // [google.longrunning.Operations] service. |
| // |
| // Status and results can be accessed through the Operations service. |
| // Example: |
| // GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222 |
| rpc CreateTunedModel(CreateTunedModelRequest) |
| returns (google.longrunning.Operation) { |
| option (google.api.http) = { |
| post: "/v1beta/tunedModels" |
| body: "tuned_model" |
| }; |
| option (google.api.method_signature) = "tuned_model"; |
| option (google.api.method_signature) = "tuned_model_id,tuned_model"; |
| option (google.longrunning.operation_info) = { |
| response_type: "TunedModel" |
| metadata_type: "CreateTunedModelMetadata" |
| }; |
| } |
| |
| // Updates a tuned model. |
| rpc UpdateTunedModel(UpdateTunedModelRequest) returns (TunedModel) { |
| option (google.api.http) = { |
| patch: "/v1beta/{tuned_model.name=tunedModels/*}" |
| body: "tuned_model" |
| }; |
| option (google.api.method_signature) = "tuned_model,update_mask"; |
| } |
| |
| // Deletes a tuned model. |
| rpc DeleteTunedModel(DeleteTunedModelRequest) |
| returns (google.protobuf.Empty) { |
| option (google.api.http) = { |
| delete: "/v1beta/{name=tunedModels/*}" |
| }; |
| option (google.api.method_signature) = "name"; |
| } |
| } |
| |
| // Request for getting information about a specific Model. |
| message GetModelRequest { |
| // Required. The resource name of the model. |
| // |
| // This name should match a model name returned by the `ListModels` method. |
| // |
| // Format: `models/{model}` |
| string name = 1 [ |
| (google.api.field_behavior) = REQUIRED, |
| (google.api.resource_reference) = { |
| type: "generativelanguage.googleapis.com/Model" |
| } |
| ]; |
| } |
| |
| // Request for listing all Models. |
| message ListModelsRequest { |
| // The maximum number of `Models` to return (per page). |
| // |
| // The service may return fewer models. |
| // If unspecified, at most 50 models will be returned per page. |
| // This method returns at most 1000 models per page, even if you pass a larger |
| // page_size. |
| int32 page_size = 2; |
| |
| // A page token, received from a previous `ListModels` call. |
| // |
| // Provide the `page_token` returned by one request as an argument to the next |
| // request to retrieve the next page. |
| // |
| // When paginating, all other parameters provided to `ListModels` must match |
| // the call that provided the page token. |
| string page_token = 3; |
| } |
| |
| // Response from `ListModel` containing a paginated list of Models. |
| message ListModelsResponse { |
| // The returned Models. |
| repeated Model models = 1; |
| |
| // A token, which can be sent as `page_token` to retrieve the next page. |
| // |
| // If this field is omitted, there are no more pages. |
| string next_page_token = 2; |
| } |
| |
| // Request for getting information about a specific Model. |
| message GetTunedModelRequest { |
| // Required. The resource name of the model. |
| // |
| // Format: `tunedModels/my-model-id` |
| string name = 1 [ |
| (google.api.field_behavior) = REQUIRED, |
| (google.api.resource_reference) = { |
| type: "generativelanguage.googleapis.com/TunedModel" |
| } |
| ]; |
| } |
| |
| // Request for listing TunedModels. |
| message ListTunedModelsRequest { |
| // Optional. The maximum number of `TunedModels` to return (per page). |
| // The service may return fewer tuned models. |
| // |
| // If unspecified, at most 10 tuned models will be returned. |
| // This method returns at most 1000 models per page, even if you pass a larger |
| // page_size. |
| int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL]; |
| |
| // Optional. A page token, received from a previous `ListTunedModels` call. |
| // |
| // Provide the `page_token` returned by one request as an argument to the next |
| // request to retrieve the next page. |
| // |
| // When paginating, all other parameters provided to `ListTunedModels` |
| // must match the call that provided the page token. |
| string page_token = 2 [(google.api.field_behavior) = OPTIONAL]; |
| |
| // Optional. A filter is a full text search over the tuned model's description |
| // and display name. By default, results will not include tuned models shared |
| // with everyone. |
| // |
| // Additional operators: |
| // - owner:me |
| // - writers:me |
| // - readers:me |
| // - readers:everyone |
| // |
| // Examples: |
| // "owner:me" returns all tuned models to which caller has owner role |
| // "readers:me" returns all tuned models to which caller has reader role |
| // "readers:everyone" returns all tuned models that are shared with everyone |
| string filter = 3 [(google.api.field_behavior) = OPTIONAL]; |
| } |
| |
| // Response from `ListTunedModels` containing a paginated list of Models. |
| message ListTunedModelsResponse { |
| // The returned Models. |
| repeated TunedModel tuned_models = 1; |
| |
| // A token, which can be sent as `page_token` to retrieve the next page. |
| // |
| // If this field is omitted, there are no more pages. |
| string next_page_token = 2; |
| } |
| |
| // Request to create a TunedModel. |
| message CreateTunedModelRequest { |
| // Optional. The unique id for the tuned model if specified. |
| // This value should be up to 40 characters, the first character must be a |
| // letter, the last could be a letter or a number. The id must match the |
| // regular expression: [a-z]([a-z0-9-]{0,38}[a-z0-9])?. |
| optional string tuned_model_id = 1 [(google.api.field_behavior) = OPTIONAL]; |
| |
| // Required. The tuned model to create. |
| TunedModel tuned_model = 2 [(google.api.field_behavior) = REQUIRED]; |
| } |
| |
| // Metadata about the state and progress of creating a tuned model returned from |
| // the long-running operation |
| message CreateTunedModelMetadata { |
| // Name of the tuned model associated with the tuning operation. |
| string tuned_model = 5 [(google.api.resource_reference) = { |
| type: "generativelanguage.googleapis.com/TunedModel" |
| }]; |
| |
| // The total number of tuning steps. |
| int32 total_steps = 1; |
| |
| // The number of steps completed. |
| int32 completed_steps = 2; |
| |
| // The completed percentage for the tuning operation. |
| float completed_percent = 3; |
| |
| // Metrics collected during tuning. |
| repeated TuningSnapshot snapshots = 4; |
| } |
| |
| // Request to update a TunedModel. |
| message UpdateTunedModelRequest { |
| // Required. The tuned model to update. |
| TunedModel tuned_model = 1 [(google.api.field_behavior) = REQUIRED]; |
| |
| // Required. The list of fields to update. |
| google.protobuf.FieldMask update_mask = 2 |
| [(google.api.field_behavior) = REQUIRED]; |
| } |
| |
| // Request to delete a TunedModel. |
| message DeleteTunedModelRequest { |
| // Required. The resource name of the model. |
| // Format: `tunedModels/my-model-id` |
| string name = 1 [ |
| (google.api.field_behavior) = REQUIRED, |
| (google.api.resource_reference) = { |
| type: "generativelanguage.googleapis.com/TunedModel" |
| } |
| ]; |
| } |