nimgent/providers/google_transport
This page is generated from the module’s exported API and ## documentation comments.
Native Gemini generateContent transport, including provider-executed tools.
This is the Gemini API as served by Google AI Studio: an API key in
x-goog-api-key, /v1beta/models/<id>:generateContent. Vertex AI is a
different service - OAuth service accounts, a project and location in the
path - and needs its own provider.
Constants
Section titled “Constants”defaultGoogleEndpoint
Section titled “defaultGoogleEndpoint”Default Google Generative Language endpoint.
defaultGoogleEndpoint = "https://generativelanguage.googleapis.com/v1beta"GoogleProvider
Section titled “GoogleProvider”Google Gemini provider configuration.
GoogleProvider = ref object of Provider endpoint*: string userAgent*: stringGoogleOptions
Section titled “GoogleOptions”Optional settings for Google embedding requests.
GoogleOptions = object taskType*: Option[string]Procedures
Section titled “Procedures”toProviderJson
Section titled “toProviderJson”Serialize Google-specific request options.
proc toProviderJson(value: GoogleOptions): JsonNode {.raises: [], tags: [], forbids: [].}Returns: JsonNode.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
value |
GoogleOptions |
Create a Google Gemini provider.
proc google(apiKey: string; endpoint = defaultGoogleEndpoint; timeoutSeconds = 300; userAgent = ""): GoogleProvider {.raises: [], tags: [], forbids: [].}Returns: GoogleProvider.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
apiKey |
string |
|
endpoint |
inferred |
defaultGoogleEndpoint |
timeoutSeconds |
inferred |
300 |
userAgent |
inferred |
"" |
buildGoogleBody
Section titled “buildGoogleBody”Build a Google Gemini generateContent request body.
proc buildGoogleBody(request: ProviderRequest): JsonNode {. raises: [ProviderError, KeyError], tags: [], forbids: [].}Returns: JsonNode.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
request |
ProviderRequest |
parseGoogleOutput
Section titled “parseGoogleOutput”Parse a Google Gemini response.
proc parseGoogleOutput(data: JsonNode): ProviderResponse {. raises: [ProviderError, KeyError], tags: [ReadIOEffect, WriteIOEffect], forbids: [].}Returns: ProviderResponse.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
data |
JsonNode |
handleGoogleEvent
Section titled “handleGoogleEvent”Consume one Google Gemini streaming event.
proc handleGoogleEvent(response: var ProviderResponse; data: JsonNode; onEvent: StreamCallback): SseAction {. raises: [ProviderError, KeyError, Exception], tags: [ReadIOEffect, WriteIOEffect, RootEffect], forbids: [].}Returns: SseAction.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
response |
var ProviderResponse |
|
data |
JsonNode |
|
onEvent |
StreamCallback |
Methods
Section titled “Methods”nativeObjectOptions
Section titled “nativeObjectOptions”Return Google native structured-output options.
method nativeObjectOptions(p: GoogleProvider; model, name, description: string; schema: JsonNode): JsonNode {.raises: [], tags: [], forbids: [].}Returns: JsonNode.
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
p |
GoogleProvider |
|
model |
string |
|
name |
string |
|
description |
string |
|
schema |
JsonNode |
generateAsync
Section titled “generateAsync”Send a request through the Google Gemini API.
method generateAsync(p: GoogleProvider; request: ProviderRequest): Future[ ProviderResponse] {.raises: [Exception, ValueError, ProviderError, KeyError, LibraryError, SslError, IOError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[ProviderResponse].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
p |
GoogleProvider |
|
request |
ProviderRequest |
generateStreamAsync
Section titled “generateStreamAsync”Stream a request through the Google Gemini API.
method generateStreamAsync(p: GoogleProvider; request: ProviderRequest; onEvent: StreamCallback): Future[ProviderResponse] {.raises: [ Exception, ValueError, ProviderError, KeyError, LibraryError, SslError, IOError], tags: [RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[ProviderResponse].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
p |
GoogleProvider |
|
request |
ProviderRequest |
|
onEvent |
StreamCallback |
embedAsync
Section titled “embedAsync”Send an embedding request through the Google Gemini API.
method embedAsync(p: GoogleProvider; request: EmbeddingRequest): Future[ EmbeddingResponse] {.stackTrace: false, raises: [Exception, ValueError, ProviderError, LibraryError, SslError, IOError, KeyError], tags: [ RootEffect, ReadDirEffect, ReadEnvEffect, TimeEffect, ReadIOEffect, WriteIOEffect], forbids: [].}Returns: Future[EmbeddingResponse].
Arguments
Section titled “Arguments”| Name | Type | Default |
|---|---|---|
p |
GoogleProvider |
|
request |
EmbeddingRequest |