SQL Query Engine#

Default query for SQLStructStoreIndex.

class llama_index.core.indices.struct_store.sql_query.BaseSQLTableQueryEngine(llm: Optional[LLM] = None, synthesize_response: bool = True, response_synthesis_prompt: Optional[BasePromptTemplate] = None, callback_manager: Optional[CallbackManager] = None, refine_synthesis_prompt: Optional[BasePromptTemplate] = None, verbose: bool = False, service_context: Optional[ServiceContext] = None, **kwargs: Any)#
as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

property service_context: Optional[ServiceContext]#

Get service context.

abstract property sql_retriever: NLSQLRetriever#

Get SQL retriever.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.

llama_index.core.indices.struct_store.sql_query.GPTNLStructStoreQueryEngine#

alias of NLStructStoreQueryEngine

llama_index.core.indices.struct_store.sql_query.GPTSQLStructStoreQueryEngine#

alias of SQLStructStoreQueryEngine

class llama_index.core.indices.struct_store.sql_query.NLSQLTableQueryEngine(sql_database: SQLDatabase, llm: Optional[LLM] = None, text_to_sql_prompt: Optional[BasePromptTemplate] = None, context_query_kwargs: Optional[dict] = None, synthesize_response: bool = True, response_synthesis_prompt: Optional[BasePromptTemplate] = None, refine_synthesis_prompt: Optional[BasePromptTemplate] = None, tables: Optional[Union[List[str], List[Table]]] = None, service_context: Optional[ServiceContext] = None, context_str_prefix: Optional[str] = None, sql_only: bool = False, callback_manager: Optional[CallbackManager] = None, verbose: bool = False, **kwargs: Any)#

Natural language SQL Table query engine.

Read NLStructStoreQueryEngine’s docstring for more info on NL SQL.

as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

property service_context: Optional[ServiceContext]#

Get service context.

property sql_retriever: NLSQLRetriever#

Get SQL retriever.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.

class llama_index.core.indices.struct_store.sql_query.NLStructStoreQueryEngine(index: SQLStructStoreIndex, text_to_sql_prompt: Optional[BasePromptTemplate] = None, context_query_kwargs: Optional[dict] = None, synthesize_response: bool = True, response_synthesis_prompt: Optional[BasePromptTemplate] = None, sql_only: bool = False, **kwargs: Any)#

GPT natural language query engine over a structured database.

NOTE: deprecated in favor of SQLTableRetriever, kept for backward compatibility.

Given a natural language query, we will extract the query to SQL. Runs raw SQL over a SQLStructStoreIndex. No LLM calls are made during the SQL execution.

NOTE: this query cannot work with composed indices - if the index contains subindices, those subindices will not be queried.

Parameters
  • index (SQLStructStoreIndex) – A SQL Struct Store Index

  • text_to_sql_prompt (Optional[BasePromptTemplate]) – A Text to SQL BasePromptTemplate to use for the query. Defaults to DEFAULT_TEXT_TO_SQL_PROMPT.

  • context_query_kwargs (Optional[dict]) – Keyword arguments for the context query. Defaults to {}.

  • synthesize_response (bool) – Whether to synthesize a response from the query results. Defaults to True.

  • sql_only (bool) – Whether to get only sql and not the sql query result. Default to False.

  • response_synthesis_prompt (Optional[BasePromptTemplate]) – A Response Synthesis BasePromptTemplate to use for the query. Defaults to DEFAULT_RESPONSE_SYNTHESIS_PROMPT.

as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

property service_context: Optional[ServiceContext]#

Get service context.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.

class llama_index.core.indices.struct_store.sql_query.PGVectorSQLQueryEngine(sql_database: SQLDatabase, llm: Optional[LLM] = None, text_to_sql_prompt: Optional[BasePromptTemplate] = None, context_query_kwargs: Optional[dict] = None, synthesize_response: bool = True, response_synthesis_prompt: Optional[BasePromptTemplate] = None, refine_synthesis_prompt: Optional[BasePromptTemplate] = None, tables: Optional[Union[List[str], List[Table]]] = None, service_context: Optional[ServiceContext] = None, context_str_prefix: Optional[str] = None, sql_only: bool = False, callback_manager: Optional[CallbackManager] = None, **kwargs: Any)#

PGvector SQL query engine.

A modified version of the normal text-to-SQL query engine because we can infer embedding vectors in the sql query.

NOTE: this is a beta feature

as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

property service_context: Optional[ServiceContext]#

Get service context.

property sql_retriever: NLSQLRetriever#

Get SQL retriever.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.

class llama_index.core.indices.struct_store.sql_query.SQLStructStoreQueryEngine(index: SQLStructStoreIndex, sql_context_container: Optional[SQLContextContainerBuilder] = None, sql_only: bool = False, **kwargs: Any)#

GPT SQL query engine over a structured database.

NOTE: deprecated in favor of SQLTableRetriever, kept for backward compatibility.

Runs raw SQL over a SQLStructStoreIndex. No LLM calls are made here. NOTE: this query cannot work with composed indices - if the index contains subindices, those subindices will not be queried.

as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.

class llama_index.core.indices.struct_store.sql_query.SQLTableRetrieverQueryEngine(sql_database: SQLDatabase, table_retriever: ObjectRetriever[SQLTableSchema], llm: Optional[LLM] = None, text_to_sql_prompt: Optional[BasePromptTemplate] = None, context_query_kwargs: Optional[dict] = None, synthesize_response: bool = True, response_synthesis_prompt: Optional[BasePromptTemplate] = None, refine_synthesis_prompt: Optional[BasePromptTemplate] = None, service_context: Optional[ServiceContext] = None, context_str_prefix: Optional[str] = None, sql_only: bool = False, callback_manager: Optional[CallbackManager] = None, **kwargs: Any)#

SQL Table retriever query engine.

as_query_component(partial: Optional[Dict[str, Any]] = None, **kwargs: Any) QueryComponent#

Get query component.

get_prompts() Dict[str, BasePromptTemplate]#

Get a prompt.

property service_context: Optional[ServiceContext]#

Get service context.

property sql_retriever: NLSQLRetriever#

Get SQL retriever.

update_prompts(prompts_dict: Dict[str, BasePromptTemplate]) None#

Update prompts.

Other prompts will remain in place.