Spaces:
Runtime error
Runtime error
"""Subclasses from base prompt.""" | |
from typing import List | |
from gpt_index.prompts.base import Prompt | |
from gpt_index.prompts.prompt_type import PromptType | |
class SummaryPrompt(Prompt): | |
"""Summary prompt. | |
Prompt to summarize the provided `context_str`. | |
Required template variables: `context_str` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.SUMMARY | |
input_variables: List[str] = ["context_str"] | |
class TreeInsertPrompt(Prompt): | |
"""Tree Insert prompt. | |
Prompt to insert a new chunk of text `new_chunk_text` into the tree index. | |
More specifically, this prompt has the LLM select the relevant candidate | |
child node to continue tree traversal. | |
Required template variables: `num_chunks`, `context_list`, `new_chunk_text` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.TREE_INSERT | |
input_variables: List[str] = ["num_chunks", "context_list", "new_chunk_text"] | |
class TreeSelectPrompt(Prompt): | |
"""Tree select prompt. | |
Prompt to select a candidate child node out of all child nodes | |
provided in `context_list`, given a query `query_str`. `num_chunks` is | |
the number of child nodes in `context_list`. | |
Required template variables: `num_chunks`, `context_list`, `query_str` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.TREE_SELECT | |
input_variables: List[str] = ["num_chunks", "context_list", "query_str"] | |
class TreeSelectMultiplePrompt(Prompt): | |
"""Tree select multiple prompt. | |
Prompt to select multiple candidate child nodes out of all | |
child nodes provided in `context_list`, given a query `query_str`. | |
`branching_factor` refers to the number of child nodes to select, and | |
`num_chunks` is the number of child nodes in `context_list`. | |
Required template variables: `num_chunks`, `context_list`, `query_str`, | |
`branching_factor` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type = PromptType.TREE_SELECT_MULTIPLE | |
input_variables: List[str] = [ | |
"num_chunks", | |
"context_list", | |
"query_str", | |
"branching_factor", | |
] | |
class RefinePrompt(Prompt): | |
"""Refine prompt. | |
Prompt to refine an existing answer `existing_answer` given a context `context_msg`, | |
and a query `query_str`. | |
Required template variables: `query_str`, `existing_answer`, `context_msg` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
# TODO: rename context_msg to context_str | |
prompt_type: PromptType = PromptType.REFINE | |
input_variables: List[str] = ["query_str", "existing_answer", "context_msg"] | |
class QuestionAnswerPrompt(Prompt): | |
"""Question Answer prompt. | |
Prompt to answer a question `query_str` given a context `context_str`. | |
Required template variables: `context_str`, `query_str` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.QUESTION_ANSWER | |
input_variables: List[str] = ["context_str", "query_str"] | |
class KeywordExtractPrompt(Prompt): | |
"""Keyword extract prompt. | |
Prompt to extract keywords from a text `text` with a maximum of | |
`max_keywords` keywords. | |
Required template variables: `text`, `max_keywords` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.KEYWORD_EXTRACT | |
input_variables: List[str] = ["text", "max_keywords"] | |
class QueryKeywordExtractPrompt(Prompt): | |
"""Query keyword extract prompt. | |
Prompt to extract keywords from a query `query_str` with a maximum | |
of `max_keywords` keywords. | |
Required template variables: `query_str`, `max_keywords` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.QUERY_KEYWORD_EXTRACT | |
input_variables: List[str] = ["question", "max_keywords"] | |
class SchemaExtractPrompt(Prompt): | |
"""Schema extract prompt. | |
Prompt to extract schema from unstructured text `text`. | |
Required template variables: `text`, `schema` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.SCHEMA_EXTRACT | |
input_variables: List[str] = ["text", "schema"] | |
class TextToSQLPrompt(Prompt): | |
"""Text to SQL prompt. | |
Prompt to translate a natural language query into SQL, | |
given a schema `schema`. | |
Required template variables: `query_str`, `schema` | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.TEXT_TO_SQL | |
input_variables: List[str] = ["query_str", "schema"] | |
class TableContextPrompt(Prompt): | |
"""Table context prompt. | |
Prompt to generate a table context given a table schema `schema`, | |
as well as unstructured text context `context_str`, and | |
a task `query_str`. | |
This includes both a high-level description of the table | |
as well as a description of each column in the table. | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.TABLE_CONTEXT | |
input_variables: List[str] = ["schema", "context_str", "query_str"] | |
class RefineTableContextPrompt(Prompt): | |
"""Refine Table context prompt. | |
Prompt to refine a table context given a table schema `schema`, | |
as well as unstructured text context `context_msg`, and | |
a task `query_str`. | |
This includes both a high-level description of the table | |
as well as a description of each column in the table. | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
# TODO: rename context_msg to context_str | |
prompt_type: PromptType = PromptType.TABLE_CONTEXT | |
input_variables: List[str] = [ | |
"schema", | |
"context_msg", | |
"query_str", | |
"existing_answer", | |
] | |
class KnowledgeGraphPrompt(Prompt): | |
"""Define the knowledge graph triplet extraction prompt.""" | |
prompt_type: PromptType = PromptType.KNOWLEDGE_TRIPLET_EXTRACT | |
input_variables: List[str] = ["max_knowledge_triplets", "text"] | |
class SimpleInputPrompt(Prompt): | |
"""Simple Input prompt. | |
Required template variables: `query_str`. | |
Args: | |
template (str): Template for the prompt. | |
**prompt_kwargs: Keyword arguments for the prompt. | |
""" | |
prompt_type: PromptType = PromptType.SIMPLE_INPUT | |
input_variables: List[str] = ["query_str"] | |