Skip to content

Remove retriever.Corpus class in favor of retriever_types.Corpus class. #185

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 31, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 22 additions & 32 deletions google/generativeai/retriever.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,15 @@
_PATTERN = r"[{}]".format(_REMOVE) # Create the pattern


@string_utils.prettyprint
@dataclasses.dataclass(init=False)
class Corpus(retriever_types.Corpus):
def __init__(self, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)

self.result = None
if self.name:
self.result = self.name


def create_corpus(
name: Optional[str] = None,
display_name: Optional[str] = None,
client: glm.RetrieverServiceClient | None = None,
) -> Corpus:
) -> retriever_types.Corpus:
"""
Create a Corpus object. Users can specify either a name or display_name.
Create a new `Corpus` in the retriever service, and return it as a `retriever_types.Corpus` instance.

Users can specify either a name or display_name.

Args:
name: The corpus resource name (ID). The name must be alphanumeric and fewer
Expand All @@ -64,7 +54,7 @@ def create_corpus(
dashes are supported.

Return:
Corpus object with specified name or display name.
`retriever_types.Corpus` object with specified name or display name.

Raises:
ValueError: When the name is not specified or formatted incorrectly.
Expand All @@ -90,16 +80,16 @@ def create_corpus(
response = type(response).to_dict(response)
idecode_time(response, "create_time")
idecode_time(response, "update_time")
response = Corpus(**response)
response = retriever_types.Corpus(**response)
return response


async def create_corpus_async(
name: Optional[str] = None,
display_name: Optional[str] = None,
client: glm.RetrieverServiceAsyncClient | None = None,
) -> Corpus:
"""This is the async version of `create_corpus`."""
) -> retriever_types.Corpus:
"""This is the async version of `retriever.create_corpus`."""
if client is None:
client = get_default_retriever_async_client()

Expand All @@ -121,19 +111,19 @@ async def create_corpus_async(
response = type(response).to_dict(response)
idecode_time(response, "create_time")
idecode_time(response, "update_time")
response = Corpus(**response)
response = retriever_types.Corpus(**response)
return response


def get_corpus(name: str, client: glm.RetrieverServiceClient | None = None) -> Corpus: # fmt: skip
def get_corpus(name: str, client: glm.RetrieverServiceClient | None = None) -> retriever_types.Corpus: # fmt: skip
"""
Get information about a specific `Corpus`.
Fetch a specific `Corpus` from the retriever service.

Args:
name: The `Corpus` name.

Return:
`Corpus` of interest.
a `retriever_types.Corpus` of interest.
"""
if client is None:
client = get_default_retriever_client()
Expand All @@ -143,12 +133,12 @@ def get_corpus(name: str, client: glm.RetrieverServiceClient | None = None) -> C
response = type(response).to_dict(response)
idecode_time(response, "create_time")
idecode_time(response, "update_time")
response = Corpus(**response)
response = retriever_types.Corpus(**response)
return response


async def get_corpus_async(name: str, client: glm.RetrieverServiceAsyncClient | None = None) -> Corpus: # fmt: skip
"""This is the async version of `get_corpus`."""
async def get_corpus_async(name: str, client: glm.RetrieverServiceAsyncClient | None = None) -> retriever_types.Corpus: # fmt: skip
"""This is the async version of `retriever.get_corpus`."""
if client is None:
client = get_default_retriever_async_client()

Expand All @@ -157,13 +147,13 @@ async def get_corpus_async(name: str, client: glm.RetrieverServiceAsyncClient |
response = type(response).to_dict(response)
idecode_time(response, "create_time")
idecode_time(response, "update_time")
response = Corpus(**response)
response = retriever_types.Corpus(**response)
return response


def delete_corpus(name: str, force: bool, client: glm.RetrieverServiceClient | None = None): # fmt: skip
"""
Delete a `Corpus`.
Delete a `Corpus` from the service.

Args:
name: The `Corpus` name.
Expand All @@ -177,7 +167,7 @@ def delete_corpus(name: str, force: bool, client: glm.RetrieverServiceClient | N


async def delete_corpus_async(name: str, force: bool, client: glm.RetrieverServiceAsyncClient | None = None): # fmt: skip
"""This is the async version of `delete_corpus`."""
"""This is the async version of `retriever.delete_corpus`."""
if client is None:
client = get_default_retriever_async_client()

Expand All @@ -190,9 +180,9 @@ def list_corpora(
page_size: Optional[int] = None,
page_token: Optional[str] = None,
client: glm.RetrieverServiceClient | None = None,
) -> list[Corpus]:
) -> list[retriever_types.Corpus]:
"""
List `Corpus`.
List the Corpuses you own in the service.

Args:
page_size: Maximum number of `Corpora` to request.
Expand All @@ -214,8 +204,8 @@ async def list_corpora_async(
page_size: Optional[int] = None,
page_token: Optional[str] = None,
client: glm.RetrieverServiceClient | None = None,
) -> list[Corpus]:
"""This is the async version of `list_corpora`."""
) -> list[retriever_types.Corpus]:
"""This is the async version of `retriever.list_corpora`."""
if client is None:
client = get_default_retriever_async_client()

Expand Down