Skip to content

Commit

Permalink
community[patch]: Implement lazy_load() for CubeSemanticLoader (langc…
Browse files Browse the repository at this point in the history
…hain-ai#18535)

Covered by `test_cube_semantic.py`
  • Loading branch information
cbornet authored and thebhulawat committed Mar 6, 2024
1 parent a7e2cde commit cede909
Showing 1 changed file with 3 additions and 7 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import json
import logging
import time
from typing import List
from typing import Iterator, List

import requests
from langchain_core.documents import Document
Expand Down Expand Up @@ -99,7 +99,7 @@ def _get_dimension_values(self, dimension_name: str) -> List[str]:
logger.info("Maximum retries reached.")
return []

def load(self) -> List[Document]:
def lazy_load(self) -> Iterator[Document]:
"""Makes a call to Cube's REST API metadata endpoint.
Returns:
Expand Down Expand Up @@ -131,8 +131,6 @@ def load(self) -> List[Document]:
if not cube_data_objects:
raise ValueError("No cubes found in metadata.")

docs = []

for cube_data_obj in cube_data_objects:
cube_data_obj_name = cube_data_obj.get("name")
cube_data_obj_type = cube_data_obj.get("type")
Expand Down Expand Up @@ -173,6 +171,4 @@ def load(self) -> List[Document]:
page_content = f"{str(item.get('title'))}, "
page_content += f"{str(item.get('description'))}"

docs.append(Document(page_content=page_content, metadata=metadata))

return docs
yield Document(page_content=page_content, metadata=metadata)

0 comments on commit cede909

Please sign in to comment.