
Протестировано и совместимо с Openai Catgpt, Azure Openai Service, Disploexity AI и Llama!
CHATGPT CLI предоставляет мощный интерфейс командной строки для беспроблемного взаимодействия с моделями CHATGPT через OpenAI и Azure, оснащенные потоковыми возможностями и обширными параметрами конфигурации.

context-window .-l или --list-models .--list-threads .config.yaml и переменных среды. Для быстрой корректировки предоставляются --set-<value> флаги. Чтобы проверить ваши текущие настройки, используйте флаг --config или -c . Мы рады внедрить поддержку для быстрых файлов с флагом --prompt версии 1.7.1 ! Эта функция позволяет вам предоставить богатый и подробный контекст для ваших разговоров непосредственно из файла.
--prompt Флаг --prompt позволяет указать файл, содержащий начальный контекст или инструкции для вашего разговора CHATGPT. Это особенно полезно, когда у вас есть подробные инструкции или контекст, которые вы хотите использовать в разных разговорах.
Чтобы использовать флаг --prompt , пройдите путь вашего приглашенного файла, как это:
chatgpt --prompt path/to/your/prompt.md " Use a pipe or provide a query here " Содержание prompt.md будет прочитано и используется в качестве первоначального контекста для разговора, в то время как запрос, который вы предоставляете, будет служить конкретным вопросом или задачей, которую вы хотите решить.
Вот забавный пример, где вы можете использовать выход команды git diff в качестве приглашения:
git diff | chatgpt --prompt ../prompts/write_pull-request.md В этом примере содержимое файла приглашения write_pull-request.md используется для руководства ответом модели на основе данных DIFF от git diff .
Для различных подсказок, готовых к использованию, ознакомьтесь с этим удивительным репозиторием подсказок. Они могут служить отличными отправными точками или вдохновением для ваших собственных подсказок!
Вы можете установить Chatgpt-Cli с помощью Homebrew:
brew tap kardolus/chatgpt-cli && brew install chatgpt-cliДля быстрой и легкой установки без компиляции, вы можете напрямую загрузить предварительно построенный двоичный файл для вашей операционной системы и архитектуры:
curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-darwin-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-linux-386 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-amd64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/curl -L -o chatgpt https://github.com/kardolus/chatgpt-cli/releases/latest/download/chatgpt-freebsd-arm64 && chmod +x chatgpt && sudo mv chatgpt /usr/local/bin/Загрузите двоичный файл по этой ссылке и добавьте его на свой путь.
Выберите подходящую команду для вашей системы, которая загрузит двоичный файл, сделает ее исполняемой файл и перенесет ее в свой каталог/USR/Local/Bin (или % PATH % в Windows) для легкого доступа.
Установите переменную среды OPENAI_API_KEY на свой секретный ключ CHATGPT. Чтобы установить переменную среды, вы можете добавить следующую строку в свой профиль оболочки (например, ~/.bashrc, ~/.zshrc, или ~/.bash_profile), заменив your_api_key вашим фактическим ключом:
export OPENAI_API_KEY= " your_api_key "Чтобы включить отслеживание истории через вызовы CLI, создайте каталог ~/.chatgpt-cli, используя команду:
mkdir -p ~ /.chatgpt-cliПосле того, как этот каталог будет на месте, CLI автоматически управляет историей сообщений для каждого «потока», с которым вы разговариваете. История работает как скользящее окно, поддерживая контекст до максимума настраиваемого токена. Это обеспечивает баланс между поддержанием контекста разговора и достижением оптимальной производительности.
По умолчанию, если пользователь не предоставлен конкретный поток, CLI использует поток по умолчанию и хранит историю по адресу ~/.chatgpt-cli/history/default.json . Вы можете найти более подробную информацию о том, как настроить параметр thread в разделе конфигурации этого документа.
Попробуйте:
chatgpt what is the capital of the Netherlands Чтобы запустить интерактивный режим, используйте флаг -i или --interactive :
chatgpt --interactive Если вы хотите, чтобы CLI автоматически создал новый поток для каждого сеанса, убедитесь, что переменная конфигурации auto_create_new_thread установлена на true . Это создаст уникальный идентификатор потока для каждого интерактивного сеанса.
Чтобы использовать функцию трубы, создайте текстовый файл, содержащий какой -то контекст. Например, создайте файл с именем context.txt со следующим контентом:
Kya is a playful dog who loves swimming and playing fetch.Затем используйте функцию трубы, чтобы предоставить этот контекст Chatgpt:
cat context.txt | chatgpt " What kind of toy would Kya enjoy? "Чтобы перечислить все доступные модели, используйте флаг -l или -list -models:
chatgpt --list-modelsДля получения дополнительных вариантов см.
chatgpt --helpCHATGPT CLI принимает четырехчастотную стратегию конфигурации с различными уровнями приоритета, назначенных флагам, переменным среды, файл config.yaml и значения по умолчанию, в этом соответствующем порядке:
| Переменная | Описание | По умолчанию |
|---|---|---|
name | Префикс для переопределения переменной среды. | 'openai' |
thread | Имя текущего потока чата. Каждое уникальное имя потока имеет свой собственный контекст. | 'по умолчанию' |
omit_history | Если это правда, история чата не будет использоваться для обеспечения контекста для модели GPT. | ЛОЖЬ |
command_prompt | Командная строка в интерактивном режиме. Должен быть одним цитированием. | '[%dateTime] [Q%счетчик]' |
output_prompt | Выходная подсказка в интерактивном режиме. Должен быть одним цитированием. | '' |
auto_create_new_thread | Если установлено значение true , для каждого интерактивного сеанса будет создан новый поток с уникальным идентификатором (например, int_a1b2 ). Если false , CLI будет использовать поток, указанный параметром thread . | false |
track_token_usage | Если установить на TRUE, отображает общее использование токена после каждого запроса в режиме Query, помогая вам контролировать использование API. | false |
debug | Если установлено в True, печатает данные о запросе RAW и ответа во время вызовов API, полезных для отладки. | false |
skip_tls_verify | Если установить True, пропустите проверку сертификата TLS, позволяя небезопасные HTTPS -запросы. | false |
multiline | Если установить на True, включите многослойный режим ввода в интерактивных сеансах. | false |
| Переменная | Описание | По умолчанию |
|---|---|---|
api_key | Ваш ключ API. | (Нет для безопасности) |
model | Модель GPT, используемая приложением. | 'GPT-3,5-Turbo' |
max_tokens | Максимальное количество токенов, которые можно использовать в одном вызове API. | 4096 |
context_window | Ограничение памяти для того, сколько в разговоре можно вспомнить за один раз. | 8192 |
role | Роль системы | «Вы полезный помощник». |
temperature | Какая температура выборки для использования, от 0 до 2. Более высокие значения делают выход более случайным; Более низкие значения делают его более сфокусированным и детерминированным. | 1.0 |
frequency_penalty | Число между -2,0 и 2,0. Положительные значения наказывают новые токены на основе их существующей частоты в тексте до сих пор. | 0,0 |
top_p | Альтернатива выборке с температурой, называемой отбором отбора ядра, где модель рассматривает результаты токенов с массой вероятности TOP_P. | 1.0 |
presence_penalty | Число между -2,0 и 2,0. Положительные значения наказывают новые токены на основе того, появляются ли они в тексте до сих пор. | 0,0 |
seed | Устанавливает семена для детерминированной выборки (бета). Повторные запросы с теми же семенами и параметрами направлены на то, чтобы вернуть тот же результат. | 0 |
url | Базовый URL для API Openai. | 'https://api.openai.com' |
completions_path | Конечная точка API для завершения. | '/v1/chat/opplions' |
models_path | Конечная точка API для доступа к информации модели. | '/v1/models' |
auth_header | Заголовок, используемый для разрешения в запросах API. | «Разрешение» |
auth_token_prefix | Префикс должен быть добавлен перед токеном в auth_header . | 'Носитель' |
По умолчанию CHATGPT CLI хранит конфигурацию и файлы истории в каталоге ~/.chatgpt-cli . Тем не менее, вы можете легко переопределить эти местоположения, установив переменные среды, позволяя хранить конфигурацию и историю в пользовательских каталогах.
| Переменная среды | Описание | Местоположение по умолчанию |
|---|---|---|
OPENAI_CONFIG_HOME | Переопределяет путь каталога конфигурации по умолчанию. | ~/.chatgpt-cli |
OPENAI_DATA_HOME | Переопределяет путь каталога данных по умолчанию. | ~/.chatgpt-cli/history |
Чтобы изменить конфигурацию по умолчанию или каталоги данных, установите соответствующие переменные среды:
export OPENAI_CONFIG_HOME="/custom/config/path"
export OPENAI_DATA_HOME="/custom/data/path"
Если эти переменные среды не установлены, приложение по умолчанию по умолчанию ~/.chatgpt-cli для файлов конфигурации и ~ /.chatgpt-cli/history для истории.
%date : текущая дата в формате YYYY-MM-DD .%time : текущее время в формате HH:MM:SS .%datetime : текущая дата и время в формате YYYY-MM-DD HH:MM:SS .%counter : общее количество запросов в текущем сеансе.%usage : использование в общем использовании токенов (работает только в режиме запроса). По умолчанию могут быть переопределены, предоставляя свои собственные значения в файле конфигурации пользователя. Структура этого файла отражает структуру конфигурации по умолчанию. Например, чтобы переопределить параметры model и max_tokens , ваш файл может выглядеть так:
model : gpt-3.5-turbo-16k
max_tokens : 4096 Это изменяет model к gpt-3.5-turbo-16k и регулирует max_tokens до 4096 . Все остальные параметры, такие как url , completions_path и models_path , могут быть аналогично изменены. Если файл конфигурации пользователя не может быть доступен или отсутствует, приложение прибегает к конфигурации по умолчанию.
Другим способом настройки значений без вручного редактирования файла конфигурации является использование переменных среды. Атрибут name образует префикс для этих переменных. В качестве примера, model может быть изменена с помощью переменной среды OPENAI_MODEL . Точно так же, чтобы отключить историю во время выполнения команды, используйте:
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?Этот подход особенно полезен для временных изменений или для тестирования различных конфигураций.
Кроме того, вы можете использовать флаг --config или -c для просмотра настоящей конфигурации. Эта удобная функция позволяет пользователям быстро проверять свои текущие настройки без необходимости вручную проверять файлы конфигурации.
chatgpt --configВыполнение этой команды будет отображать активную конфигурацию, включая любые переопределения, учрежденные переменными среды или файлом конфигурации пользователя.
Чтобы облегчить удобные настройки, CHATGPT CLI предоставляет флаги для быстрого изменения параметров model , thread , context-window и max_tokens в вашем пользователе, настроенном config.yaml . Эти флаги --set-model , --set-thread , --set-context-window и --set-max-tokens .
Например, чтобы обновить модель, используйте следующую команду:
chatgpt --set-model gpt-3.5-turbo-16kЭта функция обеспечивает быстрые изменения в параметрах конфигурации ключей, оптимизируя ваш опыт с CHATGPT CLI.
Для Azure используйте конфигурацию, аналогичную:
name : azure
api_key : <your_key>
model : <not relevant, read from the completions path>
max_tokens : 4096
context_window : 8192
role : You are a helpful assistant.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : default
omit_history : false
url : https://<your_resource>.openai.azure.com
completions_path : /openai/deployments/<your_deployment>/chat/completions?api-version=<your_api>
models_path : /v1/models
auth_header : api-key
auth_token_prefix : " "
command_prompt : ' [%datetime] [Q%counter] '
auto_create_new_thread : false
track_token_usage : false
debug : falseВы можете установить ключ API либо в файле config.yaml, как показано выше, или экспортировать его в качестве переменной среды:
export AZURE_API_KEY= < your_key >Для недоумения используйте конфигурацию, аналогичную:
name : perplexity
api_key : " "
model : llama-3.1-sonar-small-128k-online
max_tokens : 4096
context_window : 8192
role : Be precise and concise.
temperature : 1
top_p : 1
frequency_penalty : 0
presence_penalty : 0
thread : test
omit_history : false
url : https://api.perplexity.ai
completions_path : /chat/completions
models_path : /models
auth_header : Authorization
auth_token_prefix : ' Bearer '
command_prompt : ' [%datetime] [Q%counter] [%usage] '
auto_create_new_thread : true
track_token_usage : true
debug : falseВы можете установить ключ API либо в файле config.yaml, как показано выше, или экспортировать его в качестве переменной среды:
export PERPLEXITY_API_KEY= < your_key > Вы можете установить ключ API либо в файле config.yaml как показано выше, или экспортировать его в качестве переменной среды:
export AZURE_API_KEY= < your_key >Улучшите свой опыт CLI с нашей новой функцией автозаполнения для командных флагов!
Автозаполнение в настоящее время поддерживается для следующих оболочек: Bash, ZSH, Fish и PowerShell. Чтобы активировать завершение флага в вашем текущем сеансе оболочки, выполните соответствующую команду на основе вашей оболочки:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression Для добавленного удобства вы можете обеспечить постоянное автозаполнение во всех новых сеансах оболочки, добавив соответствующую команду Sourcing в файл запуска вашей оболочки. Вот файлы, обычно используемые для каждой оболочки:
.bashrc или .bash_profile.zshrcconfig.fish Например, для Bash вы добавите следующую строку в свой файл .bashrc :
. <( chatgpt --set-completions bash )Это гарантирует, что автозаполнение командного флага включена автоматически каждый раз, когда вы открываете новое окно терминала.
Вы можете отобразить отметки в режиме реального времени, используя сценарий mdrender.sh , расположенный здесь. Сначала вам нужно установить сияние.
Пример:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh Чтобы начать разработку, установите переменную среды OPENAI_API_KEY на свой секретный ключ CHATGPT.
Makefile упрощает задачи разработки, предоставляя несколько целей для тестирования, строительства и развертывания.
make all-testsmake binariesmake shipitmake updatedepsДля получения дополнительных доступных команд, используйте:
make help .scriptsinstall.ps1После успешной сборки протестируйте приложение со следующей командой:
./bin/chatgpt what type of dog is a Jack Russel ?Как упоминалось ранее, CHATGPT CLI поддерживает отслеживание истории разговоров по звонкам CLI. Эта функция создает бесшовный и разговорной опыт с моделью GPT, поскольку история используется в качестве контекста в последующих взаимодействиях.
Чтобы включить эту функцию, вам нужно создать каталог ~/.chatgpt-cli используя команду:
mkdir -p ~ /.chatgpt-cliЕсли вы сталкиваетесь с какими -либо проблемами или у вас есть предложения по улучшению, пожалуйста, отправьте проблему на GitHub. Мы ценим ваши отзывы и вклад, чтобы помочь сделать этот проект лучше.
Если по какой -либо причине вы хотите удалить приложение CHATGPT CLI из своей системы, вы можете сделать это, выполнив эти шаги:
Если вы установили CLI с помощью Homebrew, вы можете сделать:
brew uninstall chatgpt-cliИ удалить крана:
brew untap kardolus/chatgpt-cliЕсли вы установили двоичный файл напрямую, следуйте этим шагам:
Удалите бинарный:
sudo rm /usr/local/bin/chatgpt При желании, если вы хотите удалить каталог отслеживания истории, вы также можете удалить каталог ~/.chatgpt-cli :
rm -rf ~ /.chatgpt-cli Перейдите в местонахождение бинарного chatgpt в вашей системе, которая должна быть на вашем пути.
Удалить бинарное chatgpt .
При желании, если вы хотите удалить отслеживание истории, перейдите в каталог ~/.chatgpt-cli (где ~ относится к домашнему каталогу вашего пользователя) и удалите его.
Обратите внимание, что каталог отслеживания истории ~/.chatgpt-cli содержит только историю разговоров и никаких личных данных. Если у вас есть какие -либо опасения по поводу этого, пожалуйста, не стесняйтесь удалить этот каталог во время удаления.
Спасибо, что использовали CHATGPT CLI!