GeminiStoreGateway
class GeminiStoreGateway implements StoreGateway
Traits
Methods
Create an HTTP client with the provider's request options.
Select a boot-registered connection without retaining dynamic provider names.
Encode the given provider resource ID as a single URL path segment.
Execute a callback with failoverable error handling.
Get the short Retry-After delay of a rate limited or overloaded response, if it has one.
Determine if the response is a 402, or a 429 insufficient credits or quota error rather than a rate limit.
Get the status codes that indicate a provider is transiently unavailable and the request should fail over.
Get the patterns used to detect insufficient credits or quota errors.
Get the error codes or types that indicate insufficient credits or quota on a 429 response.
Create a new vector store.
Add a file to a vector store.
Wait for a Gemini file import operation to complete.
Format metadata for Gemini's custom_metadata format.
Remove a file from a vector store.
Normalize the store ID to include the resource prefix.
Normalize the file ID to include the resource prefix.
Normalize the document ID to include the full resource path.
Details
in
CreatesClient at line 21
protected PendingRequest
createClient(string $baseUrl, array $headers = [], array $configuredHeaders = [], int|null $timeout = 60, bool $throw = true)
Create an HTTP client with the provider's request options.
in
CreatesClient at line 43
protected string
httpConnection(Provider $provider)
Select a boot-registered connection without retaining dynamic provider names.
in
EncodesResourceIds at line 16
protected string
resourceId(string $id)
Encode the given provider resource ID as a single URL path segment.
in
HandlesFailoverErrors at line 26
protected mixed
withErrorHandling(string $providerName, Closure $callback)
Execute a callback with failoverable error handling.
in
HandlesFailoverErrors at line 91
protected int|null
retryAfterSeconds(Throwable $exception)
Get the short Retry-After delay of a rate limited or overloaded response, if it has one.
in
HandlesFailoverErrors at line 115
protected bool
isInsufficientCredits(RequestException $exception)
Determine if the response is a 402, or a 429 insufficient credits or quota error rather than a rate limit.
in
HandlesFailoverErrors at line 138
protected array
overloadedStatusCodes()
Get the status codes that indicate a provider is transiently unavailable and the request should fail over.
in
HandlesFailoverErrors at line 148
protected array
insufficientCreditPatterns()
Get the patterns used to detect insufficient credits or quota errors.
in
HandlesFailoverErrors at line 158
protected array
insufficientCreditCodes()
Get the error codes or types that indicate insufficient credits or quota on a 429 response.
at line 34
Store
getStore(StoreProvider $provider, string $storeId)
Get a vector store by its ID.
at line 60
Store
createStore(StoreProvider $provider, string $name, string|null $description = null, Collection|null $fileIds = null, DateInterval|null $expiresWhenIdleFor = null)
Create a new vector store.
at line 88
string
addFile(StoreProvider $provider, string $storeId, string $fileId, array $metadata = [])
Add a file to a vector store.
at line 121
protected Response
waitForImportOperation(StoreProvider $provider, Response $operation)
Wait for a Gemini file import operation to complete.
at line 147
protected array
formatMetadata(array $metadata)
Format metadata for Gemini's custom_metadata format.
at line 159
bool
removeFile(StoreProvider $provider, string $storeId, string $documentId)
Remove a file from a vector store.
at line 175
bool
deleteStore(StoreProvider $provider, string $storeId)
Delete a vector store by its ID.
at line 191
protected PendingRequest
client(Provider $provider)
Get an HTTP client for the Gemini File Search API.
at line 205
protected string
baseUrl(Provider $provider)
Get the base URL for the Gemini API.
at line 213
protected string
normalizeStoreId(string $storeId)
Normalize the store ID to include the resource prefix.
at line 221
protected string
normalizeFileId(string $fileId)
Normalize the file ID to include the resource prefix.
at line 229
protected string
normalizeDocumentId(string $storeId, string $documentId)
Normalize the document ID to include the full resource path.