import gradio as gr from gradio_client import Client def retrieve_paragraphs(query:str, country:dict): """Connect to retriever and retrieve paragraphs, the collection param is fixed in qdrant-client call within code. Params ---------- query: the query input by user country: collection 'EUDR' can filter the results based on country field. Past the values of country as str (single) or list Returns ----------- Returns the top 10 retrieved>reranked results list of dict [{'answer':.....,'answer_metadata': {.....}}] """ try: # Metadata selection # Call the API with the uploaded file client = Client("https://giz-chatfed-retriever0-3.hf.space/") # Only create filter_metadata if country has a value filter_metadata = {'country': country} if country is not None else None result = client.predict( query=query, collection_name= "EUDR", filter_metadata = filter_metadata, api_name="/retrieve" ) return result except Exception as e: error_msg = f"Error retrieving paragraphs: {str(e)}" return ( error_msg, gr.update(visible=True), # upload_status gr.update(visible=False) # results_table )