15,076
edits
m (→Related Pages) |
(Troubleshooting: Vertex AI Discovery Engine: Search Returns No Results) |
||
| (13 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
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 | {{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 | # 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 == | ||