Openai的Chatgpt,Dall-E,Whisper和TTS的外壳包装器。具有Localai,Ollama,Gemini,Mistral,Groq和GitHub模型集成。
默认情况下,通过流式传输聊天完成。
现在会自动触发响应上的降级处理!
聊天响应(可选)的降级渲染。
在纯文本完成中,首先键入一些将要完成的文本,例如新闻,故事或诗歌。
添加将要完成的插入标签[insert] 。 Mistral code models与插入 /中间填充(FIM)模式效果很好!如果没有后缀,则可以作为纯文本完成。
options -cczw )BashcURL和JQ特定功能所需的包装。
Base64图像端点,多模式模型Python模块Tiktoken,Markdown,BS4ImageMagick / fbida图像编辑和变化SoX / Arecord / FFmpeg记录输入(耳语)mpv / SoX / Vlc / FFplay / afplay播放TTS输出xdg-open / open / xsel / xclip / pbcopy打开图像,设置剪贴板W3M / Lynx / ELinks / Links转储URL文本bat / Pygmentize / Glow / mdcat / mdless -MARKDOEN -SUPPORTtermux-api / termux-tools / play-audio termux系统poppler / gs / abiword / ebook-convert / LibreOffice -dump pdf或doc作为文本dialog / kdialog / zenity / osascript / termux-dialog文件选择器答:下载独立的chatgpt.sh脚本,使其可执行:
wget https://gitlab.com/fenixdragao/shellchatgpt/-/raw/main/chatgpt.sh
chmod +x ./chatgpt.sh
B.或克隆此仓库:
git clone https://gitlab.com/fenixdragao/shellchatgpt.git
C.可选,下载并设置配置文件~/.chatgpt.conf :
#save configuration template:
chatgpt.sh -FF >> ~/.chatgpt.conf
#edit:
chatgpt.sh -F
# Or
vim ~/.chatgpt.conf
使用命令行options -cc ,会自动设置某些属性以创建聊天机器人。在聊天模式下开始新的会话,并设置不同的温度( GPT-3.5和GPT-4+型号):
chatgpt.sh -cc -t0.7
将最大响应长度更改为4K令牌:
chatgpt.sh -cc -4000
chatgpt.sh -cc -M 4000
或将模型令牌的容量更改为200k代币:
chatgpt.sh -cc -4000-200000
chatgpt.sh -cc -M 4000-200000
创建Marv,讽刺的机器人:
chatgpt.sh -512 -cc --frequency-penalty=0.7 --temp=0.8 --top_p=0.4 --restart-seq='nYou: ' --start-seq='nMarv:' --stop='You:' --stop='Marv:' -S'Marv is a factual chatbot that reluctantly answers questions with sarcastic responses.'
为新会话加载UNIX指令文件(“ Unix.pr”)。下面的命令行语法是所有别名:
chatgpt.sh -cc .unix
chatgpt.sh -cc.unix
chatgpt.sh -cc -.unix
chatgpt.sh -cc -S .unix
要仅记录会话的历史记录文件,请在命令中将第一个位置参数与操作员向前斜杠“ / ”和“历史记录文件”的名称(默认为/session命令)设置。
chatgpt.sh -cc /test
chatgpt.sh -cc /stest
chatgpt.sh -cc "/session test"
有一个快捷方式可以加载当前历史记录文件中的较旧会话。这打开了一个基本的相互界面。
chatgpt.sh -cc .
从技术上讲,这将旧会话从目标历史记录文件到其尾部复制,因此我们可以恢复会话。
要从与默认值不同的历史记录文件中加载较旧的会话,有一些选项。
为了与正则态度进行会议,进入聊天模式更容易,然后输入聊天命令/grep [regex] 。
要仅更改为定义的历史记录名称,请运行命令!session [name] 。
打印上一个会话,可选设置历史名称:
chatgpt.sh -P
chatgpt.sh -P /test
要将image / url发送到视觉模型,请启动脚本,然后使用一个或多个filepaths / url !img图像。
chatgpt.sh -cc -m gpt-4-vision-preview '!img path/to/image.jpg'
或者,在提示的末尾设置图像路径 / URL:
chatgpt.sh -cc -m gpt-4-vision-preview
[...]
Q: In this first user prompt, what can you see? https://i.imgur.com/wpXKyRo.jpeg
提示:运行聊天命令!info检查模型配置!
调试:设置option -V查看原始JSON请求主体。
为了简化工作之外,用户可以在提示的末端添加filepath或URL。然后读取文件,并将文本内容附加到用户提示符上。这是与任何模型一起使用的基本文本功能。
chatgpt.sh -cc
[...]
Q: What is this page: https://example.com
Q: Help me study this paper. ~/Downloads/Prigogine Perspective on Nature.pdf
在上面的第二个示例中, PDF将被丢弃为文本(交互式模式)。
对于PDF文本转储支持,需要poppler/abiword 。对于DOC和ODT文件,需要LibreOffice 。请参阅“可选软件包”部分。
另请注意,包含白色空间的文件路径必须是黑斜线,或者必须先于管道|特点。
My text prompt. | path/to the file.jpg
可以以这种方式将多个图像和音频文件附加到提示!
/pick命令打开一个文件选择器(通常是命令行文件管理器)。所选文件的路径将在编辑模式下附加到当前提示。
/pick和/sh命令可以在当前提示的末尾输入时运行,例如[PROMPT] /sh ,它打开了一个新的shell实例以进行交互执行命令。这些命令的输出附加到当前提示符。
当/pick命令在提示符的末尾运行时,所选的文件路径会改为附加。
包含白色空间的文件路径需要在某些功能中进行后斜线。
与演讲的聊天完成(Whisper Plus TTS):
chatgpt.sh -ccwz
在葡萄牙语中聊天,用小声聊天,并将Onyx设置为TTS声音:
chatgpt.sh -ccwz -- pt -- onyx
聊天模式提供了对话体验,促使用户确认每个步骤。
有关更自动执行的执行,请设置option -v和-vv ,以供无提人的体验(实时聊天与沉默检测),例如:
chatgpt.sh -cc -w -z -v
chatgpt.sh -cc -w -z -vv
音频模型(例如gpt-4o-audio )直接处理音频输入和输出,从而减少了对话转弯的延迟。
要激活脚本的麦克风记录功能,请设置命令行option -w 。
否则,音频模型接受任何兼容的音频文件(例如mp3 , wav和opus )。可以添加这些文件以在用户提示符的末尾加载,也可以使用聊天命令/audio path/to/file.mp3添加。
如上所述,要激活音频模型的音频输出模式,请设置命令行option -z以确保启用语音合成功能!
chatgpt.sh -cc -w -z -vv -m "gpt-4o-audio-preview"
请注意,这不会实现实时模型。
当设置文本完成以与option -c聊天时,会自动配置某些属性以指示机器人。
chatgpt.sh -c "Hello there! What is your name?"
这是纯文本完成端点。它通常用于完成输入文本,例如完成论文的一部分。
要从命令行输入提示符中完成文本,请设置option -d或设置文本完成模型名称。
chatgpt.sh -128 -m gpt-3.5-turbo-instruct "Hello there! Your name is"
chatgpt.sh -128 -d "The journalist loo"
以上示例还将最大响应值设置为128个令牌。
输入单转交互模式:
chatgpt.sh -d
注意:对于具有历史支持的多转弯模式,请设置option -dd 。
语言模型可能需要强大的指示提示。
设置指令提示以取得更好的结果:
chatgpt.sh -d -S 'The following is a newspaper article.' "It all starts when FBI agents arrived at the governor house and"
chatgpt.sh -d -S'You are an AI assistant.' "The list below contain the 10 biggest cities in the w"
设置option -q (或乘以多元的-qq )启用插入模式并添加字符串[insert] ,模型应在其中插入文本:
chatgpt.sh -q 'It was raining when [insert] tomorrow.'
注意:此示例无需任何说明提示即可!在此模式下的指令提示可能会干扰插入完成。
注意:插入模式与模型instruct models一起使用。
Mistral AI具有一个不错的FIM(中间填充)端点,可与code模型一起使用,非常好!
要启用响应的标记渲染,请在聊天模式下设置命令行option --markdown或运行/md 。要在Markdown中呈现最后一个响应,请运行//md 。
Markdown选项使用bat ,因为默认情况下具有线路缓冲,但是支持其他软件。将其设置为--markdown=glow或/md mdless在聊天模式下。
键入以下任何一个标记软件作为选项的参数: bat , pygmentize , glow , mdcat或mdless 。
除非设置聊天option -c或-cc ,否则对语言模型没有任何指示。在聊天模式下,如果未设置指令,则提供最少的指令,并设置了一些选项,例如增加温度和持有性惩罚,以便将机器人放大。
及时的工程本身就是一门艺术。仔细研究如何制作最佳提示,从而充分利用文本,代码和聊天完成模型。
模型转向和功能需要及时的工程才能知道它应该回答问题。
设置一个带有option -S的单发指令提示:
chatgpt.sh -cc -S 'You are a PhD psycologist student.'
chatgpt.sh -ccS'You are a professional software programmer.'
要创建或加载提示模板文件,请将第一个位置参数设置为.prompt_name或,prompt_name 。在第二种情况下,加载提示并进行单杆编辑。
chatgpt.sh -cc .psycologist
chatgpt.sh -cc ,software_programmer
另外,将运算符的设置option -S和提示的名称作为参数:
chatgpt.sh -cc -S .psycologist
chatgpt.sh -cc -S,software_programmer
如果不存在,这将加载自定义提示或创建它。在第二个示例中,加载提示software_programmer之后将提供单次剪辑编辑。
请注意,并确保备份您重要的自定义提示!它们位于“ ~/.cache/chatgptsh/ “使用扩展” .pr ”。
设置来自Awesome-Chatgpt-Prompts或Awesome-Chatgpt-Prompts-ZH的提示(与Davinci和GPT-3.5+型号一起使用):
chatgpt.sh -cc -S /linux_terminal
chatgpt.sh -cc -S /Relationship_Coach
chatgpt.sh -cc -S '%担任雅思写作考官'
该项目包括外壳完成,以增强用户命令行体验。
以下以下方法安装以下方法之一。
整个系统
sudo cp comp/bash/chatgpt.sh /usr/share/bash-completion/completions/
特定于用户
mkdir -p ~/.local/share/bash-completion/completions/
cp comp/bash/chatgpt.sh ~/.local/share/bash-completion/completions/
访问Bash-Completion存储库。
在系统位置安装
sudo cp comp/zsh/_chatgpt.sh /usr/share/zsh/site-functions/
特定于用户的位置
要设置特定于用户的完成,请确保将完成脚本放在$fpath数组中的目录下。
例如,用户可以创建~/.zfunc/ Directory,并将以下行添加到她的~/.zshrc :
[[ -d ~/.zfunc ]] && fpath=(~/.zfunc $fpath)
autoload -Uz compinit
compinit
确保在设置$fpath之后运行compinit !
访问ZSH-Completion存储库。
BASH和ZSH的完成应在新的终端会话中活跃。如果没有,请确保您的~/.bashrc和~/.zshrc正确地源完整文件。
YouTube功能将仅获得YouTube视频标题及其成绩单(如果有的话)。
PDF支持功能提取PDF文本(无图像),并将其附加到用户请求中。
与任何一个操作员一起运行聊天命令!或者/ 。
用命令!hist ,以进行上下文注入。
/或//在新请求之前进行了最后提示,可以通过键入新提示来再生响应。 根据提示生成图像:
chatgpt.sh -i "Dark tower in the middle of a field of red roses."
chatgpt.sh -i "512x512" "A tower."
生成图像变化:
chatgpt.sh -i path/to/image.png
chatgpt.sh -i path/to/image.png path/to/mask.png "A pink flamingo."
在此示例中,用白色制成面具。
在夜空中添加蝙蝠。
从音频文件演讲中生成转录。指导模型样式的提示是可选的。提示应与语言语言匹配:
chatgpt.sh -w path/to/audio.mp3
chatgpt.sh -w path/to/audio.mp3 "en" "This is a poem about X."
1。从语音记录中生成转录,将葡萄牙语设置为要抄录到的语言:
chatgpt.sh -w pt
这也可以从一种语言转录到另一种语言。
2。将任何语言语音输入转录到日语(提示应与输入音频语言相同):
chatgpt.sh -w ja "A job interview is currently being done."
3.1将英语语音输入转换为日语,并从文本响应中产生语音输出。
chatgpt.sh -wz ja "Getting directions to famous places in the city."
3.2另外,相反,这为两种不同语言的演讲者(手动)对话转弯提供了机会。下面,日语说话者可以翻译其声音并以目标语言生成音频。
chatgpt.sh -wz en "Providing directions to famous places in the city."
4。将语音从任何语言转换为英语:
chatgpt.sh -W [audio_file]
chatgpt.sh -W
要用保存在缓存中的最后一个麦克风记录重试,请将audio_file设置为last或retry 。
注意:生成短语级时间戳双设置option -ww或option -WW 。对于文字级时间戳,设置选项-www或-WWW 。
确保您已经设置并运行了Mudler的Localai,服务器。
该服务器可以作为Docker容器运行,也可以下载二进制文件。检查Localai教程容器图像,并手动运行模型以获取有关如何安装,下载模型和设置的想法。
┌───────────────────────────────────────────────────┐
│ Fiber v2.50.0 │
│ http://127.0.0.1:8080 │
│ (bound on host 0.0.0.0 and port 8080) │
│ │
│ Handlers ............. 1 Processes ........... 1 │
│ Prefork ....... Disabled PID ..................1 │
└───────────────────────────────────────────────────┘
1。从Mudler的Release GitHub Repo下载localai的二进制文件。
2。运行localai run --help以检查Comamnd行选项和环境变量。
3。在启动服务器之前设置$GALLERIES :
export GALLERIES='[{"name":"localai", "url":"github:mudler/localai/gallery/index.yaml"}]' #defaults
export GALLERIES='[{"name":"model-gallery", "url":"github:go-skynet/model-gallery/index.yaml"}]'
export GALLERIES='[{"name":"huggingface", "url": "github:go-skynet/model-gallery/huggingface.yaml"}]'
4。在服务器运行时,请从yaml文件中安装名为phi-2-chat的模型:
curl -L http://localhost:8080/models/apply -H "Content-Type: application/json" -d '{ "config_url": "https://raw.githubusercontent.com/mudler/LocalAI/master/embedded/models/phi-2-chat.yaml" }'
最后,运行chatgpt.sh时,设置模型名称:
chatgpt.sh --localai -cc -m luna-ai-llama2
可能需要设置一些停止序列,以防止模型生成文本过去的上下文:
chatgpt.sh --localai -cc -m luna-ai-llama2 -s'### User:' -s'### Response:'
可选设置重新启动并启动文本完成端口端点( option -c ),例如-s'n### User: ' -s'n### Response:' (请正确设置newlines n和whitespaces )。
就是这样!
模型名称可以用chatgpt.sh -l打印。可以将模型作为参数提供,因此仅显示模型细节。
注意:模型管理(下载和设置)必须遵循Localai和Ollama项目指南和方法。
对于图像生成,请从url github:go-skynet/model-gallery/stablediffusion.yaml ,对于语音转录,从url github:go-skynet/model-gallery/whisper-base.yaml 。
如果服务提供商碱URL与默认值不同。
环境可变$OPENAI_BASE_URL在调用时读取。
export OPENAI_BASE_URL="http://127.0.0.1:8080/v1"
chatgpt.sh -c -m luna-ai-llama2
要以更永久的方式设置A,请编辑脚本配置文件.chatgpt.conf 。
使用vim:
vim ~/.chatgpt.conf
或使用Comamnd行选项编辑配置。
chatgpt.sh -F
并设置以下变量:
# ~/.chatgpt.conf
OPENAI_BASE_URL="http://127.0.0.1:8080/v1"
访问Ollama存储库,并按照说明进行安装,下载模型并设置服务器。
在运行Ollama服务器后,设置option -O ( --ollama ),并在chatgpt.sh中设置模型名称:
chatgpt.sh -cc -O -m llama2
如果Ollama Server URL不是默认值http://localhost:11434 ,编辑chatgpt.sh配置文件,并设置以下变量:
# ~/.chatgpt.conf
OLLAMA_BASE_URL="http://192.168.0.3:11434"
获取免费的API密钥,让Google能够使用双子座和视觉模型。用户的带宽为每分钟60个请求,脚本提供了API的基本实现。
设置EnviroMent变量$GOOGLE_API_KEY并使用option --google运行脚本,例如:
chatgpt.sh --google -cc -m gemini-pro-vision
OBS :Google Gemini Vision模型未启用用于API端的多弯曲,因此我们将其入侵。
要列出所有可用型号,请运行chatgpt.sh --google -l 。
设置一个Mistral AI帐户,声明Enviroment变量$MISTRAL_API_KEY ,并使用option --mistral以进行完整集成。
登录Groq。创建一个新的API键或使用现有的键来设置环境变量$GROQ_API_KEY 。使用option --groq 。
目前, Llamma3.1型号以闪电速度可用!
登录肛门AI。创建一个新的API键或使用现有的键来设置环境变量$ANTHROPIC_API_KEY 。用option --anthropic或--ant 。
检查Claude-3型号!将脚本运行为:
chatgpt.sh --anthropic -cc -m claude-3-5-sonnet-20240620
该脚本还可以通过诸如claude-2.1之类的模型来完成文本完成,尽管API文档将其标记为弃用。
尝试:
chatgpt.sh --ant -c -m claude-2.1
Github已与Azure合作使用其infratructure。
作为GitHub用户,加入候补名单,然后生成个人令牌。设置环境变量$GITHUB_TOKEN ,并使用option --github或--git运行脚本。
检查在线模型列表,或使用chatgpt.sh --github -l列出可用型号及其原始名称。
chatgpt.sh --github -cc -m Phi-3-small-8k-instruct
另请参见GitHub模型目录 - 入门页面。
Novita AI提供了一系列具有特殊价值的LLM型号,包括强烈推荐的Llama 3.3型号,可提供最佳的价格和性能平衡!
对于未经审查的模型,请考虑SAO10K/L3-70B-EURYALE-V2.1 (创意助理和角色扮演)或CognitiveComputations/Dolphin-Mixtral-8x22b 。
根据快速启动指南创建一个API密钥,并将您的密钥作为$NOVITA_API_KEY导出到您的环境中。
接下来,运行脚本,例如chatgpt.sh --novita -cc 。
检查模型列表网页和每个型号的价格。
要列出所有可用的型号,请运行chatgpt.sh --novita -l 。可选地将带有option -l的模型名称设置为转储模型详细信息。
有些模型可与/completions端点一起使用,而另一些模型可以与/chat/completions端点一起使用,因此脚本不会自动设置端点!检查模型详细信息和网页以了解其功能,然后使用option -c (文本完成)或options -cc (聊天完成)运行脚本。
作为练习,而不是设置命令行option --novita ,而是手动设置Novita AI集成:
export OPENAI_API_KEY=novita-api-key
export OPENAI_BASE_URL="https://api.novita.ai/v3/openai"
chatgpt.sh -cc -m meta-llama/llama-3.1-405b-instruct
我们感谢Novita AI的支持和协作。有关更多信息,请访问Novita AI。
访问Xai Grok以生成API密钥(环境$XAI_API_KEY )。
使用option --xai以及option -cc (聊天完成。)运行脚本。
一些模型还可以与本地文本完成。为此,设置命令行option -c 。
该项目PKGBuild可在Arch Linux用户存储库( AUR )上获得,可在Arch Linux和衍生发行版中安装该软件。
要从AUR安装程序,您可以使用像yay或paru这样的AUR助手。例如,与yay :
yay -S chatgpt.sh
从F-Droid Store安装Termux和Termux:API应用程序。
在手机应用程序设置中授予Termux:API的所有权限。
我们还建议还安装sox , ffmpeg , pulseaudio , imagemagick和vim (或nano )。
请记住执行termux-setup-storage以设置对手机存储的访问。
在术语中,安装termux-api和termux-tools软件包( pkg install termux-api termux-tools )。
录制音频(窃窃私语, option -w )时,如果正确配置了pulseaudio ,则脚本使用sox , ffmpeg或其他合格的软件,否则将默认为termux-microphone-record
同样,播放音频(TTS, option -z )时,取决于pulseaudio配置使用sox , mpv或后备到Termux包装器播放( play-audio是可选的)。
要设置剪贴板,需要从termux-api软件包中termux-clipboard-set 。
TTS输入中的降级可能会使模型语音生成一点结束。如果可以使用python模块markdown和bs4 ,则TTS输入将转换为纯文本。作为后备,如果存在(仅聊天模式),则使用pandoc 。
在Termux下,请确保将系统更新和安装,并使用python , rust和rustc-dev套件进行构建tiktoken 。
pkg update
pkg upgrade
pkg install python rust rustc-dev
pip install tiktoken
为了将术语设置为录制麦克风并播放音频(使用sox和ffmpeg ),请按照以下说明进行操作。
答:仅设置pulseaudio一次,执行:
pulseaudio -k
pulseaudio -L "module-sles-source" -D
B.设置永久配置:
pulseaudio -k杀死该过程。load-module module-sles-source添加到其中一个文件中: ~/.config/pulse/default.pa
/data/data/com.termux/files/usr/etc/pulse/default.pa
pulseaudio -D重新启动服务器。 C.要创建一个新的用户~/.config/pulse/default.pa ,您可以从以下模板开始:
#!/usr/bin/pulseaudio -nF
.include /data/data/com.termux/files/usr/etc/pulse/default.pa
load-module module-sles-source
要使用Android的文件管理器访问您的Termux文件,请从play商店安装一个像样的文件管理器,例如FX File Explorer并进行配置,或在您的Termux终端中运行以下命令:
am start -a android.intent.action.VIEW -d "content://com.android.externalstorage.documents/root/primary"
来源:https://www.reddit.com/r/termux/comments/182g7np/where_do_do_i_find_my_my_things_thats_that_i_i_downolaad/
实现OpenAI API version 1的不错功能。
提供最近的API默认值。
让用户自定义默认值(作为家庭作业)。
chatgpt.sh version 1.0的Première应在OpenAI启动其下一个主要API版本更新时发生。
快乐2024坟墓!
OpenAI API版本1是本项目实施的重点。并非所有API的功能都将涵盖。
该项目不支持“函数调用”或“结构化输出”。
可能,我们将不支持“实时”聊天或视频方式。
bash shell截断输入