def retrieve_atom_info_through_atom(
        self, queries: Union[List[str], str], retrieve_id: str="", **kwargs,
    ) -> List[AtomRetrievalInfo]:
        """Retrieve the relevant atom and its source chunk by the given atom queries.

        Args:
            atom_queries (Union[List[str], str]): A list of queries that would be used to query the `_atom_store`.
            retrieve_id (str): id to identifying the query, could be used in logging.

        Returns:
            List[AtomRetrievalInfo]: The retrieved atom information would be returned together with its corresponding
                source chunk information.
        """
        # Decide which retrieve_k to use.
        if "retrieve_k" in kwargs:
            retrieve_k: int = kwargs["retrieve_k"]
        elif isinstance(queries, list) and len(queries) > 1:
            retrieve_k: int = self.atom_retrieve_k
        else:
            retrieve_k: int = self.retrieve_k

        # Wrap atom_queries into a list if only one element given.
        if isinstance(queries, str):
            queries = [queries]

        # Query `_atom_store` to get relevant atom information.
        query_atom_score_tuples: List[Tuple[str, Document, float]] = []
        for atom_query in queries:
            for atom_doc, score in self._get_doc_with_query(atom_query, self._atom_store, retrieve_k):
                query_atom_score_tuples.append((atom_query, atom_doc, score))

        # Wrap to predefined dataclass.
        return self._atom_info_tuple_to_class(query_atom_score_tuples)
Retrieve the relevant atom and its source chunk by the given atom queries.

        Args:
            atom_queries (Union[List[str], str]): A list of queries that would be used to query the `_atom_store`.
            retrieve_id (str): id to identifying the query, could be used in logging.

        Returns:
            List[AtomRetrievalInfo]: The retrieved atom information would be returned together with its corresponding
                source chunk information.
        
pikerag/knowledge_retrievers/chunk_atom_retriever.py