GeminiFrontendAdapter
Defined in: adapters/gemini.ts:171
Frontend adapter interface.
Frontend adapters represent how developers want to interact with AI APIs. They normalize provider-specific request formats into universal IR and denormalize IR responses back to provider-specific formats.
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new GeminiFrontendAdapter():
GeminiFrontendAdapter
Returns
Section titled “Returns”GeminiFrontendAdapter
Properties
Section titled “Properties”metadata
Section titled “metadata”
readonlymetadata:AdapterMetadata
Defined in: adapters/gemini.ts:172
Adapter metadata for identification and capabilities.
Implementation of
Section titled “Implementation of”Methods
Section titled “Methods”fromIR()
Section titled “fromIR()”fromIR(
response):Promise<GeminiResponse>
Defined in: adapters/gemini.ts:257
Convert Universal IR response back to Google Gemini API format.
This method transforms the standardized IR response into the format expected by Gemini’s API. It converts ‘assistant’ role back to ‘model’, structures content as parts array, and maps finish reasons to Gemini’s specific format (STOP, MAX_TOKENS, OTHER).
Parameters
Section titled “Parameters”response
Section titled “response”Universal IR chat response
Returns
Section titled “Returns”Promise<GeminiResponse>
Promise resolving to Gemini API response
Example
Section titled “Example”const adapter = new GeminiFrontendAdapter();const geminiResponse = await adapter.fromIR(irResponse);console.log(geminiResponse.candidates[0].content.parts[0].text);Implementation of
Section titled “Implementation of”fromIRStream()
Section titled “fromIRStream()”fromIRStream(
stream,_options?):AsyncGenerator<string>
Defined in: adapters/gemini.ts:306
Convert Universal IR stream to Google Gemini Server-Sent Events format.
This async generator method transforms a stream of IR chunks into Gemini-formatted SSE responses. It yields Server-Sent Event strings with the “data: “ prefix containing JSON candidates with parts array.
Parameters
Section titled “Parameters”stream
Section titled “stream”AsyncGenerator<IRStreamChunk>
Universal IR chat stream
_options?
Section titled “_options?”Optional stream conversion options (currently unused)
Returns
Section titled “Returns”AsyncGenerator<string>
Yields
Section titled “Yields”Server-Sent Event formatted strings
Example
Section titled “Example”const adapter = new GeminiFrontendAdapter();for await (const sseData of adapter.fromIRStream(irStream)) { console.log(sseData); // "data: {...}\n\n"}Implementation of
Section titled “Implementation of”toIR()
Section titled “toIR()”toIR(
request):Promise<IRChatRequest>
Defined in: adapters/gemini.ts:205
Convert Google Gemini API request to Universal IR format.
This method transforms a Gemini-formatted request into the standardized Intermediate Representation (IR) format. It handles Gemini’s unique content structure (parts array), converts ‘model’ role to ‘assistant’, and adjusts temperature values (Gemini uses 0-1, IR uses 0-2).
Parameters
Section titled “Parameters”request
Section titled “request”Google Gemini API request
Returns
Section titled “Returns”Promise<IRChatRequest>
Promise resolving to IR chat request
Example
Section titled “Example”const adapter = new GeminiFrontendAdapter();const irRequest = await adapter.toIR({ contents: [{ role: 'user', parts: [{ text: 'Hello!' }] }], generationConfig: { temperature: 0.7 }});