
测试并与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 。
例如,要更新模型,请使用以下命令:
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!