Swift Examples - Gemini

Service setup

Create a Gemini service in the AIProxy dashboard

Follow the integration guide, selecting the Gemini icon on the 'Create a New Service' form.

How to generate text content with Gemini

import AIProxy

let geminiService = AIProxy.geminiService(
    partialKey: "partial-key-from-your-developer-dashboard",
    serviceURL: "service-url-from-your-developer-dashboard"
)

do {
    let requestBody = GeminiGenerateContentRequestBody(
        model: "gemini-1.5-flash",
        contents: [
            .init(
                parts: [.init(text: "Tell me a joke")]
            )
        ]
    )
    let response = try await geminiService.generateContentRequest(body: requestBody)
    for part in response.candidates?.first?.content?.parts ?? [] {
        switch part {
        case .text(let text):
            print("Gemini sent: \(text)")
        }
    }
    if let usage = response.usageMetadata {
        print(
            """
            Used:
             \(usage.promptTokenCount ?? 0) prompt tokens
             \(usage.cachedContentTokenCount ?? 0) cached tokens
             \(usage.candidatesTokenCount ?? 0) candidate tokens
             \(usage.totalTokenCount ?? 0) total tokens
            """
        )
    }
}  catch AIProxyError.unsuccessfulRequest(let statusCode, let responseBody) {
    print("Received \(statusCode) status code with response body: \(responseBody)")
} catch {
    print("Could not create Gemini generate content request: \(error.localizedDescription)")
}