@google-cloud/discoveryengine 2.3.0 → 2.4.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.
Files changed (228) hide show
  1. package/README.md +17 -0
  2. package/build/protos/google/cloud/discoveryengine/v1/assist_answer.proto +251 -0
  3. package/build/protos/google/cloud/discoveryengine/v1/assistant.proto +44 -0
  4. package/build/protos/google/cloud/discoveryengine/v1/assistant_service.proto +217 -0
  5. package/build/protos/google/cloud/discoveryengine/v1/conversational_search_service.proto +15 -3
  6. package/build/protos/google/cloud/discoveryengine/v1/search_service.proto +8 -14
  7. package/build/protos/google/cloud/discoveryengine/v1/session.proto +21 -8
  8. package/build/protos/google/cloud/discoveryengine/v1/session_service.proto +128 -0
  9. package/build/protos/google/cloud/discoveryengine/v1alpha/common.proto +15 -0
  10. package/build/protos/google/cloud/discoveryengine/v1alpha/conversational_search_service.proto +30 -9
  11. package/build/protos/google/cloud/discoveryengine/v1alpha/search_service.proto +8 -14
  12. package/build/protos/google/cloud/discoveryengine/v1alpha/session.proto +238 -8
  13. package/build/protos/google/cloud/discoveryengine/v1alpha/session_service.proto +201 -0
  14. package/build/protos/google/cloud/discoveryengine/v1beta/conversational_search_service.proto +26 -5
  15. package/build/protos/google/cloud/discoveryengine/v1beta/search_service.proto +8 -14
  16. package/build/protos/google/cloud/discoveryengine/v1beta/session.proto +40 -8
  17. package/build/protos/google/cloud/discoveryengine/v1beta/session_service.proto +128 -0
  18. package/build/protos/protos.d.ts +15057 -10636
  19. package/build/protos/protos.js +45523 -34174
  20. package/build/protos/protos.json +4835 -3203
  21. package/build/src/index.d.ts +7 -1
  22. package/build/src/index.js +6 -2
  23. package/build/src/v1/assistant_service_client.d.ts +2058 -0
  24. package/build/src/v1/assistant_service_client.js +2957 -0
  25. package/build/src/v1/assistant_service_client_config.json +43 -0
  26. package/build/src/v1/assistant_service_proto_list.json +48 -0
  27. package/build/src/v1/cmek_config_service_client.d.ts +255 -144
  28. package/build/src/v1/cmek_config_service_client.js +348 -196
  29. package/build/src/v1/cmek_config_service_proto_list.json +4 -0
  30. package/build/src/v1/completion_service_client.d.ts +255 -144
  31. package/build/src/v1/completion_service_client.js +348 -196
  32. package/build/src/v1/completion_service_proto_list.json +4 -0
  33. package/build/src/v1/control_service_client.d.ts +255 -144
  34. package/build/src/v1/control_service_client.js +348 -196
  35. package/build/src/v1/control_service_proto_list.json +4 -0
  36. package/build/src/v1/conversational_search_service_client.d.ts +302 -155
  37. package/build/src/v1/conversational_search_service_client.js +380 -204
  38. package/build/src/v1/conversational_search_service_proto_list.json +4 -0
  39. package/build/src/v1/data_store_service_client.d.ts +255 -144
  40. package/build/src/v1/data_store_service_client.js +348 -196
  41. package/build/src/v1/data_store_service_proto_list.json +4 -0
  42. package/build/src/v1/document_service_client.d.ts +255 -144
  43. package/build/src/v1/document_service_client.js +348 -196
  44. package/build/src/v1/document_service_proto_list.json +4 -0
  45. package/build/src/v1/engine_service_client.d.ts +255 -144
  46. package/build/src/v1/engine_service_client.js +348 -196
  47. package/build/src/v1/engine_service_proto_list.json +4 -0
  48. package/build/src/v1/gapic_metadata.json +86 -0
  49. package/build/src/v1/grounded_generation_service_client.d.ts +255 -144
  50. package/build/src/v1/grounded_generation_service_client.js +348 -196
  51. package/build/src/v1/grounded_generation_service_proto_list.json +4 -0
  52. package/build/src/v1/identity_mapping_store_service_client.d.ts +255 -144
  53. package/build/src/v1/identity_mapping_store_service_client.js +348 -196
  54. package/build/src/v1/identity_mapping_store_service_proto_list.json +4 -0
  55. package/build/src/v1/index.d.ts +2 -0
  56. package/build/src/v1/index.js +5 -1
  57. package/build/src/v1/project_service_client.d.ts +255 -144
  58. package/build/src/v1/project_service_client.js +348 -196
  59. package/build/src/v1/project_service_proto_list.json +4 -0
  60. package/build/src/v1/rank_service_client.d.ts +255 -144
  61. package/build/src/v1/rank_service_client.js +348 -196
  62. package/build/src/v1/rank_service_proto_list.json +4 -0
  63. package/build/src/v1/recommendation_service_client.d.ts +255 -144
  64. package/build/src/v1/recommendation_service_client.js +348 -196
  65. package/build/src/v1/recommendation_service_proto_list.json +4 -0
  66. package/build/src/v1/schema_service_client.d.ts +255 -144
  67. package/build/src/v1/schema_service_client.js +348 -196
  68. package/build/src/v1/schema_service_proto_list.json +4 -0
  69. package/build/src/v1/search_service_client.d.ts +303 -228
  70. package/build/src/v1/search_service_client.js +380 -252
  71. package/build/src/v1/search_service_proto_list.json +4 -0
  72. package/build/src/v1/search_tuning_service_client.d.ts +255 -144
  73. package/build/src/v1/search_tuning_service_client.js +348 -196
  74. package/build/src/v1/search_tuning_service_proto_list.json +4 -0
  75. package/build/src/v1/serving_config_service_client.d.ts +255 -144
  76. package/build/src/v1/serving_config_service_client.js +348 -196
  77. package/build/src/v1/serving_config_service_proto_list.json +4 -0
  78. package/build/src/v1/session_service_client.d.ts +2326 -0
  79. package/build/src/v1/session_service_client.js +3218 -0
  80. package/build/src/v1/session_service_client_config.json +63 -0
  81. package/build/src/v1/session_service_proto_list.json +48 -0
  82. package/build/src/v1/site_search_engine_service_client.d.ts +255 -144
  83. package/build/src/v1/site_search_engine_service_client.js +348 -196
  84. package/build/src/v1/site_search_engine_service_proto_list.json +4 -0
  85. package/build/src/v1/user_event_service_client.d.ts +255 -144
  86. package/build/src/v1/user_event_service_client.js +348 -196
  87. package/build/src/v1/user_event_service_proto_list.json +4 -0
  88. package/build/src/v1/user_license_service_client.d.ts +255 -144
  89. package/build/src/v1/user_license_service_client.js +348 -196
  90. package/build/src/v1/user_license_service_proto_list.json +4 -0
  91. package/build/src/v1alpha/acl_config_service_client.d.ts +144 -144
  92. package/build/src/v1alpha/acl_config_service_client.js +196 -196
  93. package/build/src/v1alpha/acl_config_service_proto_list.json +1 -0
  94. package/build/src/v1alpha/chunk_service_client.d.ts +144 -144
  95. package/build/src/v1alpha/chunk_service_client.js +196 -196
  96. package/build/src/v1alpha/chunk_service_proto_list.json +1 -0
  97. package/build/src/v1alpha/completion_service_client.d.ts +144 -144
  98. package/build/src/v1alpha/completion_service_client.js +196 -196
  99. package/build/src/v1alpha/completion_service_proto_list.json +1 -0
  100. package/build/src/v1alpha/control_service_client.d.ts +144 -144
  101. package/build/src/v1alpha/control_service_client.js +196 -196
  102. package/build/src/v1alpha/control_service_proto_list.json +1 -0
  103. package/build/src/v1alpha/conversational_search_service_client.d.ts +221 -167
  104. package/build/src/v1alpha/conversational_search_service_client.js +244 -210
  105. package/build/src/v1alpha/conversational_search_service_proto_list.json +1 -0
  106. package/build/src/v1alpha/data_store_service_client.d.ts +144 -144
  107. package/build/src/v1alpha/data_store_service_client.js +196 -196
  108. package/build/src/v1alpha/data_store_service_proto_list.json +1 -0
  109. package/build/src/v1alpha/document_service_client.d.ts +144 -144
  110. package/build/src/v1alpha/document_service_client.js +196 -196
  111. package/build/src/v1alpha/document_service_proto_list.json +1 -0
  112. package/build/src/v1alpha/engine_service_client.d.ts +144 -144
  113. package/build/src/v1alpha/engine_service_client.js +196 -196
  114. package/build/src/v1alpha/engine_service_proto_list.json +1 -0
  115. package/build/src/v1alpha/estimate_billing_service_client.d.ts +144 -144
  116. package/build/src/v1alpha/estimate_billing_service_client.js +196 -196
  117. package/build/src/v1alpha/estimate_billing_service_proto_list.json +1 -0
  118. package/build/src/v1alpha/evaluation_service_client.d.ts +144 -144
  119. package/build/src/v1alpha/evaluation_service_client.js +196 -196
  120. package/build/src/v1alpha/evaluation_service_proto_list.json +1 -0
  121. package/build/src/v1alpha/gapic_metadata.json +82 -0
  122. package/build/src/v1alpha/grounded_generation_service_client.d.ts +144 -144
  123. package/build/src/v1alpha/grounded_generation_service_client.js +196 -196
  124. package/build/src/v1alpha/grounded_generation_service_proto_list.json +1 -0
  125. package/build/src/v1alpha/index.d.ts +1 -0
  126. package/build/src/v1alpha/index.js +3 -1
  127. package/build/src/v1alpha/project_service_client.d.ts +144 -144
  128. package/build/src/v1alpha/project_service_client.js +196 -196
  129. package/build/src/v1alpha/project_service_proto_list.json +1 -0
  130. package/build/src/v1alpha/rank_service_client.d.ts +144 -144
  131. package/build/src/v1alpha/rank_service_client.js +196 -196
  132. package/build/src/v1alpha/rank_service_proto_list.json +1 -0
  133. package/build/src/v1alpha/recommendation_service_client.d.ts +144 -144
  134. package/build/src/v1alpha/recommendation_service_client.js +196 -196
  135. package/build/src/v1alpha/recommendation_service_proto_list.json +1 -0
  136. package/build/src/v1alpha/sample_query_service_client.d.ts +144 -144
  137. package/build/src/v1alpha/sample_query_service_client.js +196 -196
  138. package/build/src/v1alpha/sample_query_service_proto_list.json +1 -0
  139. package/build/src/v1alpha/sample_query_set_service_client.d.ts +144 -144
  140. package/build/src/v1alpha/sample_query_set_service_client.js +196 -196
  141. package/build/src/v1alpha/sample_query_set_service_proto_list.json +1 -0
  142. package/build/src/v1alpha/schema_service_client.d.ts +144 -144
  143. package/build/src/v1alpha/schema_service_client.js +196 -196
  144. package/build/src/v1alpha/schema_service_proto_list.json +1 -0
  145. package/build/src/v1alpha/search_service_client.d.ts +168 -186
  146. package/build/src/v1alpha/search_service_client.js +212 -224
  147. package/build/src/v1alpha/search_service_proto_list.json +1 -0
  148. package/build/src/v1alpha/search_tuning_service_client.d.ts +144 -144
  149. package/build/src/v1alpha/search_tuning_service_client.js +196 -196
  150. package/build/src/v1alpha/search_tuning_service_proto_list.json +1 -0
  151. package/build/src/v1alpha/serving_config_service_client.d.ts +144 -144
  152. package/build/src/v1alpha/serving_config_service_client.js +196 -196
  153. package/build/src/v1alpha/serving_config_service_proto_list.json +1 -0
  154. package/build/src/v1alpha/session_service_client.d.ts +2331 -0
  155. package/build/src/v1alpha/session_service_client.js +3161 -0
  156. package/build/src/v1alpha/session_service_client_config.json +68 -0
  157. package/build/src/v1alpha/session_service_proto_list.json +49 -0
  158. package/build/src/v1alpha/site_search_engine_service_client.d.ts +144 -144
  159. package/build/src/v1alpha/site_search_engine_service_client.js +196 -196
  160. package/build/src/v1alpha/site_search_engine_service_proto_list.json +1 -0
  161. package/build/src/v1alpha/user_event_service_client.d.ts +144 -144
  162. package/build/src/v1alpha/user_event_service_client.js +196 -196
  163. package/build/src/v1alpha/user_event_service_proto_list.json +1 -0
  164. package/build/src/v1beta/completion_service_client.d.ts +144 -144
  165. package/build/src/v1beta/completion_service_client.js +196 -196
  166. package/build/src/v1beta/completion_service_proto_list.json +1 -0
  167. package/build/src/v1beta/control_service_client.d.ts +144 -144
  168. package/build/src/v1beta/control_service_client.js +196 -196
  169. package/build/src/v1beta/control_service_proto_list.json +1 -0
  170. package/build/src/v1beta/conversational_search_service_client.d.ts +215 -161
  171. package/build/src/v1beta/conversational_search_service_client.js +242 -208
  172. package/build/src/v1beta/conversational_search_service_proto_list.json +1 -0
  173. package/build/src/v1beta/data_store_service_client.d.ts +144 -144
  174. package/build/src/v1beta/data_store_service_client.js +196 -196
  175. package/build/src/v1beta/data_store_service_proto_list.json +1 -0
  176. package/build/src/v1beta/document_service_client.d.ts +144 -144
  177. package/build/src/v1beta/document_service_client.js +196 -196
  178. package/build/src/v1beta/document_service_proto_list.json +1 -0
  179. package/build/src/v1beta/engine_service_client.d.ts +144 -144
  180. package/build/src/v1beta/engine_service_client.js +196 -196
  181. package/build/src/v1beta/engine_service_proto_list.json +1 -0
  182. package/build/src/v1beta/evaluation_service_client.d.ts +144 -144
  183. package/build/src/v1beta/evaluation_service_client.js +196 -196
  184. package/build/src/v1beta/evaluation_service_proto_list.json +1 -0
  185. package/build/src/v1beta/gapic_metadata.json +68 -0
  186. package/build/src/v1beta/grounded_generation_service_client.d.ts +144 -144
  187. package/build/src/v1beta/grounded_generation_service_client.js +196 -196
  188. package/build/src/v1beta/grounded_generation_service_proto_list.json +1 -0
  189. package/build/src/v1beta/index.d.ts +1 -0
  190. package/build/src/v1beta/index.js +3 -1
  191. package/build/src/v1beta/project_service_client.d.ts +144 -144
  192. package/build/src/v1beta/project_service_client.js +196 -196
  193. package/build/src/v1beta/project_service_proto_list.json +1 -0
  194. package/build/src/v1beta/rank_service_client.d.ts +144 -144
  195. package/build/src/v1beta/rank_service_client.js +196 -196
  196. package/build/src/v1beta/rank_service_proto_list.json +1 -0
  197. package/build/src/v1beta/recommendation_service_client.d.ts +144 -144
  198. package/build/src/v1beta/recommendation_service_client.js +196 -196
  199. package/build/src/v1beta/recommendation_service_proto_list.json +1 -0
  200. package/build/src/v1beta/sample_query_service_client.d.ts +144 -144
  201. package/build/src/v1beta/sample_query_service_client.js +196 -196
  202. package/build/src/v1beta/sample_query_service_proto_list.json +1 -0
  203. package/build/src/v1beta/sample_query_set_service_client.d.ts +144 -144
  204. package/build/src/v1beta/sample_query_set_service_client.js +196 -196
  205. package/build/src/v1beta/sample_query_set_service_proto_list.json +1 -0
  206. package/build/src/v1beta/schema_service_client.d.ts +144 -144
  207. package/build/src/v1beta/schema_service_client.js +196 -196
  208. package/build/src/v1beta/schema_service_proto_list.json +1 -0
  209. package/build/src/v1beta/search_service_client.d.ts +192 -228
  210. package/build/src/v1beta/search_service_client.js +228 -252
  211. package/build/src/v1beta/search_service_proto_list.json +1 -0
  212. package/build/src/v1beta/search_tuning_service_client.d.ts +144 -144
  213. package/build/src/v1beta/search_tuning_service_client.js +196 -196
  214. package/build/src/v1beta/search_tuning_service_proto_list.json +1 -0
  215. package/build/src/v1beta/serving_config_service_client.d.ts +144 -144
  216. package/build/src/v1beta/serving_config_service_client.js +196 -196
  217. package/build/src/v1beta/serving_config_service_proto_list.json +1 -0
  218. package/build/src/v1beta/session_service_client.d.ts +2266 -0
  219. package/build/src/v1beta/session_service_client.js +3136 -0
  220. package/build/src/v1beta/session_service_client_config.json +63 -0
  221. package/build/src/v1beta/session_service_proto_list.json +45 -0
  222. package/build/src/v1beta/site_search_engine_service_client.d.ts +144 -144
  223. package/build/src/v1beta/site_search_engine_service_client.js +196 -196
  224. package/build/src/v1beta/site_search_engine_service_proto_list.json +1 -0
  225. package/build/src/v1beta/user_event_service_client.d.ts +144 -144
  226. package/build/src/v1beta/user_event_service_client.js +196 -196
  227. package/build/src/v1beta/user_event_service_proto_list.json +1 -0
  228. package/package.json +1 -1
@@ -1034,22 +1034,16 @@ message SearchRequest {
1034
1034
  // between /search API calls and /answer API calls.
1035
1035
  //
1036
1036
  // Example #1 (multi-turn /search API calls):
1037
- // 1. Call /search API with the auto-session mode (see below).
1038
- // 2. Call /search API with the session ID generated in the first call.
1039
- // Here, the previous search query gets considered in query
1040
- // standing. I.e., if the first query is "How did Alphabet do in 2022?"
1041
- // and the current query is "How about 2023?", the current query will
1042
- // be interpreted as "How did Alphabet do in 2023?".
1037
+ // Call /search API with the session ID generated in the first call.
1038
+ // Here, the previous search query gets considered in query
1039
+ // standing. I.e., if the first query is "How did Alphabet do in 2022?"
1040
+ // and the current query is "How about 2023?", the current query will
1041
+ // be interpreted as "How did Alphabet do in 2023?".
1043
1042
  //
1044
1043
  // Example #2 (coordination between /search API calls and /answer API calls):
1045
- // 1. Call /search API with the auto-session mode (see below).
1046
- // 2. Call /answer API with the session ID generated in the first call.
1047
- // Here, the answer generation happens in the context of the search
1048
- // results from the first search call.
1049
- //
1050
- // Auto-session mode: when `projects/.../sessions/-` is used, a new session
1051
- // gets automatically created. Otherwise, users can use the create-session API
1052
- // to create a session manually.
1044
+ // Call /answer API with the session ID generated in the first call.
1045
+ // Here, the answer generation happens in the context of the search
1046
+ // results from the first search call.
1053
1047
  //
1054
1048
  // Multi-turn Search feature is currently at private GA stage. Please use
1055
1049
  // v1alpha or v1beta version instead before we launch this feature to public
@@ -37,21 +37,27 @@ message Session {
37
37
  pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}"
38
38
  pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}"
39
39
  pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}"
40
+ plural: "sessions"
41
+ singular: "session"
40
42
  };
41
43
 
42
44
  // Represents a turn, including a query from the user and a
43
45
  // answer from service.
44
46
  message Turn {
45
- // The user query.
46
- Query query = 1;
47
+ // Optional. The user query. May not be set if this turn is merely
48
+ // regenerating an answer to a different turn
49
+ Query query = 1 [(google.api.field_behavior) = OPTIONAL];
47
50
 
48
- // The resource name of the answer to the user query.
51
+ // Optional. The resource name of the answer to the user query.
49
52
  //
50
53
  // Only set if the answer generation (/answer API call) happened in this
51
54
  // turn.
52
- string answer = 2 [(google.api.resource_reference) = {
53
- type: "discoveryengine.googleapis.com/Answer"
54
- }];
55
+ string answer = 2 [
56
+ (google.api.field_behavior) = OPTIONAL,
57
+ (google.api.resource_reference) = {
58
+ type: "discoveryengine.googleapis.com/Answer"
59
+ }
60
+ ];
55
61
 
56
62
  // Output only. In
57
63
  // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1.ConversationalSearchService.GetSession]
@@ -60,6 +66,13 @@ message Session {
60
66
  // is set to true, this field will be populated when getting answer query
61
67
  // session.
62
68
  Answer detailed_answer = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
69
+
70
+ // Optional. Represents metadata related to the query config, for example
71
+ // LLM model and version used, model parameters (temperature, grounding
72
+ // parameters, etc.). The prefix "google." is reserved for Google-developed
73
+ // functionality.
74
+ map<string, string> query_config = 16
75
+ [(google.api.field_behavior) = OPTIONAL];
63
76
  }
64
77
 
65
78
  // Enumeration of the state of the session.
@@ -111,6 +124,6 @@ message Query {
111
124
  string text = 2;
112
125
  }
113
126
 
114
- // Unique Id for the query.
115
- string query_id = 1;
127
+ // Output only. Unique Id for the query.
128
+ string query_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
116
129
  }
@@ -0,0 +1,128 @@
1
+ // Copyright 2025 Google LLC
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ syntax = "proto3";
16
+
17
+ package google.cloud.discoveryengine.v1;
18
+
19
+ import "google/api/annotations.proto";
20
+ import "google/api/client.proto";
21
+ import "google/api/field_behavior.proto";
22
+ import "google/api/resource.proto";
23
+ import "google/cloud/discoveryengine/v1/conversational_search_service.proto";
24
+ import "google/cloud/discoveryengine/v1/session.proto";
25
+ import "google/protobuf/empty.proto";
26
+
27
+ option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1";
28
+ option go_package = "cloud.google.com/go/discoveryengine/apiv1/discoveryenginepb;discoveryenginepb";
29
+ option java_multiple_files = true;
30
+ option java_outer_classname = "SessionServiceProto";
31
+ option java_package = "com.google.cloud.discoveryengine.v1";
32
+ option objc_class_prefix = "DISCOVERYENGINE";
33
+ option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1";
34
+ option ruby_package = "Google::Cloud::DiscoveryEngine::V1";
35
+
36
+ // Service for managing Sessions and Session-related resources.
37
+ service SessionService {
38
+ option (google.api.default_host) = "discoveryengine.googleapis.com";
39
+ option (google.api.oauth_scopes) =
40
+ "https://www.googleapis.com/auth/cloud-platform";
41
+
42
+ // Creates a Session.
43
+ //
44
+ // If the [Session][google.cloud.discoveryengine.v1.Session] to create already
45
+ // exists, an ALREADY_EXISTS error is returned.
46
+ rpc CreateSession(CreateSessionRequest) returns (Session) {
47
+ option (google.api.http) = {
48
+ post: "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions"
49
+ body: "session"
50
+ additional_bindings {
51
+ post: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions"
52
+ body: "session"
53
+ }
54
+ additional_bindings {
55
+ post: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions"
56
+ body: "session"
57
+ }
58
+ };
59
+ option (google.api.method_signature) = "parent,session";
60
+ }
61
+
62
+ // Deletes a Session.
63
+ //
64
+ // If the [Session][google.cloud.discoveryengine.v1.Session] to delete does
65
+ // not exist, a NOT_FOUND error is returned.
66
+ rpc DeleteSession(DeleteSessionRequest) returns (google.protobuf.Empty) {
67
+ option (google.api.http) = {
68
+ delete: "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}"
69
+ additional_bindings {
70
+ delete: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}"
71
+ }
72
+ additional_bindings {
73
+ delete: "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}"
74
+ }
75
+ };
76
+ option (google.api.method_signature) = "name";
77
+ }
78
+
79
+ // Updates a Session.
80
+ //
81
+ // [Session][google.cloud.discoveryengine.v1.Session] action type cannot be
82
+ // changed. If the [Session][google.cloud.discoveryengine.v1.Session] to
83
+ // update does not exist, a NOT_FOUND error is returned.
84
+ rpc UpdateSession(UpdateSessionRequest) returns (Session) {
85
+ option (google.api.http) = {
86
+ patch: "/v1/{session.name=projects/*/locations/*/dataStores/*/sessions/*}"
87
+ body: "session"
88
+ additional_bindings {
89
+ patch: "/v1/{session.name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}"
90
+ body: "session"
91
+ }
92
+ additional_bindings {
93
+ patch: "/v1/{session.name=projects/*/locations/*/collections/*/engines/*/sessions/*}"
94
+ body: "session"
95
+ }
96
+ };
97
+ option (google.api.method_signature) = "session,update_mask";
98
+ }
99
+
100
+ // Gets a Session.
101
+ rpc GetSession(GetSessionRequest) returns (Session) {
102
+ option (google.api.http) = {
103
+ get: "/v1/{name=projects/*/locations/*/dataStores/*/sessions/*}"
104
+ additional_bindings {
105
+ get: "/v1/{name=projects/*/locations/*/collections/*/dataStores/*/sessions/*}"
106
+ }
107
+ additional_bindings {
108
+ get: "/v1/{name=projects/*/locations/*/collections/*/engines/*/sessions/*}"
109
+ }
110
+ };
111
+ option (google.api.method_signature) = "name";
112
+ }
113
+
114
+ // Lists all Sessions by their parent
115
+ // [DataStore][google.cloud.discoveryengine.v1.DataStore].
116
+ rpc ListSessions(ListSessionsRequest) returns (ListSessionsResponse) {
117
+ option (google.api.http) = {
118
+ get: "/v1/{parent=projects/*/locations/*/dataStores/*}/sessions"
119
+ additional_bindings {
120
+ get: "/v1/{parent=projects/*/locations/*/collections/*/dataStores/*}/sessions"
121
+ }
122
+ additional_bindings {
123
+ get: "/v1/{parent=projects/*/locations/*/collections/*/engines/*}/sessions"
124
+ }
125
+ };
126
+ option (google.api.method_signature) = "parent";
127
+ }
128
+ }
@@ -127,6 +127,21 @@ enum SearchAddOn {
127
127
  SEARCH_ADD_ON_LLM = 1;
128
128
  }
129
129
 
130
+ // The origin of the file.
131
+ enum FileOriginType {
132
+ // Default value.
133
+ FILE_ORIGIN_TYPE_UNSPECIFIED = 0;
134
+
135
+ // The file was provided by the user.
136
+ USER_PROVIDED = 1;
137
+
138
+ // The file was generated by an AI model.
139
+ AI_GENERATED = 2;
140
+
141
+ // The file was generated from other files by an internal process.
142
+ INTERNALLY_GENERATED = 3;
143
+ }
144
+
130
145
  // A floating point interval.
131
146
  message Interval {
132
147
  // The lower bound of the interval. If neither of the min fields are
@@ -859,7 +859,7 @@ message GetAnswerRequest {
859
859
  // Request for CreateSession method.
860
860
  message CreateSessionRequest {
861
861
  // Required. Full resource name of parent data store. Format:
862
- // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}`
862
+ // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}`
863
863
  string parent = 1 [
864
864
  (google.api.field_behavior) = REQUIRED,
865
865
  (google.api.resource_reference) = {
@@ -889,7 +889,7 @@ message UpdateSessionRequest {
889
889
  // Request for DeleteSession method.
890
890
  message DeleteSessionRequest {
891
891
  // Required. The resource name of the Session to delete. Format:
892
- // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}`
892
+ // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}`
893
893
  string name = 1 [
894
894
  (google.api.field_behavior) = REQUIRED,
895
895
  (google.api.resource_reference) = {
@@ -901,19 +901,23 @@ message DeleteSessionRequest {
901
901
  // Request for GetSession method.
902
902
  message GetSessionRequest {
903
903
  // Required. The resource name of the Session to get. Format:
904
- // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}`
904
+ // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}/sessions/{session_id}`
905
905
  string name = 1 [
906
906
  (google.api.field_behavior) = REQUIRED,
907
907
  (google.api.resource_reference) = {
908
908
  type: "discoveryengine.googleapis.com/Session"
909
909
  }
910
910
  ];
911
+
912
+ // Optional. If set to true, the full session including all answer details
913
+ // will be returned.
914
+ bool include_answer_details = 2 [(google.api.field_behavior) = OPTIONAL];
911
915
  }
912
916
 
913
917
  // Request for ListSessions method.
914
918
  message ListSessionsRequest {
915
919
  // Required. The data store resource name. Format:
916
- // `projects/{project_number}/locations/{location_id}/collections/{collection}/dataStores/{data_store_id}`
920
+ // `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store_id}`
917
921
  string parent = 1 [
918
922
  (google.api.field_behavior) = REQUIRED,
919
923
  (google.api.resource_reference) = {
@@ -929,23 +933,40 @@ message ListSessionsRequest {
929
933
  // Provide this to retrieve the subsequent page.
930
934
  string page_token = 3;
931
935
 
932
- // A filter to apply on the list results. The supported features are:
933
- // user_pseudo_id, state.
936
+ // A comma-separated list of fields to filter by, in EBNF grammar.
937
+ // The supported fields are:
938
+ // * `user_pseudo_id`
939
+ // * `state`
940
+ // * `display_name`
941
+ // * `starred`
942
+ // * `is_pinned`
943
+ // * `labels`
944
+ // * `create_time`
945
+ // * `update_time`
934
946
  //
935
- // Example:
947
+ // Examples:
936
948
  // "user_pseudo_id = some_id"
949
+ // "display_name = \"some_name\""
950
+ // "starred = true"
951
+ // "is_pinned=true AND (NOT labels:hidden)"
952
+ // "create_time > \"1970-01-01T12:00:00Z\""
937
953
  string filter = 4;
938
954
 
939
955
  // A comma-separated list of fields to order by, sorted in ascending order.
940
956
  // Use "desc" after a field name for descending.
941
957
  // Supported fields:
958
+ //
942
959
  // * `update_time`
943
960
  // * `create_time`
944
961
  // * `session_name`
962
+ // * `is_pinned`
945
963
  //
946
964
  // Example:
947
- // "update_time desc"
948
- // "create_time"
965
+ //
966
+ // * "update_time desc"
967
+ // * "create_time"
968
+ // * "is_pinned desc,update_time desc": list sessions by is_pinned first, then
969
+ // by update_time.
949
970
  string order_by = 5;
950
971
  }
951
972
 
@@ -1035,22 +1035,16 @@ message SearchRequest {
1035
1035
  // between /search API calls and /answer API calls.
1036
1036
  //
1037
1037
  // Example #1 (multi-turn /search API calls):
1038
- // 1. Call /search API with the auto-session mode (see below).
1039
- // 2. Call /search API with the session ID generated in the first call.
1040
- // Here, the previous search query gets considered in query
1041
- // standing. I.e., if the first query is "How did Alphabet do in 2022?"
1042
- // and the current query is "How about 2023?", the current query will
1043
- // be interpreted as "How did Alphabet do in 2023?".
1038
+ // Call /search API with the session ID generated in the first call.
1039
+ // Here, the previous search query gets considered in query
1040
+ // standing. I.e., if the first query is "How did Alphabet do in 2022?"
1041
+ // and the current query is "How about 2023?", the current query will
1042
+ // be interpreted as "How did Alphabet do in 2023?".
1044
1043
  //
1045
1044
  // Example #2 (coordination between /search API calls and /answer API calls):
1046
- // 1. Call /search API with the auto-session mode (see below).
1047
- // 2. Call /answer API with the session ID generated in the first call.
1048
- // Here, the answer generation happens in the context of the search
1049
- // results from the first search call.
1050
- //
1051
- // Auto-session mode: when `projects/.../sessions/-` is used, a new session
1052
- // gets automatically created. Otherwise, users can use the create-session API
1053
- // to create a session manually.
1045
+ // Call /answer API with the session ID generated in the first call.
1046
+ // Here, the answer generation happens in the context of the search
1047
+ // results from the first search call.
1054
1048
  //
1055
1049
  // Multi-turn Search feature is currently at private GA stage. Please use
1056
1050
  // v1alpha or v1beta version instead before we launch this feature to public
@@ -18,6 +18,9 @@ package google.cloud.discoveryengine.v1alpha;
18
18
 
19
19
  import "google/api/field_behavior.proto";
20
20
  import "google/api/resource.proto";
21
+ import "google/cloud/discoveryengine/v1alpha/answer.proto";
22
+ import "google/cloud/discoveryengine/v1alpha/common.proto";
23
+ import "google/protobuf/duration.proto";
21
24
  import "google/protobuf/timestamp.proto";
22
25
 
23
26
  option csharp_namespace = "Google.Cloud.DiscoveryEngine.V1Alpha";
@@ -29,6 +32,27 @@ option objc_class_prefix = "DISCOVERYENGINE";
29
32
  option php_namespace = "Google\\Cloud\\DiscoveryEngine\\V1alpha";
30
33
  option ruby_package = "Google::Cloud::DiscoveryEngine::V1alpha";
31
34
 
35
+ // Original source of the file.
36
+ enum FileSource {
37
+ // Default value. Unknown source.
38
+ FILE_SOURCE_UNSPECIFIED = 0;
39
+
40
+ // The data of the file was provided inline (e.g. pasted from the clipboard).
41
+ FILE_SOURCE_INLINE = 1;
42
+
43
+ // The file was uploaded from a local file.
44
+ FILE_SOURCE_LOCAL = 2;
45
+
46
+ // The file was uploaded from Cloud Storage.
47
+ FILE_SOURCE_CLOUD_STORAGE = 3;
48
+
49
+ // The file was uploaded from Drive.
50
+ FILE_SOURCE_CLOUD_DRIVE = 4;
51
+
52
+ // The file was retrieved from a URL (e.g. public web).
53
+ FILE_SOURCE_URL = 5;
54
+ }
55
+
32
56
  // External session proto definition.
33
57
  message Session {
34
58
  option (google.api.resource) = {
@@ -36,21 +60,42 @@ message Session {
36
60
  pattern: "projects/{project}/locations/{location}/dataStores/{data_store}/sessions/{session}"
37
61
  pattern: "projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/sessions/{session}"
38
62
  pattern: "projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/sessions/{session}"
63
+ plural: "sessions"
64
+ singular: "session"
39
65
  };
40
66
 
41
67
  // Represents a turn, including a query from the user and a
42
68
  // answer from service.
43
69
  message Turn {
44
- // The user query.
45
- Query query = 1;
70
+ // Optional. The user query. May not be set if this turn is merely
71
+ // regenerating an answer to a different turn
72
+ Query query = 1 [(google.api.field_behavior) = OPTIONAL];
46
73
 
47
- // The resource name of the answer to the user query.
74
+ // Optional. The resource name of the answer to the user query.
48
75
  //
49
76
  // Only set if the answer generation (/answer API call) happened in this
50
77
  // turn.
51
- string answer = 2 [(google.api.resource_reference) = {
52
- type: "discoveryengine.googleapis.com/Answer"
53
- }];
78
+ string answer = 2 [
79
+ (google.api.field_behavior) = OPTIONAL,
80
+ (google.api.resource_reference) = {
81
+ type: "discoveryengine.googleapis.com/Answer"
82
+ }
83
+ ];
84
+
85
+ // Output only. In
86
+ // [ConversationalSearchService.GetSession][google.cloud.discoveryengine.v1alpha.ConversationalSearchService.GetSession]
87
+ // API, if
88
+ // [GetSessionRequest.include_answer_details][google.cloud.discoveryengine.v1alpha.GetSessionRequest.include_answer_details]
89
+ // is set to true, this field will be populated when getting answer query
90
+ // session.
91
+ Answer detailed_answer = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
92
+
93
+ // Optional. Represents metadata related to the query config, for example
94
+ // LLM model and version used, model parameters (temperature, grounding
95
+ // parameters, etc.). The prefix "google." is reserved for Google-developed
96
+ // functionality.
97
+ map<string, string> query_config = 16
98
+ [(google.api.field_behavior) = OPTIONAL];
54
99
  }
55
100
 
56
101
  // Enumeration of the state of the session.
@@ -66,6 +111,12 @@ message Session {
66
111
  // `projects/{project}/locations/global/collections/{collection}/engines/{engine}/sessions/*`
67
112
  string name = 1 [(google.api.field_behavior) = IMMUTABLE];
68
113
 
114
+ // Optional. The display name of the session.
115
+ //
116
+ // This field is used to identify the session in the UI.
117
+ // By default, the display name is the first turn query text in the session.
118
+ string display_name = 7 [(google.api.field_behavior) = OPTIONAL];
119
+
69
120
  // The state of the session.
70
121
  State state = 2;
71
122
 
@@ -82,6 +133,10 @@ message Session {
82
133
  // Output only. The time the session finished.
83
134
  google.protobuf.Timestamp end_time = 6
84
135
  [(google.api.field_behavior) = OUTPUT_ONLY];
136
+
137
+ // Optional. Whether the session is pinned, pinned session will be displayed
138
+ // on the top of the session list.
139
+ bool is_pinned = 8 [(google.api.field_behavior) = OPTIONAL];
85
140
  }
86
141
 
87
142
  // Defines a user inputed query.
@@ -92,6 +147,181 @@ message Query {
92
147
  string text = 2;
93
148
  }
94
149
 
95
- // Unique Id for the query.
96
- string query_id = 1;
150
+ // Output only. Unique Id for the query.
151
+ string query_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
152
+ }
153
+
154
+ // Standard characteristics of an image media view.
155
+ message ImageCharacteristics {
156
+ // Possible color spaces of an image (e.g., "RGB", "CMYK", "Grayscale").
157
+ enum ColorSpace {
158
+ // Default value. Unknown color space.
159
+ COLOR_SPACE_UNSPECIFIED = 0;
160
+
161
+ // Red, green, blue colorspace.
162
+ RGB = 1;
163
+
164
+ // Cyan, magenta, yellow, and black colorspace.
165
+ CMYK = 2;
166
+
167
+ // Grayscale colorspace.
168
+ GRAYSCALE = 3;
169
+
170
+ // YUV colorspace.
171
+ YUV = 4;
172
+
173
+ // Other colorspace.
174
+ OTHER_COLOR_SPACE = 5;
175
+ }
176
+
177
+ // Output only. Image width in pixels.
178
+ int32 width = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
179
+
180
+ // Output only. Image height in pixels.
181
+ int32 height = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
182
+
183
+ // Output only. Color space of the image (e.g., "RGB", "CMYK", "Grayscale").
184
+ ColorSpace color_space = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
185
+
186
+ // Output only. Bit depth of the image (e.g., 8-bit, 16-bit).
187
+ int32 bit_depth = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
188
+ }
189
+
190
+ // Standard characteristics of a video media view.
191
+ message VideoCharacteristics {
192
+ // Output only. Video width in pixels.
193
+ int32 width = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
194
+
195
+ // Output only. Video height in pixels.
196
+ int32 height = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
197
+
198
+ // Output only. Video duration.
199
+ google.protobuf.Duration duration = 3
200
+ [(google.api.field_behavior) = OUTPUT_ONLY];
201
+
202
+ // Output only. Frame rate (frames per second).
203
+ double frame_rate = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
204
+
205
+ // Output only. Audio codecs used in the video.
206
+ repeated string audio_codecs = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
207
+
208
+ // Output only. Video codecs used in the video.
209
+ repeated string video_codecs = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
210
+
211
+ // Output only. Bitrate of the video in kbps.
212
+ int32 video_bitrate_kbps = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
213
+
214
+ // Output only. Bitrate of the audio in kbps.
215
+ int32 audio_bitrate_kbps = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
216
+ }
217
+
218
+ // Caracteristics of other file types.
219
+ message FileCharacteristics {
220
+ // Output only. Generic map of characteristics.
221
+ map<string, string> characteristics = 6
222
+ [(google.api.field_behavior) = OUTPUT_ONLY];
223
+ }
224
+
225
+ // Represents a specific alternate version or "view" of a file object,
226
+ // such as a summary, a thumbnail, a translated version, etc.
227
+ message FileView {
228
+ // Characteristics of the media view, allowing for flexible extensions.
229
+ // Metadata is always internally generated by the process creating
230
+ // the view.
231
+ oneof characteristics {
232
+ // Output only. Characteristics of an image media view.
233
+ ImageCharacteristics image_characteristics = 6
234
+ [(google.api.field_behavior) = OUTPUT_ONLY];
235
+
236
+ // Output only. Characteristics of a video media view.
237
+ VideoCharacteristics video_characteristics = 7
238
+ [(google.api.field_behavior) = OUTPUT_ONLY];
239
+
240
+ // Output only. Characteristics of other file types.
241
+ FileCharacteristics file_characteristics = 8
242
+ [(google.api.field_behavior) = OUTPUT_ONLY];
243
+ }
244
+
245
+ // Output only. Globally Unique id for this specific view.
246
+ string view_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
247
+
248
+ // Output only. The URI to access this media view.
249
+ string uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
250
+
251
+ // Output only. MIME type (e.g., "image/jpeg", "image/png", "text/plain",
252
+ // "video/mp4")
253
+ string mime_type = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
254
+
255
+ // Output only. The size of the view in bytes.
256
+ int64 byte_size = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
257
+
258
+ // Output only. The time the view was created.
259
+ google.protobuf.Timestamp create_time = 5
260
+ [(google.api.field_behavior) = OUTPUT_ONLY];
261
+ }
262
+
263
+ // Represents a file attached to a session (context file)
264
+ message FileMetadata {
265
+ // Output only. The ID of the file.
266
+ string file_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
267
+
268
+ // Output only. The name of the file uploaded.
269
+ string name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
270
+
271
+ // The content type of the file, see
272
+ // https://www.iana.org/assignments/media-types/media-types.xhtml.
273
+ string mime_type = 3;
274
+
275
+ // Output only. The size of the context file in bytes.
276
+ int64 byte_size = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
277
+
278
+ // Optional. The original location of the file. It may be a local file path,
279
+ // or any other URI that allows accessing the file in an external system.
280
+ // There are two scenarios in which this url may be empty:
281
+ // 1. If the file was sent as inline data (e.g. pasted from the clipboard).
282
+ // 2. If the original location is not available.
283
+ //
284
+ // Note that there's no guarantee that the URI will be pointing to a valid
285
+ // or actually existing file. For example, a file might have been uploaded
286
+ // to the session, and then deleted from the original source.
287
+ string original_uri = 9 [(google.api.field_behavior) = OPTIONAL];
288
+
289
+ // Optional. The type of the original source of the file.
290
+ FileSource original_source_type = 10 [(google.api.field_behavior) = OPTIONAL];
291
+
292
+ // Output only. The time the file was uploaded (If this is a file
293
+ // generated by an internal process and then made available to the session,
294
+ // this indicates the moment it happened).
295
+ google.protobuf.Timestamp upload_time = 12
296
+ [(google.api.field_behavior) = OUTPUT_ONLY];
297
+
298
+ // Output only. The time the file was added to the session. Note that if a
299
+ // file was added, then modified externally, then added again, the add time
300
+ // will be updated.
301
+ google.protobuf.Timestamp last_add_time = 13
302
+ [(google.api.field_behavior) = OUTPUT_ONLY];
303
+
304
+ // Optional. Represents metadata related to the file that can suit particular
305
+ // use cases. The prefix "google." is reserved for the key for use by
306
+ // Google, but other prefixes can be freely used.
307
+ map<string, string> metadata = 18 [(google.api.field_behavior) = OPTIONAL];
308
+
309
+ // Output only. The
310
+ // [AssistantService.DownloadSessionFile][google.cloud.discoveryengine.v1alpha.AssistantService.DownloadSessionFile]
311
+ // URL to download the file. This URL will need the same credentials as
312
+ // [AssistantService.ListSessionFileMetadata][google.cloud.discoveryengine.v1alpha.AssistantService.ListSessionFileMetadata]
313
+ // method and will provide the resource.
314
+ string download_uri = 20 [(google.api.field_behavior) = OUTPUT_ONLY];
315
+
316
+ // Optional. The origin of the file.
317
+ FileOriginType file_origin_type = 21 [(google.api.field_behavior) = OPTIONAL];
318
+
319
+ // Output only. Alternate views of this file object. Each file view is
320
+ // attached to a specific role. Possible example keys:
321
+ // - "thumbnail"
322
+ // - "mobile_thumbnail"
323
+ // - "clip"
324
+ // - "summary"
325
+ // - "translation"
326
+ map<string, FileView> views = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
97
327
  }