movie_search_metadata/demo_app/backend/search_document.py (30 lines of code) (raw):
import os
from google.cloud import discoveryengine_v1alpha as discoveryengine
from google.api_core.client_options import ClientOptions
from google import auth
# global variables
from utils import PROJECT_ID, DATASTORE_ID, LOCATION
def search_documents_by_query(query: str, show_summary: bool = True) -> discoveryengine.SearchResponse:
client = discoveryengine.SearchServiceClient(
client_options=ClientOptions(api_endpoint=f'{LOCATION}-discoveryengine.googleapis.com')
)
request = discoveryengine.SearchRequest(
serving_config=client.serving_config_path(
project=PROJECT_ID,
location=LOCATION,
data_store=DATASTORE_ID,
serving_config='default_search:search',
),
content_search_spec=discoveryengine.SearchRequest.ContentSearchSpec(
search_result_mode='DOCUMENTS',
summary_spec=discoveryengine.SearchRequest.ContentSearchSpec.SummarySpec(
summary_result_count=3,
include_citations=True,
model_spec=discoveryengine.SearchRequest.ContentSearchSpec.SummarySpec.ModelSpec(
version='stable'
)
),
),
query=query,
)
response = client.search(request)
return response