Spaces:
Running
Running
from typing import Dict, Any, List | |
from langchain_experimental.sql.vector_sql import VectorSQLOutputParser | |
class VectorSQLRetrieveOutputParser(VectorSQLOutputParser): | |
"""Based on VectorSQLOutputParser | |
It also modify the SQL to get all columns | |
""" | |
must_have_columns: List[str] | |
def _type(self) -> str: | |
return "vector_sql_retrieve_custom" | |
def parse(self, text: str) -> Dict[str, Any]: | |
text = text.strip() | |
start = text.upper().find("SELECT") | |
if start >= 0: | |
end = text.upper().find("FROM") | |
text = text.replace( | |
text[start + len("SELECT") + 1: end - 1], ", ".join(self.must_have_columns)) | |
return super().parse(text) | |