@@ -71,6 +71,12 @@ class VerifyGqlOutput(BaseModel):
7171INTERMEDIATE_STEPS_KEY = "intermediate_steps"
7272
7373
74+ class InvalidGQLGenerationError (ValueError ):
75+ def __init__ (self , message , intermediate_steps = None ):
76+ self .intermediate_steps = intermediate_steps
77+ super ().__init__ (message )
78+
79+
7480class SpannerGraphQAChain (Chain ):
7581 """Chain for question-answering against a Spanner Graph database by
7682 generating GQL statements from natural language questions.
@@ -268,7 +274,9 @@ def execute_with_retry(
268274 finally :
269275 retries += 1
270276
271- raise ValueError ("The generated gql query is invalid" )
277+ raise InvalidGQLGenerationError (
278+ "The generated gql query is invalid" , intermediate_steps
279+ )
272280
273281 def log_invalid_query (
274282 self ,
@@ -323,7 +331,9 @@ def _call(
323331 _run_manager , intermediate_steps , question , verified_gql
324332 )
325333 if not final_gql :
326- raise ValueError ("No GQL was generated." )
334+ raise InvalidGQLGenerationError (
335+ "No GQL was generated." , intermediate_steps
336+ )
327337 _run_manager .on_text ("Full Context:" , end = "\n " , verbose = self .verbose )
328338 _run_manager .on_text (
329339 str (context ), color = "green" , end = "\n " , verbose = self .verbose
0 commit comments