Core API
Vollständige Gemini CLI Core API Referenz und Nutzungsanleitung
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:
config
GeminiConfigClient-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:
message
stringBenutzereingabenachricht
context
ContextOptionale 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:
message
stringBenutzereingabenachricht
context
ContextOptionale 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:
id
stringOptionale 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:
id
stringSession-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:
session
SessionZu 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:
filePath
stringDateipfad
Beispiel:
await contextManager.addFile('src/utils/helper.ts')
addDirectory
async addDirectory(dirPath: string, options?: DirOptions): Promise<void>
Verzeichnis zum Kontext hinzufügen
Parameter:
dirPath
stringVerzeichnispfad
options
DirOptionsVerzeichnis-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
apiKey
stringGoogle AI API-Schlüssel
model
stringZu verwendender Modellname, Standard ist "gemini-pro"
temperature
numberGenerierungstemperatur, zwischen 0-1
maxTokens
numberMaximale Anzahl von Tokens
timeout
numberAnfrage-Timeout in Millisekunden
ChatResponse
Chat-Antwort-Schnittstelle
content
stringAntwortinhalt
usage
TokenUsageToken-Nutzungsinformationen
model
stringVerwendetes Modell
finishReason
stringBeendigungsgrund
Context
Kontext-Informationsschnittstelle
files
FileContext[]Datei-Kontext-Liste
history
Message[]Nachrichtenverlauf
metadata
Record<string, any>Metadaten
Session
Session-Schnittstelle
id
stringEindeutige Session-Kennung
messages
Message[]Nachrichtenverlauf
context
ContextSession-Kontext
createdAt
DateErstellungszeit
updatedAt
DateAktualisierungszeit
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