कॉन्फ़िगरेशन API दस्तावेज़ीकरण
पूर्ण कॉन्फ़िगरेशन प्रबंधन API संदर्भ दस्तावेज़ीकरण
कॉन्फ़िगरेशन पदानुक्रम
Gemini CLI एक पदानुक्रमित कॉन्फ़िगरेशन सिस्टम का उपयोग करता है जो कई कॉन्फ़िगरेशन स्रोतों और गतिशील अपडेट का समर्थन करता है
डिफ़ॉल्ट कॉन्फ़िगरेशन
अंतर्निहित डिफ़ॉल्ट कॉन्फ़िगरेशन मान
ग्लोबल कॉन्फ़िग फ़ाइल
~/.gemini/config.toml
प्रोजेक्ट कॉन्फ़िग फ़ाइल
./gemini.toml या ./.gemini/config.toml
पर्यावरण चर
GEMINI_* उपसर्ग वाले पर्यावरण चर
कमांड लाइन तर्क
कमांड को पास किए गए रनटाइम तर्क
कॉन्फ़िगरेशन विकल्प
विस्तृत कॉन्फ़िगरेशन विकल्प विवरण
[api]
Gemini API संबंधित कॉन्फ़िगरेशन
विकल्प | प्रकार | डिफ़ॉल्ट | विवरण |
---|---|---|---|
key आवश्यक | string | - | Google AI API कुंजी |
model | string | "gemini-pro" | उपयोग करने के लिए डिफ़ॉल्ट मॉडल |
temperature | number | 0.7 | जेनरेशन तापमान (0-1) |
max_tokens | number | 4096 | टोकन की अधिकतम संख्या |
timeout | number | 30000 | मिलीसेकंड में अनुरोध टाइमआउट |
[session]
सत्र प्रबंधन कॉन्फ़िगरेशन
विकल्प | प्रकार | डिफ़ॉल्ट | विवरण |
---|---|---|---|
auto_save | boolean | true | स्वचालित रूप से सत्र सहेजें |
max_history | number | 100 | इतिहास संदेशों की अधिकतम संख्या |
storage_path | string | "~/.gemini/sessions" | सत्र भंडारण पथ |
compression | boolean | true | सत्र संपीड़न सक्षम करें |
[context]
संदर्भ प्रसंस्करण कॉन्फ़िगरेशन
विकल्प | प्रकार | डिफ़ॉल्ट | विवरण |
---|---|---|---|
max_files | number | 50 | फ़ाइलों की अधिकतम संख्या |
max_file_size | string | "1MB" | प्रति फ़ाइल अधिकतम फ़ाइल आकार |
exclude_patterns | array | *.log,*.tmp | फ़ाइल बहिष्करण पैटर्न |
auto_detect_language | boolean | true | स्वचालित रूप से प्रोग्रामिंग भाषा का पता लगाएं |
[plugins]
प्लगइन सिस्टम कॉन्फ़िगरेशन
विकल्प | प्रकार | डिफ़ॉल्ट | विवरण |
---|---|---|---|
enabled | boolean | true | प्लगइन सिस्टम सक्षम करें |
auto_load | boolean | true | स्वचालित रूप से प्लगइन्स लोड करें |
plugin_paths | array | ~/.gemini/plugins | प्लगइन खोज पथ |
security_mode | string | "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 प्रोटोकॉल और एक्सटेंशन विकास का अन्वेषण करें