
Openai Chatgpt, Azure Openai Service, Perplexity AI 및 Llama와 테스트 및 호환됩니다!
ChatGpt CLI는 OpenAI 및 Azure를 통해 ChatGpt 모델과 원활한 상호 작용을위한 강력한 명령 줄 인터페이스를 제공하며 스트리밍 기능과 광범위한 구성 옵션을 특징으로합니다.

context-window 설정을 통해 조정할 수 있습니다.-l 또는 --list-models 플래그를 사용하여 사용 가능한 모델 목록에 액세스하십시오.--list-threads 플래그를 사용하여 활성 스레드 목록을 표시합니다.config.yaml 파일 및 환경 변수를 통해 설정을 지정할 수있는 계층화 된 구성 시스템을 지원합니다. 빠른 조정을 위해 다양한 --set-<value> 플래그가 제공됩니다. 현재 설정을 확인하려면 --config 또는 -c 플래그를 사용하십시오. 버전 1.7.1 의 --prompt 플래그가 포함 된 프롬프트 파일에 대한 지원을 도입하게되어 기쁩니다! 이 기능을 사용하면 파일에서 직접 대화를위한 풍부하고 상세한 컨텍스트를 제공 할 수 있습니다.
--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 프롬프트 파일의 컨텐츠는 git diff 의 diff 데이터를 기반으로 모델의 응답을 안내하는 데 사용됩니다.
다양한 즉시 사용 가능한 프롬프트를 보려면이 멋진 프롬프트 저장소를 확인하십시오. 이것들은 자신의 커스텀 프롬프트에 대한 훌륭한 출발점이나 영감으로 사용될 수 있습니다!
Homebrew를 사용하여 Chatgpt-Cli를 설치할 수 있습니다.
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 디렉토리 (또는 Windows의 % 경로 %)로 이동하여 쉽게 액세스 할 수 있도록 시스템에 대한 적절한 명령을 선택하십시오.
OPENAI_API_KEY 환경 변수를 ChatGpt 비밀 키로 설정하십시오. 환경 변수를 설정하려면 다음 줄을 쉘 프로파일 (예 : ~/.bashrc, ~/.zshrc 또는 ~/.bash_profile)에 추가 할 수 있으며 실제 키로 대체 할 수 있습니다.
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 로 설정되어 있는지 확인하십시오. 이렇게하면 각 대화식 세션에 대해 고유 한 스레드 식별자가 생성됩니다.
파이프 기능을 사용하려면 컨텍스트가 포함 된 텍스트 파일을 만듭니다. 예를 들어, 다음 내용으로 컨텍스트 .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 파일 및 기본값에 다른 수준의 우선 순위가 지정된 4 계층 구성 전략을 채택합니다.
| 변하기 쉬운 | 설명 | 기본 |
|---|---|---|
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로 설정된 경우 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 | OpenAI API의 기본 URL. | 'https://api.openai.com' |
completions_path | 완료를위한 API 엔드 포인트. | '/v1/채팅/완료' |
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 속성은 이러한 변수의 접두사를 형성합니다. 예를 들어, OPENAI_MODEL 환경 변수를 사용하여 model 수정할 수 있습니다. 마찬가지로, 명령을 실행하는 동안 기록을 비활성화하려면 사용하십시오.
OPENAI_OMIT_HISTORY=true chatgpt what is the capital of Denmark ?이 접근법은 특히 일시적인 변화 또는 다양한 구성 테스트에 유리합니다.
또한 --config 또는 -c 플래그를 사용하여 현재 구성을 볼 수 있습니다. 이 편리한 기능을 통해 사용자는 구성 파일을 수동으로 검사 할 필요없이 현재 설정을 신속하게 확인할 수 있습니다.
chatgpt --config이 명령을 실행하면 환경 변수 또는 사용자 구성 파일에 의해 설립 된 재정의를 포함하여 활성 구성이 표시됩니다.
편리한 조정을 용이하게하기 위해 ChatGpt CLI는 사용자 구성 구성 구성. config.yaml 에서 model , thread , context-window 및 max_tokens 매개 변수를 신속하게 수정하기위한 플래그를 제공합니다. 이 플래그는 --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위에 표시된대로 config.yaml 파일에서 API 키를 설정하거나 환경 변수로 내보낼 수 있습니다.
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위에 표시된대로 config.yaml 파일에서 API 키를 설정하거나 환경 변수로 내보낼 수 있습니다.
export PERPLEXITY_API_KEY= < your_key > 위에 표시된대로 config.yaml 파일에서 API 키를 설정하거나 환경 변수로 내보낼 수 있습니다.
export AZURE_API_KEY= < your_key >명령 플래그에 대한 새로운 자동 완성 기능으로 CLI 경험을 향상시킵니다!
Autocompletion은 현재 Bash, Zsh, Fish 및 PowerShell의 다음 껍질에 대해 지원됩니다. 현재 쉘 세션에서 플래그 완료를 활성화하려면 쉘에 따라 적절한 명령을 실행하십시오.
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression 편의를 위해 쉘의 시작 파일에 적절한 소싱 명령을 추가하여 모든 새로운 쉘 세션에서 자동 완성을 유지할 수 있습니다. 다음은 각 쉘에 일반적으로 사용되는 파일입니다.
.bashrc 또는 .bash_profile 에 추가하십시오.zshrc 에 추가하십시오config.fish 에 추가하십시오 예를 들어, bash의 경우 .bashrc 파일에 다음 줄을 추가합니다.
. <( chatgpt --set-completions bash )따라서 새 터미널 창을 열 때마다 명령 플래그 AutoCompletion이 자동으로 활성화되도록합니다.
여기에있는 mdrender.sh 스크립트를 사용하여 마크 다운을 실시간으로 렌더링 할 수 있습니다. 먼저 글로우를 설치해야합니다.
예:
chatgpt write a hello world program in Java | ./scripts/mdrender.sh 개발을 시작하려면 OPENAI_API_KEY 환경 변수를 ChatGpt Secret 키로 설정하십시오.
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 애플리케이션을 제거하려면 다음 단계를 수행하여 수행 할 수 있습니다.
Homebrew를 사용하여 CLI를 설치 한 경우 다음을 수행 할 수 있습니다.
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를 사용해 주셔서 감사합니다!