def validate_cypher_query(self, query: str) -> bool: """Validate Cypher query syntax using LLM and regex patterns.""" VALIDATION_PROMPT = PromptTemplate( input_variables=["query"], template=""" Validate this Cypher query and return TRUE or FALSE: Query: {query} Rules to check: 1. Valid CREATE statements 2. Proper property formatting 3. Valid relationship syntax 4. No missing parentheses 5. Valid property names 6. Valid relationship types Return only TRUE if query is valid, FALSE if invalid. """56 ) try: # Basic pattern validation basic_valid = all(re.search(pattern, query) for pattern in [ r'CREATE (', r'{.*?}', r')-[:.*?]->' ]) if not basic_valid: return False # LLM validation validation_chain = VALIDATION_PROMPT | self.llm result = validation_chain.invoke({"query": query}) # Parse result is_valid = "TRUE" in result.upper() if not is_valid: self.logger.warning(f"LLM validation failed for query: {query}") return is_valid except Exception as e: self.logger.error(f"Validation error: {e}") return False