Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit bcec1b5

Browse files
Match docs (#197)
* Make naming corpus and document also optional. * Update logic to naming conditions * reformat * Update to add document_name variable * Update to add corpus_name variable * Updated CustomMetadata * Updated CustomMetadata notation * Updating time fields on chunk object * Testing time fields on chunk * Try making times optional params * none otpion to time * Updated batch create chunks, updated time format for list corpora * Reformat * Can accept full name or partial name in get and delete methods * Updated functionality of update methods * Added tests for additional changes * Add custom metadata handling for document * These should be ints. --------- Co-authored-by: Mark Daoust <[email protected]>
1 parent 0ed5bbe commit bcec1b5

File tree

3 files changed

+269
-49
lines changed

3 files changed

+269
-49
lines changed

google/generativeai/retriever.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929

3030
def create_corpus(
31-
name: str,
31+
name: Optional[str] = None,
3232
display_name: Optional[str] = None,
3333
client: glm.RetrieverServiceClient | None = None,
3434
) -> retriever_types.Corpus:
@@ -53,8 +53,10 @@ def create_corpus(
5353
if client is None:
5454
client = get_default_retriever_client()
5555

56-
corpus = None
57-
if retriever_types.valid_name(name):
56+
corpus, corpus_name = None, None
57+
if name is None:
58+
corpus = glm.Corpus(name=corpus_name, display_name=display_name)
59+
elif retriever_types.valid_name(name):
5860
corpus_name = "corpora/" + name # Construct the name
5961
corpus = glm.Corpus(name=corpus_name, display_name=display_name)
6062
else:
@@ -70,16 +72,18 @@ def create_corpus(
7072

7173

7274
async def create_corpus_async(
73-
name: str,
75+
name: Optional[str] = None,
7476
display_name: Optional[str] = None,
7577
client: glm.RetrieverServiceAsyncClient | None = None,
7678
) -> retriever_types.Corpus:
7779
"""This is the async version of `retriever.create_corpus`."""
7880
if client is None:
7981
client = get_default_retriever_async_client()
8082

81-
corpus = None
82-
if retriever_types.valid_name(name):
83+
corpus, corpus_name = None, None
84+
if name is None:
85+
corpus = glm.Corpus(name=corpus_name, display_name=display_name)
86+
elif retriever_types.valid_name(name):
8387
corpus_name = "corpora/" + name # Construct the name
8488
corpus = glm.Corpus(name=corpus_name, display_name=display_name)
8589
else:
@@ -107,6 +111,9 @@ def get_corpus(name: str, client: glm.RetrieverServiceClient | None = None) -> r
107111
if client is None:
108112
client = get_default_retriever_client()
109113

114+
if "/" not in name:
115+
name = "corpora/" + name
116+
110117
request = glm.GetCorpusRequest(name=name)
111118
response = client.get_corpus(request)
112119
response = type(response).to_dict(response)
@@ -121,6 +128,9 @@ async def get_corpus_async(name: str, client: glm.RetrieverServiceAsyncClient |
121128
if client is None:
122129
client = get_default_retriever_async_client()
123130

131+
if "/" not in name:
132+
name = "corpora/" + name
133+
124134
request = glm.GetCorpusRequest(name=name)
125135
response = await client.get_corpus(request)
126136
response = type(response).to_dict(response)
@@ -141,6 +151,9 @@ def delete_corpus(name: str, force: bool = False, client: glm.RetrieverServiceCl
141151
if client is None:
142152
client = get_default_retriever_client()
143153

154+
if "/" not in name:
155+
name = "corpora/" + name
156+
144157
request = glm.DeleteCorpusRequest(name=name, force=force)
145158
client.delete_corpus(request)
146159

@@ -150,6 +163,9 @@ async def delete_corpus_async(name: str, force: bool = False, client: glm.Retrie
150163
if client is None:
151164
client = get_default_retriever_async_client()
152165

166+
if "/" not in name:
167+
name = "corpora/" + name
168+
153169
request = glm.DeleteCorpusRequest(name=name, force=force)
154170
await client.delete_corpus(request)
155171

@@ -175,6 +191,8 @@ def list_corpora(
175191
request = glm.ListCorporaRequest(page_size=page_size)
176192
for corpus in client.list_corpora(request):
177193
corpus = type(corpus).to_dict(corpus)
194+
idecode_time(corpus, "create_time")
195+
idecode_time(corpus, "update_time")
178196
yield retriever_types.Corpus(**corpus)
179197

180198

@@ -190,4 +208,6 @@ async def list_corpora_async(
190208
request = glm.ListCorporaRequest(page_size=page_size)
191209
async for corpus in await client.list_corpora(request):
192210
corpus = type(corpus).to_dict(corpus)
211+
idecode_time(corpus, "create_time")
212+
idecode_time(corpus, "update_time")
193213
yield retriever_types.Corpus(**corpus)

0 commit comments

Comments
 (0)