Core API

Vollständige Gemini CLI Core API Referenz und Nutzungsanleitung

API-Referenz30 Min. Lesezeit

API-Module

Kern-API-Module und -Methoden

GeminiClient

Kern-Gemini-API-Client-Klasse

src/core/gemini.ts

constructor

constructor(config: GeminiConfig)

Gemini-Client-Instanz erstellen

Parameter:
configGeminiConfig

Client-Konfigurationsobjekt

Beispiel:
const client = new GeminiClient({
  apiKey: process.env.GEMINI_API_KEY,
  model: 'gemini-pro',
  temperature: 0.7
})

chat

async chat(message: string, context?: Context): Promise<ChatResponse>

Chat-Nachricht senden und Antwort erhalten

Parameter:
messagestring

Benutzereingabenachricht

contextContext

Optionale Kontextinformationen

Rückgabe:
Promise<ChatResponse>

Chat-Antwortobjekt

Beispiel:
const response = await client.chat('Hello, Gemini!', {
  files: ['src/index.ts'],
  history: previousMessages
})

stream

async stream(message: string, context?: Context): AsyncGenerator<string>

Streaming-Chat-Antwort

Parameter:
messagestring

Benutzereingabenachricht

contextContext

Optionale Kontextinformationen

Rückgabe:
AsyncGenerator<string>

Streaming-Antwort-Generator

Beispiel:
for await (const chunk of client.stream('Explain this code')) {
  process.stdout.write(chunk)
}

SessionManager

Session-Status-Manager

src/core/session.ts

createSession

createSession(id?: string): Session

Neue Session erstellen

Parameter:
idstring

Optionale Session-ID

Rückgabe:
Session

Neu erstelltes Session-Objekt

Beispiel:
const session = sessionManager.createSession('my-session')

getSession

getSession(id: string): Session | null

Angegebene Session abrufen

Parameter:
idstring

Session-ID

Rückgabe:
Session | null

Session-Objekt oder null

Beispiel:
const session = sessionManager.getSession('my-session')

saveSession

async saveSession(session: Session): Promise<void>

Session in persistentem Speicher speichern

Parameter:
sessionSession

Zu speicherndes Session-Objekt

Beispiel:
await sessionManager.saveSession(session)

ContextManager

Kontext-Verarbeitungsmanager

src/core/context.ts

addFile

async addFile(filePath: string): Promise<void>

Datei zum Kontext hinzufügen

Parameter:
filePathstring

Dateipfad

Beispiel:
await contextManager.addFile('src/utils/helper.ts')

addDirectory

async addDirectory(dirPath: string, options?: DirOptions): Promise<void>

Verzeichnis zum Kontext hinzufügen

Parameter:
dirPathstring

Verzeichnispfad

optionsDirOptions

Verzeichnis-Scan-Optionen

Beispiel:
await contextManager.addDirectory('src/', {
  exclude: ['*.test.ts'],
  maxDepth: 3
})

getContext

getContext(): Context

Aktuellen Kontext abrufen

Rückgabe:
Context

Aktuelles Kontext-Objekt

Beispiel:
const context = contextManager.getContext()

Typdefinitionen

TypeScript-Typdefinitionen für Core API

GeminiConfig

Gemini-Client-Konfigurationsschnittstelle

apiKeystring
erforderlich

Google AI API-Schlüssel

modelstring

Zu verwendender Modellname, Standard ist "gemini-pro"

temperaturenumber

Generierungstemperatur, zwischen 0-1

maxTokensnumber

Maximale Anzahl von Tokens

timeoutnumber

Anfrage-Timeout in Millisekunden

ChatResponse

Chat-Antwort-Schnittstelle

contentstring
erforderlich

Antwortinhalt

usageTokenUsage
erforderlich

Token-Nutzungsinformationen

modelstring
erforderlich

Verwendetes Modell

finishReasonstring

Beendigungsgrund

Context

Kontext-Informationsschnittstelle

filesFileContext[]

Datei-Kontext-Liste

historyMessage[]

Nachrichtenverlauf

metadataRecord<string, any>

Metadaten

Session

Session-Schnittstelle

idstring
erforderlich

Eindeutige Session-Kennung

messagesMessage[]
erforderlich

Nachrichtenverlauf

contextContext

Session-Kontext

createdAtDate
erforderlich

Erstellungszeit

updatedAtDate
erforderlich

Aktualisierungszeit

Verwendungsbeispiele

Häufige API-Nutzungsszenarien und Codebeispiele

Basis-Chat

Einfaches Chat-Interaktionsbeispiel

import { GeminiClient } from '@gemini/core'

const client = new GeminiClient({
  apiKey: process.env.GEMINI_API_KEY,
  model: 'gemini-pro'
})

async function basicChat() {
  try {
    const response = await client.chat('Hello, how are you?')
    console.log('AI:', response.content)
  } catch (error) {
    console.error('Chat error:', error.message)
  }
}

Datei-Kontext

Chat mit eingeschlossenem Datei-Kontext

import { GeminiClient, ContextManager } from '@gemini/core'

const client = new GeminiClient({ apiKey: process.env.GEMINI_API_KEY })
const contextManager = new ContextManager()

async function chatWithFiles() {
  // Add files to context
  await contextManager.addFile('src/utils/helper.ts')
  await contextManager.addDirectory('src/components/')

  const context = contextManager.getContext()

  const response = await client.chat(
    'Explain the helper functions in this codebase',
    context
  )

  console.log(response.content)
}

Session-Management

Verwaltung persistenter Sessions

import { SessionManager } from '@gemini/core'

const sessionManager = new SessionManager()

async function manageSessions() {
  // Create new session
  const session = sessionManager.createSession('project-review')

  // Add messages to session
  session.messages.push({
    role: 'user',
    content: 'Review this code for best practices'
  })

  // Save session
  await sessionManager.saveSession(session)

  // Restore session later
  const restored = sessionManager.getSession('project-review')
  console.log('Session messages:', restored?.messages.length)
}

Streaming-Antwort

Echtzeit-Streaming-Ausgabe

import { GeminiClient } from '@gemini/core'

const client = new GeminiClient({ apiKey: process.env.GEMINI_API_KEY })

async function streamingChat() {
  console.log('AI: ')

  for await (const chunk of client.stream('Write a short story')) {
    process.stdout.write(chunk)
  }

  console.log('\n\nStream completed!')
}

Fehlerbehandlung

API-Fehlertypen und Behandlungsmethoden

AuthenticationError

Ungültiger oder abgelaufener API-Schlüssel

GEMINI_AUTH_ERROR

Lösung:

Überprüfen Sie, ob der API-Schlüssel korrekt gesetzt ist, stellen Sie sicher, dass der Schlüssel gültig und nicht abgelaufen ist

RateLimitError

Anfragenhäufigkeit überschreitet Grenzen

GEMINI_RATE_LIMIT

Lösung:

Implementieren Sie einen exponentiellen Backoff-Wiederholungsmechanismus oder upgraden Sie auf einen höheren Quota-Plan

ContextTooLargeError

Kontextinhalt überschreitet Modellgrenzen

GEMINI_CONTEXT_TOO_LARGE

Lösung:

Reduzieren Sie die Anzahl der Kontextdateien oder verwenden Sie die Dateizusammenfassungsfunktion

NetworkError

Netzwerkverbindungsprobleme

GEMINI_NETWORK_ERROR

Lösung:

Überprüfen Sie die Netzwerkverbindung, konfigurieren Sie Proxy-Einstellungen oder erhöhen Sie das Timeout

Nächste Schritte

Setzen Sie Ihre Entwicklungsreise mit diesen Ressourcen fort