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和pkg install termux-api termux-tools termux-tools 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截斷輸入