Spaces:
Runtime error
Runtime error
File size: 1,640 Bytes
8a58cf3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
"""Retrieve query."""
import logging
from typing import List, Optional
from gpt_index.data_structs.data_structs import IndexGraph, Node
from gpt_index.indices.query.base import BaseGPTIndexQuery
from gpt_index.indices.query.embedding_utils import SimilarityTracker
from gpt_index.indices.query.schema import QueryBundle
from gpt_index.indices.utils import get_sorted_node_list
class GPTTreeIndexRetQuery(BaseGPTIndexQuery[IndexGraph]):
"""GPT Tree Index retrieve query.
This class directly retrieves the answer from the root nodes.
Unlike GPTTreeIndexLeafQuery, this class assumes the graph already stores
the answer (because it was constructed with a query_str), so it does not
attempt to parse information down the graph in order to synthesize an answer.
.. code-block:: python
response = index.query("<query_str>", mode="retrieve")
Args:
text_qa_template (Optional[QuestionAnswerPrompt]): Question-Answer Prompt
(see :ref:`Prompt-Templates`).
"""
def _get_nodes_for_response(
self,
query_bundle: QueryBundle,
similarity_tracker: Optional[SimilarityTracker] = None,
) -> List[Node]:
"""Get nodes for response."""
logging.info(f"> Starting query: {query_bundle.query_str}")
node_list = get_sorted_node_list(self.index_struct.root_nodes)
text_qa_template = self.text_qa_template.partial_format(
query_str=query_bundle.query_str
)
node_text = self._prompt_helper.get_text_from_nodes(
node_list, prompt=text_qa_template
)
return [Node(text=node_text)]
|