@google-cloud/discoveryengine 2.3.0 → 2.5.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 +20 -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 +160 -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 +136 -18
  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 +136 -18
  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 +15854 -10608
  19. package/build/protos/protos.js +47009 -33222
  20. package/build/protos/protos.json +5357 -3208
  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 +353 -201
  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 +861 -228
  70. package/build/src/v1/search_service_client.js +752 -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 +378 -198
  146. package/build/src/v1alpha/search_service_client.js +352 -232
  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 +612 -252
  210. package/build/src/v1beta/search_service_client.js +508 -268
  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
@@ -1075,6 +1069,115 @@ message SearchRequest {
1075
1069
  // Optional. The specification for returning the relevance score.
1076
1070
  RelevanceScoreSpec relevance_score_spec = 52
1077
1071
  [(google.api.field_behavior) = OPTIONAL];
1072
+
1073
+ // The ranking expression controls the customized ranking on retrieval
1074
+ // documents. This overrides
1075
+ // [ServingConfig.ranking_expression][google.cloud.discoveryengine.v1.ServingConfig.ranking_expression].
1076
+ // The syntax and supported features depend on the
1077
+ // `ranking_expression_backend` value. If `ranking_expression_backend` is not
1078
+ // provided, it defaults to `RANK_BY_EMBEDDING`.
1079
+ //
1080
+ // If
1081
+ // [ranking_expression_backend][google.cloud.discoveryengine.v1.SearchRequest.ranking_expression_backend]
1082
+ // is not provided or set to `RANK_BY_EMBEDDING`, it should be a single
1083
+ // function or multiple functions that are joined by "+".
1084
+ //
1085
+ // * ranking_expression = function, { " + ", function };
1086
+ //
1087
+ // Supported functions:
1088
+ //
1089
+ // * double * relevance_score
1090
+ // * double * dotProduct(embedding_field_path)
1091
+ //
1092
+ // Function variables:
1093
+ //
1094
+ // * `relevance_score`: pre-defined keywords, used for measure relevance
1095
+ // between query and document.
1096
+ // * `embedding_field_path`: the document embedding field
1097
+ // used with query embedding vector.
1098
+ // * `dotProduct`: embedding function between `embedding_field_path` and
1099
+ // query embedding vector.
1100
+ //
1101
+ // Example ranking expression:
1102
+ //
1103
+ // If document has an embedding field doc_embedding, the ranking expression
1104
+ // could be `0.5 * relevance_score + 0.3 * dotProduct(doc_embedding)`.
1105
+ //
1106
+ // If
1107
+ // [ranking_expression_backend][google.cloud.discoveryengine.v1.SearchRequest.ranking_expression_backend]
1108
+ // is set to `RANK_BY_FORMULA`, the following expression types (and
1109
+ // combinations of those chained using + or
1110
+ // * operators) are supported:
1111
+ //
1112
+ // * `double`
1113
+ // * `signal`
1114
+ // * `log(signal)`
1115
+ // * `exp(signal)`
1116
+ // * `rr(signal, double > 0)` -- reciprocal rank transformation with second
1117
+ // argument being a denominator constant.
1118
+ // * `is_nan(signal)` -- returns 0 if signal is NaN, 1 otherwise.
1119
+ // * `fill_nan(signal1, signal2 | double)` -- if signal1 is NaN, returns
1120
+ // signal2 | double, else returns signal1.
1121
+ //
1122
+ // Here are a few examples of ranking formulas that use the supported
1123
+ // ranking expression types:
1124
+ //
1125
+ // - `0.2 * semantic_similarity_score + 0.8 * log(keyword_similarity_score)`
1126
+ // -- mostly rank by the logarithm of `keyword_similarity_score` with slight
1127
+ // `semantic_smilarity_score` adjustment.
1128
+ // - `0.2 * exp(fill_nan(semantic_similarity_score, 0)) + 0.3 *
1129
+ // is_nan(keyword_similarity_score)` -- rank by the exponent of
1130
+ // `semantic_similarity_score` filling the value with 0 if it's NaN, also
1131
+ // add constant 0.3 adjustment to the final score if
1132
+ // `semantic_similarity_score` is NaN.
1133
+ // - `0.2 * rr(semantic_similarity_score, 16) + 0.8 *
1134
+ // rr(keyword_similarity_score, 16)` -- mostly rank by the reciprocal rank
1135
+ // of `keyword_similarity_score` with slight adjustment of reciprocal rank
1136
+ // of `semantic_smilarity_score`.
1137
+ //
1138
+ // The following signals are supported:
1139
+ //
1140
+ // * `semantic_similarity_score`: semantic similarity adjustment that is
1141
+ // calculated using the embeddings generated by a proprietary Google model.
1142
+ // This score determines how semantically similar a search query is to a
1143
+ // document.
1144
+ // * `keyword_similarity_score`: keyword match adjustment uses the Best
1145
+ // Match 25 (BM25) ranking function. This score is calculated using a
1146
+ // probabilistic model to estimate the probability that a document is
1147
+ // relevant to a given query.
1148
+ // * `relevance_score`: semantic relevance adjustment that uses a
1149
+ // proprietary Google model to determine the meaning and intent behind a
1150
+ // user's query in context with the content in the documents.
1151
+ // * `pctr_rank`: predicted conversion rate adjustment as a rank use
1152
+ // predicted Click-through rate (pCTR) to gauge the relevance and
1153
+ // attractiveness of a search result from a user's perspective. A higher
1154
+ // pCTR suggests that the result is more likely to satisfy the user's query
1155
+ // and intent, making it a valuable signal for ranking.
1156
+ // * `freshness_rank`: freshness adjustment as a rank
1157
+ // * `document_age`: The time in hours elapsed since the document was last
1158
+ // updated, a floating-point number (e.g., 0.25 means 15 minutes).
1159
+ // * `topicality_rank`: topicality adjustment as a rank. Uses proprietary
1160
+ // Google model to determine the keyword-based overlap between the query and
1161
+ // the document.
1162
+ // * `base_rank`: the default rank of the result
1163
+ string ranking_expression = 26;
1164
+
1165
+ // The backend to use for the ranking expression evaluation.
1166
+ enum RankingExpressionBackend {
1167
+ reserved 1, 2;
1168
+
1169
+ // Default option for unspecified/unknown values.
1170
+ RANKING_EXPRESSION_BACKEND_UNSPECIFIED = 0;
1171
+ // Ranking by custom embedding model, the default way to evaluate the
1172
+ // ranking expression.
1173
+ RANK_BY_EMBEDDING = 3;
1174
+ // Ranking by custom formula.
1175
+ RANK_BY_FORMULA = 4;
1176
+ }
1177
+
1178
+ // The backend to use for the ranking expression evaluation.
1179
+ RankingExpressionBackend ranking_expression_backend = 53
1180
+ [(google.api.field_behavior) = OPTIONAL];
1078
1181
  }
1079
1182
 
1080
1183
  // Response message for
@@ -1100,6 +1203,49 @@ message SearchResponse {
1100
1203
  // Output only. Google provided available scores.
1101
1204
  map<string, DoubleList> model_scores = 4
1102
1205
  [(google.api.field_behavior) = OUTPUT_ONLY];
1206
+
1207
+ // A set of ranking signals.
1208
+ message RankSignals {
1209
+ reserved 5;
1210
+
1211
+ // Keyword matching adjustment.
1212
+ optional float keyword_similarity_score = 1
1213
+ [(google.api.field_behavior) = OPTIONAL];
1214
+ // Semantic relevance adjustment.
1215
+ optional float relevance_score = 2
1216
+ [(google.api.field_behavior) = OPTIONAL];
1217
+ // Semantic similarity adjustment.
1218
+ optional float semantic_similarity_score = 3
1219
+ [(google.api.field_behavior) = OPTIONAL];
1220
+ // Predicted conversion rate adjustment as a rank.
1221
+ optional float pctr_rank = 4 [(google.api.field_behavior) = OPTIONAL];
1222
+ // Topicality adjustment as a rank.
1223
+ optional float topicality_rank = 6
1224
+ [(google.api.field_behavior) = OPTIONAL];
1225
+ // Age of the document in hours.
1226
+ optional float document_age = 7 [(google.api.field_behavior) = OPTIONAL];
1227
+ // Combined custom boosts for a doc.
1228
+ optional float boosting_factor = 8
1229
+ [(google.api.field_behavior) = OPTIONAL];
1230
+
1231
+ // The default rank of the result.
1232
+ float default_rank = 32 [(google.api.field_behavior) = OPTIONAL];
1233
+
1234
+ // Custom clearbox signal represented by name and value pair.
1235
+ message CustomSignal {
1236
+ // Name of the signal.
1237
+ string name = 1 [(google.api.field_behavior) = OPTIONAL];
1238
+ // Float value representing the ranking signal (e.g. 1.25 for BM25).
1239
+ float value = 2 [(google.api.field_behavior) = OPTIONAL];
1240
+ }
1241
+
1242
+ // A list of custom clearbox signals.
1243
+ repeated CustomSignal custom_signals = 33
1244
+ [(google.api.field_behavior) = OPTIONAL];
1245
+ }
1246
+
1247
+ // A set of ranking signals associated with the result.
1248
+ RankSignals rank_signals = 7 [(google.api.field_behavior) = OPTIONAL];
1103
1249
  }
1104
1250
 
1105
1251
  // A facet result.
@@ -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