Troubleshooting of Google Vertex AI Search: Difference between revisions

Jump to navigation Jump to search
Troubleshooting: Vertex AI Discovery Engine: Search Returns No Results
(Troubleshooting: Vertex AI Discovery Engine: Search Returns No Results)
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
Troubleshooting of Google Vertex AI API
Resolving Issues with [https://cloud.google.com/enterprise-search?hl=en_us Google Vertex AI Search] and its API


{{LanguageSwitcher | content = [[Troubleshooting of Google Vertex AI API | EN]], [[Troubleshooting of Google Vertex AI API in Mandarin | 漢字]] }}
{{LanguageSwitcher | content = [[Troubleshooting of Google Vertex AI API | EN]], [[Troubleshooting of Google Vertex AI Search in Mandarin | 漢字]] }}


== Issues ==
== Issues ==
Line 115: Line 115:
'''Root cause:'''
'''Root cause:'''


The metadata in the error response has indicated that the quota value is 100 requests per minute
The metadata in the error response has indicated that the quota value is '''100 requests per minute'''


'''Resolution Steps''': Resolve API Quota Limit Exceedance
'''Resolution Steps''': Resolve API Quota Limit Exceedance
Line 121: Line 121:
Option 1: Increase the delay time between requests
Option 1: Increase the delay time between requests


# Implement this timing delay in your code to prevent 429 errors e.g. Add a 1-second pause between each request to stay within rate limits
# Implement this timing delay in your code to prevent 429 errors. 60 seconds ÷ 100 requests = 0.6 seconds per request e.g. Add a 0.6 ~ 1 second pause between each request to stay within rate limits
# Adjust the delay time as needed based on your quota and request patterns
# Adjust the delay time as needed based on your quota and request patterns


Line 135: Line 135:
# Increase the delay time with each failed retry (e.g., 2 seconds, 4 seconds, 8 seconds, etc.)
# Increase the delay time with each failed retry (e.g., 2 seconds, 4 seconds, 8 seconds, etc.)
# Continue retrying until the request succeeds or maximum retry count is reached
# Continue retrying until the request succeeds or maximum retry count is reached
=== Troubleshooting: Vertex AI Search: Engine Not Found Error ===
'''Error:'''
When using Vertex AI Search API, encountering a 404 error:
<pre>
{
  "error": {
    "code": 404,
    "message": "Engine projects/<YOUR_PROJECT_ID>/locations/global/collections/default_collection/engines/<YOUR_APP_ID> not found.",
    "status": "NOT_FOUND"
  }
}
</pre>
'''Solution:'''
1. Verify the correct APP ID (Engine ID):
Open your browser and replace {{kbd | key=<nowiki><YOUR_APP_ID></nowiki>}} in the URL with the actual APP ID:
<pre>
https://console.cloud.google.com/gen-app-builder/locations/global/engines/<YOUR_APP_ID>/overview
</pre>
2. Update the app_id in your code:
3. Validate the API endpoint: Ensure the curl request uses the correct engine ID:
<pre>
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1alpha/projects/<YOUR_PROJECT_ID>/locations/global/collections/default_collection/engines/<YOUR_APP_ID>/servingConfigs/default_search:search" \
-d '{"query":"<QUERY>","pageSize":10,"queryExpansionSpec":{"condition":"AUTO"},"spellCorrectionSpec":{"mode":"AUTO"},"languageCode":"zh-TW","userInfo":{"timeZone":"Asia/Taipei"}}'
</pre>
=== Troubleshooting: Vertex AI Search: Path Format Error When Enabling Grounding ===
Error encountered when enabling "[https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-vertex-ai-search Grounding with Vertex AI Search]":
'''Error message:'''
<pre>
Path must follow this format: projects/{project_id}/locations/{location}/collections/{collection_name}/dataStores/{datastore_name}
</pre>
'''Solution:''' How to find the correct path parameters:
# Navigate to https://console.cloud.google.com/gen-app-builder/engines
# Select your datastore
# Click the "Integration" tab
# Look for the example command under "Run sample request in Cloud Shell"
Example curl command:
<pre>
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1alpha/projects/987654321000/locations/global/collections/default_collection/engines/vertex-search_123/servingConfigs/default_search:search" \
-d '{"query":"<QUERY>","pageSize":10,"queryExpansionSpec":{"condition":"AUTO"},"spellCorrectionSpec":{"mode":"AUTO"},"languageCode":"zh-TW","userInfo":{"timeZone":"Asia/Taipei"}}'
</pre>
Parameter extraction from the URL:
From the URL path
{{kbd | key=<nowiki>/projects/987654321000/locations/global/collections/default_collection/engines/vertex-search_123/</nowiki>}}
# {project_id}: `987654321000` (the number after `/projects/`)
# {location}: `global` (the string after `/locations/`) {{exclaim}} Note: Do not enter the [https://cloud.google.com/compute/docs/regions-zones geographic areas] of GCP server. You will met the error message e.g. "Invalid location in serving config: asia-east1"
# {collection_name}: `default_collection` (the string after `/collections/`)
# {datastore_name}: Found on the datastore overview page as "Datastore ID" (e.g., `XXX_1234567890123`) {{exclaim}} Note: The datastore_name is not visible in the engine URL - you need to check the datastore overview page to find the "Datastore ID".
=== Troubleshooting: Vertex AI Discovery Engine: Search Returns No Results ===
Issue encountered when searching with keywords against a Vertex AI Discovery Engine Data Store: the query executes successfully but returns no content.
'''Symptom:'''
The API responds with empty result arrays:
<pre>
{
  "attributionToken" : "xxxx",
  "guidedSearchResult" : [],
  "summary" : [],
  "semanticState" : "DISABLED"
}
</pre>
'''Cause:''' The query syntax is correct, but the target website is outside the indexing scope of the Data Store specified by the Vertex API. For example, attempting to search <code>aaa.com</code> while the Data Store only indexes <code>example.com</code> will return no results, since the engine can only retrieve content it has actually crawled and indexed.
'''Solution:''' Verify and expand the indexed website scope:
# Navigate to https://console.cloud.google.com/gen-app-builder
# Open the Data Store referenced by your Vertex API call
# Check the configured website scope under the "Data" tab
# Confirm whether the target domain (e.g., `aaa.com`) is included
If the target domain is not covered, you must create a dedicated Data Store for it:
# In '''GCP Console → Vertex AI Search''', create a new Data Store for `aaa.com`
# Configure '''website crawling''' for that domain
{{exclaim}} Note: Each Data Store indexes only its own configured site list — a query cannot reach content outside the Data Store's crawl scope, regardless of how correct the query syntax is.


== Related Pages ==
== Related Pages ==
Line 140: Line 241:
* [[Troubleshooting of curl errors]] if you are using curl command.
* [[Troubleshooting of curl errors]] if you are using curl command.
* [[Troubleshooting of HTTP errors]]
* [[Troubleshooting of HTTP errors]]
== Further readings ==
* [https://www.youtube.com/watch?v=cPJIHHbDdGk&t=1s Building an Enterprise Search app using Vertex AI Search on Google Cloud (Demo) - YouTube]
* [https://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-vertex-ai-search Grounding with Vertex AI Search  |  Generative AI on Vertex AI  |  Google Cloud]


== References ==
== References ==

Navigation menu