
測試並與Openai Chatgpt,Azure Openai服務,困惑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的差異數據指導模型的響應。
有關各種現成的提示,請查看此很棒的提示庫。這些可以作為您自己的自定義提示的重要起點或靈感!
您可以使用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秘密鍵。要設置環境變量,您可以將以下行添加到shell配置文件(例如,〜/.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或 - 列表模型標誌:
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)的新線程(例如, 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 | 用溫度採樣的替代方法,稱為Nucleus採樣,該模型考慮了具有TOP_P概率質量質量的令牌的結果。 | 1.0 |
presence_penalty | -2.0和2.0之間的數字。正值基於到目前為止是否出現在文本中的新代幣。 | 0.0 |
seed | 為確定性抽樣(beta)設置種子。具有相同種子和參數的重複請求旨在返回相同的結果。 | 0 |
url | OpenAI API的基本URL。 | 'https://api.openai.com' |
completions_path | 完整的API端點。 | '/v1/chat/完成' |
models_path | 訪問模型信息的API端點。 | '/v1/型號 |
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 and --set-max-tokens 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體驗!
目前為以下外殼提供了自動完成:bash,Zsh,Fish和Powershell。要激活當前外殼會話中的標誌完成,請根據您的外殼執行適當的命令:
. <( chatgpt --set-completions bash ) . <( chatgpt --set-completions zsh )chatgpt --set-completions fish | sourcechatgpt -- set-completions powershell | Out-String | Invoke-Expression 為了增加方便,您可以通過將適當的源命令添加到Shell的啟動文件中,使所有新的外殼會話中的自動完成持續存在。這是通常用於每個外殼的文件:
.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 Secret Key。
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安裝了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!