SGPT ( alias Shell-GPT ) adalah alat antarmuka baris perintah (CLI) yang kuat yang dirancang untuk interaksi tanpa batas dengan model OpenAI langsung dari terminal Anda. Jalankan permintaan dengan mudah, hasilkan perintah shell atau kode, buat gambar dari teks, dan banyak lagi, menggunakan perintah sederhana. Rampingkan alur kerja Anda dan tingkatkan produktivitas dengan alat CLI yang kuat dan ramah pengguna ini.
Dikembangkan dengan bantuan SGPT.
Ini adalah implementasi GO. Untuk implementasi Python asli, kunjungi Shell-GPT. Harap ingat ini saat melaporkan masalah.
Catatan: Saat ini di bawah refactoring berat untuk V3, tetapi V2 masih dipertahankan.
Dengan menawarkan fitur -fitur serbaguna ini, SGPT berfungsi sebagai alat yang ampuh untuk meningkatkan produktivitas Anda secara keseluruhan, merampingkan alur kerja Anda, dan menyederhanakan tugas -tugas kompleks.
SGPT telah diuji pada rilis Ubuntu LTS dan diharapkan kompatibel dengan distribusi Linux berikut:
Untuk menginstal, unduh rilis terbaru dari halaman rilis dan gunakan Paket Manajer khusus untuk distribusi Anda.
Untuk pengguna dengan homebrew sebagai manajer paket mereka, jalankan perintah berikut di terminal:
brew install tbckr/tap/sgptUntuk pengguna dengan sendok sebagai manajer paket mereka, jalankan perintah ini di PowerShell:
scoop bucket add tbckr https://github.com/tbckr/scoop-bucket.git
scoop install tbckr/sgptUntuk menginstal SGPT dengan Go, berdasarkan tag git, gunakan perintah ini:
go install github.com/tbckr/sgpt/v2/cmd/sgpt@latestUntuk menjalankan SGPT dengan Docker, gunakan perintah berikut untuk menarik gambar terbaru:
docker pull ghcr.io/tbckr/sgpt:latestContoh tentang cara menggunakan SGPT dengan Docker dapat ditemukan di sini.
Untuk menginstal SGPT dengan ansible, Anda dapat menggunakan buku pedoman ansible berikut sebagai basis Anda dan beradaptasi sesuai:
---
- hosts : all
tasks :
- name : Get latest sgpt release
uri :
url : " https://api.github.com/repos/tbckr/sgpt/releases/latest "
return_content : yes
register : sgpt_release
- name : Set latest version of sgpt
set_fact :
sgpt_latest_version : " {{ sgpt_release.json.tag_name }} "
- name : Install sgpt for debian based, amd64 systems
ansible.builtin.apt :
deb : https://github.com/tbckr/sgpt/releases/download/{{ sgpt_latest_version }}/sgpt_{{ sgpt_latest_version[1:] }}_amd64.deb
allow_unauthenticated : trueBuku pedoman dapat dijalankan dengan perintah berikut:
ansible-playbook -i < inventory > < playbook > .ymlVersi terbaru dari Playbook dapat ditemukan di sini.
Untuk platform lain, kunjungi halaman rilis GitHub dan unduh rilis terbaru yang cocok untuk sistem Anda.
Lihat dokumentasi untuk instruksi penggunaan terperinci.
Untuk menggunakan API OpenAI, Anda harus terlebih dahulu mendapatkan kunci API.
.bashrc atau .zshrc Anda untuk memasukkan pernyataan ekspor berikut menambahkan kunci API Anda sebagai nilainya: export OPENAI_API_KEY= " sk-... "OPENAI_API_KEY dengan kunci API Anda sebagai nilainya.Setelah menyelesaikan langkah -langkah ini, Anda akan memiliki kunci API OpenAI yang dapat digunakan untuk berinteraksi dengan model OpenAI melalui alat SGPT.
Catatan: Kunci API Anda adalah informasi sensitif. Jangan membaginya dengan siapa pun.
SGPT memungkinkan Anda untuk mengajukan pertanyaan sederhana dan menerima jawaban yang informatif. Misalnya:
$ sgpt " mass of sun "
The mass of the sun is approximately 1.989 x 10^30 kilograms.Anda juga dapat memberikan petunjuk ke SGPT menggunakan pipa:
$ echo -n " mass of sun " | sgpt
The mass of the sun is approximately 1.989 x 10^30 kilograms. Anda juga dapat menambahkan prompt lain ke data pipa dengan menentukan pengubah stdin dan kemudian menentukan prompt:
$ echo " Say: Hello World! " | sgpt stdin ' Replace every "World" word with "ChatGPT" '
Hello ChatGPT ! Jika Anda ingin mengalirkan penyelesaian ke baris perintah, Anda dapat menambahkan -bendera --stream . Ini akan mengalirkan output ke baris perintah saat dihasilkan.
SGPT juga memfasilitasi pemanfaatan API Visi GPT-4O dan GPT-4. Sertakan gambar input menggunakan bendera -i atau --input , mendukung URL dan gambar lokal.
$ sgpt -m " gpt-4o " -i pkg/fs/testdata/marvin.jpg " what can you see on the picture? "
The picture shows a robot with a large, round head and an expressive, downward-slanting triangular eye. The body of the robot is designed with a sleek, somewhat shiny, metallic structure and it is pointing with its right hand. The design appears to be humanoid with distinct arms, legs, and a segmented torso.
$ sgpt -m " gpt-4-vision-preview " -i " https://upload.wikimedia.org/wikipedia/en/c/cb/Marvin_%28HHGG%29.jpg " " what can you see on the picture? "
The image shows a figure resembling a robot with a humanoid form. It has aDimungkinkan juga untuk menggabungkan URL dan gambar lokal:
$ sgpt -m " gpt-4o " -i " https://upload.wikimedia.org/wikipedia/en/c/cb/Marvin_%28HHGG%29.jpg " -i pkg/fs/testdata/marvin.jpg " what is the difference between those two pictures "
The two pictures you provided appear to be identical. There are no visible differences between them. Both show the same character in the same pose with the same lighting and background.Anda juga dapat mengatur model default ke visi GPT-4O atau GPT-4 dengan mengaturnya di file konfigurasi.
Penting: Integrasi API GPT-4O dan GPT-4-Vision saat ini dalam beta dan dapat berubah di masa depan.
Jika Anda sudah masuk daftar putih untuk API O1, Anda dapat menggunakannya dengan menentukan model dengan bendera -m . Anda juga harus menyediakan --stream=false flag untuk tidak mengalirkan output karena tidak didukung oleh O1 API (ini hanya diperlukan, jika Anda telah memberikan opsi aliran melalui file konfigurasi).
Contoh:
$ sgpt -m " o1-preview " --stream=false " how many rs are in strawberry? "
There are three " r " s in the word " strawberry " . Anda juga dapat membuat alias bash untuk menggunakan API O1 dengan lebih mudah. Misalnya, tambahkan baris berikut ke .bashrc Anda:
alias sgpt-o1= " sgpt -m " o1-preview " --stream=false "Maka Anda dapat menggunakan alias seperti ini:
$ sgpt-o1 " how many rs are in strawberry? "
There are three " r " s in the word " strawberry " .Penting: API O1 tidak mendukung kepribadian.
SGPT menyediakan fungsionalitas obrolan yang memungkinkan percakapan interaktif dengan model OpenAI. Anda dapat menggunakan bendera --chat untuk memulai dan merujuk sesi obrolan.
Kemampuan obrolan memungkinkan Anda untuk berinteraksi dengan model OpenAI dengan cara yang lebih dinamis dan menarik, membuatnya lebih mudah untuk mendapatkan respons, kode, atau perintah shell yang relevan melalui percakapan berkelanjutan.
Contoh di bawah ini menunjukkan cara menyempurnakan respons model untuk hasil yang lebih ditargetkan.
ls-files dan meminta model untuk "Daftar Semua File Direktori": $ sgpt sh --chat ls-files " list all files directory "
lsls-files dan meminta untuk "mengurutkan nama": $ sgpt sh --chat ls-files " sort by name "
ls | sort Model menyediakan perintah shell yang sesuai ls | sort , yang mencantumkan semua file dalam direktori dan mengurutkannya berdasarkan nama.
SGPT dapat menghasilkan perintah shell berdasarkan input Anda:
$ sgpt sh " make all files in current directory read only "
chmod -R 444 *Anda juga dapat menghasilkan perintah shell dan menjalankannya secara langsung:
$ sgpt sh --execute " make all files in current directory read only "
chmod -R 444 *
Do you want to execute this command ? (Y/n) y Perintah sh adalah persona default untuk menghasilkan perintah shell. Untuk informasi lebih lanjut tentang persona, lihat dokumen.
Saat ini, SGPT tidak mendukung sesi shell interaktif. Namun, rlwrap dapat digunakan untuk mengaktifkan sesi shell seperti interaktif (sumber):
$ rlwrap bash -c 'echo ▶; while read in; do [[ -n "$in" ]] && echo ■ && sgpt --chat chat_name "$in" && echo ▶; done'
▶
mass of sun
■
The mass of the Sun is approximately 1.989 x 10^30 kilograms, or about 330,000 times the mass of Earth. It contains about 99.86% of the total mass of the Solar System and is by far the most dominant object in it. The Sun's mass is composed mostly of hydrogen (~74%) and helium (~24%), with the remaining 2% consisting of heavier elements.
▶
convert to earth masses
■
To convert the mass of the Sun to Earth masses, you can simply divide the Sun's mass by the mass of the Earth. Given that:
A. The Sun's mass is approximately 1.989 x 10^30 kilograms.
B. The Earth's mass is approximately 5.972 x 10^24 kilograms.
Using these values, you can calculate how many Earth masses the Sun is:
(1.989 x 10^30 kg) / (5.972 x 10^24 kg/Earth) = approximately 333,000 Earth masses
So the Sun is about 333,000 times more massive than the Earth.
▶
Skrip dengan pembuatan nama sesi otomatis dan dukungan pemberitahuan bisa terlihat seperti ini:
#! /usr/bin/env bash
shopt -s -o errexit
shopt -s -o pipefail
shopt -s -o nounset
shopt -s inherit_errexit
export CHAT= " $( date ' +%Y%m%d%H%M%S%3N ' ) _ $( tr -dc ' A-Za-z ' < /dev/urandom | head -c 3 ) "
rlwrap bash -c ' echo ▶; while read in; do [[ -n "$in" ]] && echo ■ && sgpt --chat "$CHAT" "$in" && echo ▶ && notify-send --urgency=low ; done 'Terima kasih kepada @Ilya-Bystrov untuk datang dengan solusi ini.
SGPT dapat secara efisien menghasilkan kode berdasarkan instruksi yang diberikan. Misalnya, untuk menyelesaikan masalah fizzbuzz klasik menggunakan python, cukup berikan prompt sebagai berikut:
$ sgpt code " Solve classic fizz buzz problem using Python "
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print( " FizzBuzz " )
elif i % 3 == 0:
print( " Fizz " )
elif i % 5 == 0:
print( " Buzz " )
else:
print(i)SGPT akan mengembalikan kode Python yang sesuai untuk mengatasi masalah Fizzbuzz.
Perintah code adalah persona default untuk menghasilkan kode. Untuk informasi lebih lanjut tentang persona, lihat dokumen.
SGPT dapat diintegrasikan lebih lanjut ke dalam alur kerja Anda dengan membuat alias dan fungsi bash. Ini memungkinkan Anda untuk mengotomatisasi tugas umum dan meningkatkan efisiensi saat bekerja dengan model OpenAI dan perintah shell.
Memang, Anda dapat mengonfigurasi SGPT untuk menghasilkan pesan komit git Anda menggunakan fungsi bash berikut:
gsum () {
commit_message= " $( sgpt txt " Generate git commit message, my changes: $( git diff ) " ) "
printf " %sn " " $commit_message "
read -rp " Do you want to commit your changes with this commit message? [y/N] " response
if [[ $response =~ ^[Yy]$ ]] ; then
git add . && git commit -m " $commit_message "
else
echo " Commit cancelled. "
fi
}Misalnya, pesan komit untuk deskripsi ini dan fungsi bash akan muncul sebagai berikut:
$ gsum
feat: Add bash function to generate git commit messages
Added `gsum () ` function to ` .bash_aliases ` that generates a commit message using sgpt to summarize git changes.
The user is prompted to confirm the commit message before executing ` git add . & & git commit -m " <commit_message> " ` .
This function is meant to automate the commit process and increase productivity in daily work.
Additionally, updated the README.md file to include information about the new bash function and added a section to
showcase useful bash aliases and functions found in ` .bash_aliases ` .
Do you want to commit your changes with this commit message ? [y/N] y
[main d6db80a] feat: Add bash function to generate git commit messages
2 files changed, 48 insertions(+)
create mode 100644 .bash_aliasesKompilasi alias dan fungsi bash yang bermanfaat, termasuk fungsi GSUM yang diperbarui, tersedia di .bashrc.
Terinspirasi oleh shell-gpt.