@@ -29,24 +29,20 @@ def get_dataset_id_from_iri(dataset_iri: str) -> str:
2929 "https://text2sparql.aksw.org/2025/corporate/" : os .getenv ("CORPORATE_URL" , "http://virtuoso-corporate:8890/sparql" ),
3030}
3131
32- MODEL = "openrouter/openai/gpt-oss-120b"
33- DOCKER_ENDPOINT_URL = "http://text2sparql-virtuoso:8890/sparql/"
34- DOCKER_VECTORDB_URL = "http://vectordb:6334"
35- ENDPOINT_URL = "http://localhost:8890/sparql/"
36-
37- # def normalize_docker_to_localhost(url: str) -> str:
38-
32+ MODEL = os .getenv ("BENCH_MODEL" , "openrouter/openai/gpt-oss-120b" )
3933
4034SCHEMAS = {}
4135for dataset_iri in DATASETS_ENDPOINTS .keys ():
42- with open (
43- os .path .join ("/" , "data" , f"{ get_dataset_id_from_iri (dataset_iri )} _schema.json" ),
44- encoding = "utf-8" ,
45- ) as f :
46- SCHEMAS [dataset_iri ] = json .load (f )
47- # SCHEMAS[dataset][DOCKER_ENDPOINT_URL] = SCHEMAS[dataset].pop(ENDPOINT_URL)
48- # docker_url =
49- SCHEMAS [dataset_iri ][DOCKER_ENDPOINT_URL ] = SCHEMAS [dataset_iri ].pop (ENDPOINT_URL )
36+ try :
37+ with open (
38+ os .path .join ("/" , "data" , f"{ get_dataset_id_from_iri (dataset_iri )} _schema.json" ),
39+ encoding = "utf-8" ,
40+ ) as f :
41+ SCHEMAS [dataset_iri ] = json .load (f )
42+ except FileNotFoundError :
43+ print (
44+ f"Schema file for dataset { dataset_iri } not found. Please run the indexing script to generate the schema files."
45+ )
5046
5147RAG_PROMPT = """
5248
@@ -103,10 +99,11 @@ def get_dataset_id_from_iri(dataset_iri: str) -> str:
10399async def get_answer (question : str , dataset : str ):
104100 if dataset not in DATASETS_ENDPOINTS :
105101 raise fastapi .HTTPException (404 , "Unknown dataset ..." )
102+ endpoint_url = DATASETS_ENDPOINTS [dataset ]
106103 # Retrieve relevant queries
107104 question_embeddings = next (iter (embedding_model .embed ([question ])))
108105 retrieved_queries = vectordb .query_points (
109- collection_name = f"text2sparql-{ dataset . split ( '/' )[ - 2 ] } " ,
106+ collection_name = f"text2sparql-{ get_dataset_id_from_iri ( dataset ) } " ,
110107 query = question_embeddings ,
111108 limit = settings .default_number_of_retrieved_docs ,
112109 query_filter = Filter (
@@ -121,7 +118,7 @@ async def get_answer(question: str, dataset: str):
121118
122119 # Retrieve relevant classes
123120 retrieved_classes = vectordb .query_points (
124- collection_name = f"text2sparql-{ dataset . split ( '/' )[ - 2 ] } " ,
121+ collection_name = f"text2sparql-{ get_dataset_id_from_iri ( dataset ) } " ,
125122 query = question_embeddings ,
126123 limit = settings .default_number_of_retrieved_docs ,
127124 query_filter = Filter (
@@ -163,14 +160,13 @@ async def get_answer(question: str, dataset: str):
163160 chat_resp_md = response .model_dump ()["content" ]
164161 generated_sparqls = extract_sparql_queries (chat_resp_md )
165162 generated_sparql = generated_sparqls [- 1 ]["query" ].strip ()
166- generated_sparql = generated_sparql .replace (ENDPOINT_URL , DOCKER_ENDPOINT_URL )
167163 # print(f"Generated SPARQL query: {generated_sparql}")
168164 # print(f"Response message: {resp_msg}")
169165 except Exception :
170166 resp_msg += "## No SPARQL query could be extracted from the model response. Please provide a valid SPARQL query based on the provided information and try again.\n "
171167 if generated_sparql != "" :
172168 try :
173- res = query_sparql (generated_sparql , DOCKER_ENDPOINT_URL )
169+ res = query_sparql (generated_sparql , endpoint_url )
174170 if res .get ("results" , {}).get ("bindings" ):
175171 # Successfully generated a query with results
176172 if num_of_tries > 0 :
@@ -183,7 +179,7 @@ async def get_answer(question: str, dataset: str):
183179
184180 except Exception as e :
185181 validation_output = validate_sparql (
186- query = generated_sparql , endpoint_url = DOCKER_ENDPOINT_URL , endpoints_void_dict = SCHEMAS [dataset ]
182+ query = generated_sparql , endpoint_url = endpoint_url , endpoints_void_dict = SCHEMAS [dataset ]
187183 )
188184 if validation_output ["errors" ]:
189185 error_str = "- " + "\n - " .join (validation_output ["errors" ])
0 commit comments