कॉन्फ़िगरेशन API दस्तावेज़ीकरण

पूर्ण कॉन्फ़िगरेशन प्रबंधन API संदर्भ दस्तावेज़ीकरण

कॉन्फ़िगरेशन प्रबंधन25 मिनट पढ़ना

कॉन्फ़िगरेशन पदानुक्रम

Gemini CLI एक पदानुक्रमित कॉन्फ़िगरेशन सिस्टम का उपयोग करता है जो कई कॉन्फ़िगरेशन स्रोतों और गतिशील अपडेट का समर्थन करता है

1

डिफ़ॉल्ट कॉन्फ़िगरेशन

अंतर्निहित डिफ़ॉल्ट कॉन्फ़िगरेशन मान

प्राथमिकता: सबसे कम
2

ग्लोबल कॉन्फ़िग फ़ाइल

~/.gemini/config.toml

प्राथमिकता: कम
3

प्रोजेक्ट कॉन्फ़िग फ़ाइल

./gemini.toml या ./.gemini/config.toml

प्राथमिकता: मध्यम
4

पर्यावरण चर

GEMINI_* उपसर्ग वाले पर्यावरण चर

प्राथमिकता: उच्च
5

कमांड लाइन तर्क

कमांड को पास किए गए रनटाइम तर्क

प्राथमिकता: सबसे अधिक

कॉन्फ़िगरेशन विकल्प

विस्तृत कॉन्फ़िगरेशन विकल्प विवरण

[api]

Gemini API संबंधित कॉन्फ़िगरेशन

विकल्पप्रकारडिफ़ॉल्टविवरण
keyआवश्यकstring-Google AI API कुंजी
modelstring"gemini-pro"उपयोग करने के लिए डिफ़ॉल्ट मॉडल
temperaturenumber0.7जेनरेशन तापमान (0-1)
max_tokensnumber4096टोकन की अधिकतम संख्या
timeoutnumber30000मिलीसेकंड में अनुरोध टाइमआउट

[session]

सत्र प्रबंधन कॉन्फ़िगरेशन

विकल्पप्रकारडिफ़ॉल्टविवरण
auto_savebooleantrueस्वचालित रूप से सत्र सहेजें
max_historynumber100इतिहास संदेशों की अधिकतम संख्या
storage_pathstring"~/.gemini/sessions"सत्र भंडारण पथ
compressionbooleantrueसत्र संपीड़न सक्षम करें

[context]

संदर्भ प्रसंस्करण कॉन्फ़िगरेशन

विकल्पप्रकारडिफ़ॉल्टविवरण
max_filesnumber50फ़ाइलों की अधिकतम संख्या
max_file_sizestring"1MB"प्रति फ़ाइल अधिकतम फ़ाइल आकार
exclude_patternsarray*.log,*.tmpफ़ाइल बहिष्करण पैटर्न
auto_detect_languagebooleantrueस्वचालित रूप से प्रोग्रामिंग भाषा का पता लगाएं

[plugins]

प्लगइन सिस्टम कॉन्फ़िगरेशन

विकल्पप्रकारडिफ़ॉल्टविवरण
enabledbooleantrueप्लगइन सिस्टम सक्षम करें
auto_loadbooleantrueस्वचालित रूप से प्लगइन्स लोड करें
plugin_pathsarray~/.gemini/pluginsप्लगइन खोज पथ
security_modestring"strict"सुरक्षा मोड (strict/permissive)

कॉन्फ़िगरेशन फ़ाइल उदाहरण

पूर्ण TOML कॉन्फ़िगरेशन फ़ाइल उदाहरण

# Gemini CLI कॉन्फ़िगरेशन फ़ाइल (gemini.toml)

[api]
key = "your-api-key-here"
model = "gemini-pro"
temperature = 0.7
max_tokens = 4096
timeout = 30000

[session]
auto_save = true
max_history = 100
storage_path = "~/.gemini/sessions"
compression = true

[context]
max_files = 50
max_file_size = "1MB"
exclude_patterns = [
  "*.log",
  "*.tmp",
  "node_modules/**",
  ".git/**"
]
auto_detect_language = true

[plugins]
enabled = true
auto_load = true
plugin_paths = [
  "~/.gemini/plugins",
  "./plugins"
]
security_mode = "strict"

[logging]
level = "info"
file = "~/.gemini/logs/gemini.log"
max_size = "10MB"
max_files = 5

[ui]
theme = "auto"
color = true
progress_bar = true
confirm_destructive = true

कॉन्फ़िगरेशन API इंटरफ़ेस

ConfigManager क्लास इंटरफ़ेस परिभाषा

ConfigManager

ConfigManager क्लास इंटरफ़ेस परिभाषा

interface ConfigManager {
  // कॉन्फ़िगरेशन मान प्राप्त करें
  get<T>(key: string): T | undefined
  get<T>(key: string, defaultValue: T): T

  // कॉन्फ़िगरेशन मान सेट करें
  set(key: string, value: any): void

  // कॉन्फ़िगरेशन आइटम हटाएं
  delete(key: string): void

  // जांचें कि कॉन्फ़िगरेशन आइटम मौजूद है या नहीं
  has(key: string): boolean

  // सभी कॉन्फ़िगरेशन प्राप्त करें
  getAll(): Record<string, any>

  // कॉन्फ़िगरेशन पुनः लोड करें
  reload(): Promise<void>

  // कॉन्फ़िगरेशन को फ़ाइल में सहेजें
  save(): Promise<void>

  // कॉन्फ़िगरेशन परिवर्तन देखें
  watch(key: string, callback: (value: any) => void): void

  // कॉन्फ़िगरेशन परिवर्तन देखना बंद करें
  unwatch(key: string, callback?: (value: any) => void): void

  // कॉन्फ़िगरेशन सत्यापित करें
  validate(): ConfigValidationResult
}

पर्यावरण चर

समर्थित पर्यावरण चर की सूची

GEMINI_API_KEY

Google AI API कुंजी

उदाहरण:

export GEMINI_API_KEY="your-api-key"

संबंधित कॉन्फ़िग:

api.key

GEMINI_MODEL

डिफ़ॉल्ट मॉडल नाम

उदाहरण:

export GEMINI_MODEL="gemini-pro"

संबंधित कॉन्फ़िग:

api.model

GEMINI_TEMPERATURE

जेनरेशन तापमान

उदाहरण:

export GEMINI_TEMPERATURE="0.7"

संबंधित कॉन्फ़िग:

api.temperature

GEMINI_CONFIG_PATH

कॉन्फ़िगरेशन फ़ाइल पथ

उदाहरण:

export GEMINI_CONFIG_PATH="/path/to/config.toml"

संबंधित कॉन्फ़िग:

N/A

GEMINI_LOG_LEVEL

लॉग स्तर

उदाहरण:

export GEMINI_LOG_LEVEL="debug"

संबंधित कॉन्फ़िग:

logging.level

GEMINI_PLUGIN_PATH

प्लगइन पथ

उदाहरण:

export GEMINI_PLUGIN_PATH="/path/to/plugins"

संबंधित कॉन्फ़िग:

plugins.plugin_paths

उपयोग उदाहरण

कॉन्फ़िगरेशन प्रबंधन के व्यावहारिक अनुप्रयोग उदाहरण

बुनियादी कॉन्फ़िगरेशन ऑपरेशन

कॉन्फ़िगरेशन मान पढ़ना और सेट करना

import { ConfigManager } from '@gemini-cli/core'

const config = new ConfigManager()

// कॉन्फ़िगरेशन मान प्राप्त करें
const apiKey = config.get('api.key')
const model = config.get('api.model', 'gemini-pro')

// कॉन्फ़िगरेशन मान सेट करें
config.set('api.temperature', 0.8)
config.set('session.auto_save', false)

// कॉन्फ़िगरेशन सहेजें
await config.save()

कॉन्फ़िगरेशन निगरानी

कॉन्फ़िगरेशन परिवर्तनों को सुनना

// API कुंजी परिवर्तन देखें
config.watch('api.key', (newKey) => {
  console.log('API key changed:', newKey)
  // क्लाइंट को पुनः आरंभ करें
  reinitializeClient(newKey)
})

// मॉडल परिवर्तन देखें
config.watch('api.model', (newModel) => {
  console.log('Model changed to:', newModel)
})

कॉन्फ़िगरेशन सत्यापन

कॉन्फ़िगरेशन की वैधता का सत्यापन

// कॉन्फ़िगरेशन सत्यापित करें
const validation = config.validate()

if (!validation.isValid) {
  console.error('Configuration errors:')
  validation.errors.forEach(error => {
    console.error(`- ${error.path}: ${error.message}`)
  })
  process.exit(1)
}

console.log('Configuration is valid')

गतिशील कॉन्फ़िगरेशन अपडेट

रनटाइम कॉन्फ़िगरेशन अपडेट

// गतिशील कॉन्फ़िगरेशन अपडेट
async function updateConfig(updates: Record<string, any>) {
  for (const [key, value] of Object.entries(updates)) {
    config.set(key, value)
  }

  // नई कॉन्फ़िगरेशन सत्यापित करें
  const validation = config.validate()
  if (!validation.isValid) {
    throw new Error('Invalid configuration')
  }

  // कॉन्फ़िगरेशन सहेजें
  await config.save()

  console.log('Configuration updated successfully')
}

सुरक्षा विचार

कॉन्फ़िगरेशन सुरक्षा के लिए सर्वोत्तम प्रथाएं

API कुंजी सुरक्षा

API कुंजियों की सुरक्षा के लिए सर्वोत्तम प्रथाएं

  • API कुंजियों को संग्रहीत करने के लिए पर्यावरण चर का उपयोग करें
  • कॉन्फ़िगरेशन फ़ाइलों में कुंजियों को हार्डकोड करने से बचें
  • उपयुक्त फ़ाइल अनुमतियां सेट करें (600)
  • नियमित रूप से API कुंजियों को रोटेट करें

कॉन्फ़िगरेशन फ़ाइल अनुमतियां

कॉन्फ़िगरेशन फ़ाइलों के लिए सुरक्षा सेटिंग्स

  • कॉन्फ़िगरेशन फ़ाइलों को केवल पढ़ने के लिए सेट करें (chmod 600)
  • संवेदनशील कॉन्फ़िगरेशन को संस्करण नियंत्रण में कमिट करने से बचें
  • कॉन्फ़िगरेशन फ़ाइलों को बाहर करने के लिए .gitignore का उपयोग करें
  • नियमित रूप से कॉन्फ़िगरेशन फ़ाइल सामग्री की समीक्षा करें

प्लगइन सुरक्षा

प्लगइन कॉन्फ़िगरेशन के लिए सुरक्षा विचार

  • सख्त सुरक्षा मोड सक्षम करें
  • प्लगइन स्रोतों और हस्ताक्षरों को सत्यापित करें
  • प्लगइन अनुमति दायरे को सीमित करें
  • नियमित रूप से प्लगइन संस्करणों को अपडेट करें

कॉन्फ़िगरेशन सत्यापन

कॉन्फ़िगरेशन सत्यापन नियम और कार्यान्वयन

// कॉन्फ़िगरेशन सत्यापन नियम
const configSchema = {
  api: {
    key: {
      type: 'string',
      required: true,
      minLength: 10,
      pattern: /^[A-Za-z0-9_-]+$/
    },
    model: {
      type: 'string',
      enum: ['gemini-pro', 'gemini-pro-vision'],
      default: 'gemini-pro'
    },
    temperature: {
      type: 'number',
      min: 0,
      max: 1,
      default: 0.7
    }
  },
  session: {
    max_history: {
      type: 'number',
      min: 1,
      max: 1000,
      default: 100
    },
    storage_path: {
      type: 'string',
      required: true
    }
  }
}

// कॉन्फ़िगरेशन सत्यापित करें
function validateConfig(config: any): ConfigValidationResult {
  const errors: ConfigError[] = []

  // API कॉन्फ़िगरेशन सत्यापित करें
  if (!config.api?.key) {
    errors.push({
      path: 'api.key',
      message: 'API key is required'
    })
  }

  if (config.api?.temperature < 0 || config.api?.temperature > 1) {
    errors.push({
      path: 'api.temperature',
      message: 'Temperature must be between 0 and 1'
    })
  }

  return {
    isValid: errors.length === 0,
    errors
  }
}

सीखना जारी रखें

MCP प्रोटोकॉल और एक्सटेंशन विकास का अन्वेषण करें