@@ -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 ,
@@ -322,7 +330,9 @@ def _call(
322330 _run_manager , intermediate_steps , question , verified_gql
323331 )
324332 if not final_gql :
325- raise ValueError ("No GQL was generated." )
333+ raise InvalidGQLGenerationError (
334+ "No GQL was generated." , intermediate_steps
335+ )
326336 _run_manager .on_text ("Full Context:" , end = "\n " , verbose = self .verbose )
327337 _run_manager .on_text (
328338 str (context ), color = "green" , end = "\n " , verbose = self .verbose
0 commit comments