# πŸ”§ Команда config - Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ## πŸ“‹ ОписаниС Команда `config` позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС настройки, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ΠΈ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ## πŸš€ ИспользованиС ### ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) ```bash lcg config # ΠΈΠ»ΠΈ lcg co ``` **Π’Ρ‹Π²ΠΎΠ΄:** ``` text Provider: ollama Host: http://192.168.87.108:11434/ Model: hf.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF:Q4_K_M Prompt: Reply with linux command and nothing else. Output with plain response - no need formatting. No need explanation. No need code blocks. No need ` symbols. Timeout: 300 seconds ``` ### ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ```bash lcg config --full # ΠΈΠ»ΠΈ lcg config -f # ΠΈΠ»ΠΈ lcg co --full # ΠΈΠ»ΠΈ lcg co -f ``` **Π’Ρ‹Π²ΠΎΠ΄ (JSON Ρ„ΠΎΡ€ΠΌΠ°Ρ‚):** ```json { "cwd": "/home/user/projects/golang/linux-command-gpt", "host": "http://192.168.87.108:11434/", "proxy_url": "/api/v1/protected/sberchat/chat", "completions": "api/chat", "model": "hf.co/yandex/YandexGPT-5-Lite-8B-instruct-GGUF:Q4_K_M", "prompt": "Reply with linux command and nothing else. Output with plain response - no need formatting. No need explanation. No need code blocks. No need ` symbols.", "api_key_file": ".openai_api_key", "result_folder": "/home/user/.config/lcg/gpt_results", "prompt_folder": "/home/user/.config/lcg/gpt_sys_prompts", "provider_type": "ollama", "jwt_token": "***not set***", "prompt_id": "1", "timeout": "300", "result_history": "/home/user/.config/lcg/gpt_results/lcg_history.json", "no_history_env": "", "allow_execution": false, "main_flags": { "file": "", "no_history": false, "sys": "", "prompt_id": 0, "timeout": 0, "debug": false }, "server": { "port": "8080", "host": "localhost" }, "validation": { "max_system_prompt_length": 1000, "max_user_message_length": 2000, "max_prompt_name_length": 2000, "max_prompt_desc_length": 5000, "max_command_length": 8000, "max_explanation_length": 20000 } } ``` ## πŸ“Š Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ настройки - **cwd** - тСкущая рабочая дирСктория - **host** - адрСс API сСрвСра - **proxy_url** - ΠΏΡƒΡ‚ΡŒ ΠΊ API эндпоинту - **completions** - ΠΏΡƒΡ‚ΡŒ ΠΊ эндпоинту completions - **model** - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ модСль ИИ - **prompt** - систСмный ΠΏΡ€ΠΎΠΌΠΏΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - **api_key_file** - Ρ„Π°ΠΉΠ» с API ΠΊΠ»ΡŽΡ‡ΠΎΠΌ - **result_folder** - ΠΏΠ°ΠΏΠΊΠ° для сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² - **prompt_folder** - ΠΏΠ°ΠΏΠΊΠ° с систСмными ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°ΠΌΠΈ - **provider_type** - Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° (ollama/proxy) - **jwt_token** - статус JWT Ρ‚ΠΎΠΊΠ΅Π½Π° (***set***/***from file***/***not set***) - **prompt_id** - ID ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ - **timeout** - Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ запросов Π² сСкундах - **result_history** - Ρ„Π°ΠΉΠ» истории запросов - **no_history_env** - пСрСмСнная окруТСния для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ истории - **allow_execution** - Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ ### Π€Π»Π°Π³ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (main_flags) - **file** - Ρ„Π°ΠΉΠ» для чтСния - **no_history** - ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ истории - **sys** - систСмный ΠΏΡ€ΠΎΠΌΠΏΡ‚ - **prompt_id** - ID ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° - **timeout** - Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ - **debug** - ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ### Настройки сСрвСра (server) - **port** - ΠΏΠΎΡ€Ρ‚ Π²Π΅Π±-сСрвСра - **host** - хост Π²Π΅Π±-сСрвСра ### Настройки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ (validation) - **max_system_prompt_length** - максимальная Π΄Π»ΠΈΠ½Π° систСмного ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° - **max_user_message_length** - максимальная Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сообщСния - **max_prompt_name_length** - максимальная Π΄Π»ΠΈΠ½Π° названия ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° - **max_prompt_desc_length** - максимальная Π΄Π»ΠΈΠ½Π° описания ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° - **max_command_length** - максимальная Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹/ΠΎΡ‚Π²Π΅Ρ‚Π° - **max_explanation_length** - максимальная Π΄Π»ΠΈΠ½Π° объяснСния ## πŸ”’ Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ°ΡΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ: - **JWT Ρ‚ΠΎΠΊΠ΅Π½Ρ‹** - показываСтся статус (***set***/***from file***/***not set***) - **API ΠΊΠ»ΡŽΡ‡ΠΈ** - Π½Π΅ выводятся Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ - **ΠŸΠ°Ρ€ΠΎΠ»ΠΈ** - Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ## πŸ“ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ### ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… настроСк ```bash # ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ lcg config # ΠŸΠΎΠ»Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ lcg config --full ``` ### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настроСк Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ```bash # ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ lcg config --full | jq '.validation' ``` ### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° настроСк сСрвСра ```bash # ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройки сСрвСра lcg config --full | jq '.server' ``` ### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния ```bash # ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния LCG env | grep LCG ``` ## πŸ”§ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами ### ИспользованиС с jq ```bash # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ модСль lcg config --full | jq -r '.model' # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ настройки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ lcg config --full | jq '.validation' # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС ΠΏΡƒΡ‚ΠΈ lcg config --full | jq '{result_folder, prompt_folder, result_history}' ``` ### ИспользованиС с grep ```bash # Найти всС настройки с "timeout" lcg config --full | grep -i timeout # Найти всС ΠΏΡƒΡ‚ΠΈ lcg config --full | grep -E "(folder|history)" ``` ### Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ» ```bash # Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ lcg config --full > config.json # Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройки Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ lcg config --full | jq '.validation' > validation.json ``` ## πŸ› ΠžΡ‚Π»Π°Π΄ΠΊΠ° ### ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ```bash # ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ всС настройки lcg config --full # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния env | grep LCG # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ls -la ~/.config/lcg/ ``` ### Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ 1. **ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ** - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ `result_folder` ΠΈ `prompt_folder` 2. **ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹** - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ `jwt_token` статус 3. **ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹** - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠ΅ΠΊΡ†ΠΈΡŽ `validation` ## πŸ“š БвязанныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - `lcg --help` - общая справка - `lcg config --help` - справка ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ config - `lcg serve` - запуск Π²Π΅Π±-сСрвСра - `lcg prompts list` - список ΠΏΡ€ΠΎΠΌΠΏΡ‚ΠΎΠ² --- **ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅**: Команда `config` ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ послС примСнСния всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.