xref: /aosp_15_r20/external/googleapis/google/ai/generativelanguage/v1beta/model.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.ai.generativelanguage.v1beta;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto";
21*d5c09012SAndroid Build Coastguard Worker
22*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta/generativelanguagepb;generativelanguagepb";
23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "ModelProto";
25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.ai.generativelanguage.v1beta";
26*d5c09012SAndroid Build Coastguard Worker
27*d5c09012SAndroid Build Coastguard Worker// Information about a Generative Language Model.
28*d5c09012SAndroid Build Coastguard Workermessage Model {
29*d5c09012SAndroid Build Coastguard Worker  option (google.api.resource) = {
30*d5c09012SAndroid Build Coastguard Worker    type: "generativelanguage.googleapis.com/Model"
31*d5c09012SAndroid Build Coastguard Worker    pattern: "models/{model}"
32*d5c09012SAndroid Build Coastguard Worker  };
33*d5c09012SAndroid Build Coastguard Worker
34*d5c09012SAndroid Build Coastguard Worker  // Required. The resource name of the `Model`.
35*d5c09012SAndroid Build Coastguard Worker  //
36*d5c09012SAndroid Build Coastguard Worker  // Format: `models/{model}` with a `{model}` naming convention of:
37*d5c09012SAndroid Build Coastguard Worker  //
38*d5c09012SAndroid Build Coastguard Worker  // * "{base_model_id}-{version}"
39*d5c09012SAndroid Build Coastguard Worker  //
40*d5c09012SAndroid Build Coastguard Worker  // Examples:
41*d5c09012SAndroid Build Coastguard Worker  //
42*d5c09012SAndroid Build Coastguard Worker  // * `models/chat-bison-001`
43*d5c09012SAndroid Build Coastguard Worker  string name = 1 [(google.api.field_behavior) = REQUIRED];
44*d5c09012SAndroid Build Coastguard Worker
45*d5c09012SAndroid Build Coastguard Worker  // Required. The name of the base model, pass this to the generation request.
46*d5c09012SAndroid Build Coastguard Worker  //
47*d5c09012SAndroid Build Coastguard Worker  // Examples:
48*d5c09012SAndroid Build Coastguard Worker  //
49*d5c09012SAndroid Build Coastguard Worker  // * `chat-bison`
50*d5c09012SAndroid Build Coastguard Worker  string base_model_id = 2 [(google.api.field_behavior) = REQUIRED];
51*d5c09012SAndroid Build Coastguard Worker
52*d5c09012SAndroid Build Coastguard Worker  // Required. The version number of the model.
53*d5c09012SAndroid Build Coastguard Worker  //
54*d5c09012SAndroid Build Coastguard Worker  // This represents the major version
55*d5c09012SAndroid Build Coastguard Worker  string version = 3 [(google.api.field_behavior) = REQUIRED];
56*d5c09012SAndroid Build Coastguard Worker
57*d5c09012SAndroid Build Coastguard Worker  // The human-readable name of the model. E.g. "Chat Bison".
58*d5c09012SAndroid Build Coastguard Worker  //
59*d5c09012SAndroid Build Coastguard Worker  // The name can be up to 128 characters long and can consist of any UTF-8
60*d5c09012SAndroid Build Coastguard Worker  // characters.
61*d5c09012SAndroid Build Coastguard Worker  string display_name = 4;
62*d5c09012SAndroid Build Coastguard Worker
63*d5c09012SAndroid Build Coastguard Worker  // A short description of the model.
64*d5c09012SAndroid Build Coastguard Worker  string description = 5;
65*d5c09012SAndroid Build Coastguard Worker
66*d5c09012SAndroid Build Coastguard Worker  // Maximum number of input tokens allowed for this model.
67*d5c09012SAndroid Build Coastguard Worker  int32 input_token_limit = 6;
68*d5c09012SAndroid Build Coastguard Worker
69*d5c09012SAndroid Build Coastguard Worker  // Maximum number of output tokens available for this model.
70*d5c09012SAndroid Build Coastguard Worker  int32 output_token_limit = 7;
71*d5c09012SAndroid Build Coastguard Worker
72*d5c09012SAndroid Build Coastguard Worker  // The model's supported generation methods.
73*d5c09012SAndroid Build Coastguard Worker  //
74*d5c09012SAndroid Build Coastguard Worker  // The method names are defined as Pascal case
75*d5c09012SAndroid Build Coastguard Worker  // strings, such as `generateMessage` which correspond to API methods.
76*d5c09012SAndroid Build Coastguard Worker  repeated string supported_generation_methods = 8;
77*d5c09012SAndroid Build Coastguard Worker
78*d5c09012SAndroid Build Coastguard Worker  // Controls the randomness of the output.
79*d5c09012SAndroid Build Coastguard Worker  //
80*d5c09012SAndroid Build Coastguard Worker  // Values can range over `[0.0,1.0]`, inclusive. A value closer to `1.0` will
81*d5c09012SAndroid Build Coastguard Worker  // produce responses that are more varied, while a value closer to `0.0` will
82*d5c09012SAndroid Build Coastguard Worker  // typically result in less surprising responses from the model.
83*d5c09012SAndroid Build Coastguard Worker  // This value specifies default to be used by the backend while making the
84*d5c09012SAndroid Build Coastguard Worker  // call to the model.
85*d5c09012SAndroid Build Coastguard Worker  optional float temperature = 9;
86*d5c09012SAndroid Build Coastguard Worker
87*d5c09012SAndroid Build Coastguard Worker  // For Nucleus sampling.
88*d5c09012SAndroid Build Coastguard Worker  //
89*d5c09012SAndroid Build Coastguard Worker  // Nucleus sampling considers the smallest set of tokens whose probability
90*d5c09012SAndroid Build Coastguard Worker  // sum is at least `top_p`.
91*d5c09012SAndroid Build Coastguard Worker  // This value specifies default to be used by the backend while making the
92*d5c09012SAndroid Build Coastguard Worker  // call to the model.
93*d5c09012SAndroid Build Coastguard Worker  optional float top_p = 10;
94*d5c09012SAndroid Build Coastguard Worker
95*d5c09012SAndroid Build Coastguard Worker  // For Top-k sampling.
96*d5c09012SAndroid Build Coastguard Worker  //
97*d5c09012SAndroid Build Coastguard Worker  // Top-k sampling considers the set of `top_k` most probable tokens.
98*d5c09012SAndroid Build Coastguard Worker  // This value specifies default to be used by the backend while making the
99*d5c09012SAndroid Build Coastguard Worker  // call to the model.
100*d5c09012SAndroid Build Coastguard Worker  // If empty, indicates the model doesn't use top-k sampling, and `top_k` isn't
101*d5c09012SAndroid Build Coastguard Worker  // allowed as a generation parameter.
102*d5c09012SAndroid Build Coastguard Worker  optional int32 top_k = 11;
103*d5c09012SAndroid Build Coastguard Worker}
104