Nikmati ChatGPT di terminal Anda. tidak
A guru is a teacher or mentor who is highly respected and knowledgeable in
their field. The term is often associated with spiritual or religious
leaders, but can also refer to experts in other areas such as business,
technology, or health. -- generated by ChatGPT
--oneshot
untuk masuk ke mode oneshot yang menghilangkan pesan konteks untuk setiap permintaan. Mulailah guru
dengan --last
untuk melanjutkan percakapan terakhir. go install github.com/shafreeck/guru@latest
Guru menggunakan API terbuka OpenAI untuk berkomunikasi dengan ChatGPT. Dapatkan kunci API yang sesuai dengan masuk ke akun Anda sebagai pengembang.
https://platform.openai.com/account/api-keys
Konfigurasikan guru untuk pertama kali menggunakan, jalankan guru config
dan masukkan Kunci API OpenAI Anda yang diperoleh dari langkah di atas. Proksi sock5 bersifat opsional untuk digunakan. Anda dapat melewati langkah ini dan menggunakan parameter secara langsung untuk perintah tersebut, tetapi disarankan untuk menyimpan kunci rahasia Anda ke dalam file konfigurasi.
> guru [text]
Masuk ke mode percakapan dengan langsung mengeksekusi guru
. guru
sebenarnya adalah alias dari perintah guru chat
. Jalankan guru dengan tanda --oneshot
untuk masuk ke mode oneshot
, dalam mode ini, guru menjatuhkan pesan konteks untuk setiap permintaan. Sesi selalu direkam secara otomatis. (default di direktori ~/.guru/session/
)
> guru cheat
guru cheat
adalah alias dari perintah guru chat -p Cheatsheet
, yang digunakan untuk menyederhanakan input pengguna.
> git diff | guru commit
guru commit
adalah alias dari guru chat -p Committer
.
Gunakan parameter --oneshot
untuk masuk ke mode percakapan satu kali. Dalam mode ini, pesan konteks akan dibuang secara otomatis. Namun, jika --prompt, -p
menentukan perintah, konten perintah akan disematkan dan dikirimkan bersama setiap permintaan.
Gunakan perintah
: message pin
untuk menyematkan pesan apa pun
guru --oneshot
echo list files in this dir in detail | guru cheat | sh
ChatGPT tidak menyimpan konteks percakapan di sisi server. Kemampuan kesadaran konteksnya dicapai dengan mengirimkan semua konten konteks dari klien. Sebagaimana didefinisikan dalam OpenAI API, pertanyaan yang dikirimkan atau jawaban yang dibalas disebut pesan. Isi pesan ditoken menjadi token, dan terdapat batasan total token baik yang dikirim maupun dibalas, yaitu paling banyak 4096. Percakapan yang panjang akan menghabiskan banyak waktu.
Guru mendukung pembersihan otomatis pesan-pesan lama untuk mencapai percakapan berkelanjutan dengan jendela bergulir. Namun, terkadang kami mengharapkan kontrol yang lebih tepat atas pesan yang dikirimkan ke ChatGPT. Saat ini, perintah internal dari manajemen pesan dapat digunakan untuk mengecilkan, menghapus, atau menambahkan pesan secara manual.
Untuk pesan yang tidak ingin kita hapus atau tidak ingin dibersihkan oleh rolling window, kita dapat menyematkan pesan dengan perintah : message pin
. Mode oneshot menggunakan metode ini untuk menyematkan pesan prompt, yang membuat prompt akan dikirimkan untuk setiap pertanyaan.
: message list
Mencantumkan semua pesan terkini, alias :ls
: message delete [id...]
Hapus pesan, yang parameternya adalah ID pesan yang dapat menghapus beberapa pesan sekaligus: message shrink [expr]
Mengecilkan pesan, dimana expr
adalah ekspresi rentang, sama dengan ekspresi di Golang Slice: begin:end
. Mulai atau Akhir dapat dihilangkan, misalnya 5:
, yang berarti mempertahankan semua pesan dengan ID lebih besar atau sama dengan 5.message show [id]
Menampilkan pesan tertentu dan merendernya dengan Markdown. Standarnya adalah menampilkan pesan terakhir.message append
Menambahkan pesan, juga tersedia dengan pintasan :append
message pin [id]
Menyematkan pesan, dan pesan yang disematkan tidak akan dihapus secara otomatis oleh mekanisme penyusutan otomatis pesan dan tidak dapat dihapus dengan perintah : message delete
.message unpin [id]
Melepas pin pesan Setiap kali guru
dieksekusi, sesi secara otomatis dibuat. Riwayat sesi disimpan di direktori ~/.guru/session/
secara default. Saat memulai, Anda dapat menentukan ID sesi dengan --session-id, -s
atau memulihkan sesi terakhir dengan --last
. Jika ID sesi yang ditentukan tidak ada, maka akan dibuat secara otomatis.
Manajemen sesi menawarkan banyak fitur. Anda dapat membuat dan mengganti sesi dalam Guru REPL yang sama. Fitur manajemen sesi yang paling berguna adalah tumpukan sesi yang memungkinkan penumpukan sesi anak tanpa mengganggu sesi saat ini. Kesinambungan sesi sangat berguna, misalnya dalam percakapan yang panjang ketika membicarakan suatu makalah, saya berharap pesan percakapan tersebut terekam dan kemudian saya akan melihat riwayat obrolan yang jelas ketika mengulasnya di kemudian hari. Guru juga akan mendukung ekspor riwayat sesi nanti.
guru > :session
Available commands:
:session new create a new session
:session remove delete a session
:session shrink shrink sessions
:session list list sessions
:session switch switch a session
:session history print history of current session
:session stack show the session stack
:session stack push create a new session, and stash the current
:session stack pop pop out current session
:session new
membuat sesi baru, juga dapat dipicu melalui alias singkatan :new
.:session remove [sid]
menghapus sesi.:session shrink [expr]
mengecilkan sesi, di mana expr
adalah ekspresi rentang, mirip dengan perintah :message shrink
.:session list
mencantumkan semua sesi, dengan sesi saat ini ditandai dengan *
.:session switch [sid]
beralih ke sesi yang berbeda.:session history
menampilkan riwayat sesi.:session stack
menampilkan status tumpukan sesi, juga dapat dipicu melalui alias singkatan :stack
.:session stack push
membuat sesi baru dan mendorongnya ke tumpukan, juga dapat dipicu melalui alias singkatan >
.:session stack pop
memunculkan sesi saat ini dari stack, juga dapat dipicu melalui singkatan alias <
. >
adalah perintah khusus yang berfungsi sebagai alias untuk :session stack push
. Saat dijalankan, ini membuat sesi baru dan memasukkannya ke dalam tumpukan. Prompt perintah akan menambahkan simbol ">", seperti guru >>
. <
adalah alias untuk :session stack pop
. Saat dijalankan, sesi paling atas dari tumpukan akan muncul, dan prompt perintah akan menghapus simbol ">".
Catatan: saat ini, hanya perintah
>
dan<
yang akan memengaruhi prompt perintah. Menggunakan:session stack push/pop
secara langsung tidak akan memberikan efek ini, tetapi kami berencana untuk meningkatkan mekanismenya di masa mendatang.
Perintah prompt repo
memungkinkan Anda untuk menambah atau menyinkronkan repositori prompt. Saat ini, Guru mendukung dua repositori prompt berkualitas tinggi: awesome-chatgpt-prompts
dan awesome-chatgpt-prompts-zh
. Pengguna juga dapat menambahkan repositori favoritnya sendiri.
Perhatikan bahwa, pada penggunaan awal, perintah jarak jauh selain Cheatsheet
dan Committer
akan memerlukan perintah :prompt repo sync
untuk menyinkronkan file mereka agar dapat digunakan. File prompt yang disinkronkan akan disimpan di direktori ~/.guru/prompt/
secara default.
guru > :prompt
Available commands:
:prompt act as act as a role
:prompt list list all prompts
:prompt repo sync sync prompts with remote repos
:prompt repo add add a remote repo
:prompt repo list list remote repos
Alias commands:
:prompts alias :prompts = :prompt list
:prompt
memungkinkan Anda untuk menggunakan perintah yang ditentukan dalam repositori awesome-chatgpt-prompts
Anda, serta menambahkan dan menyinkronkan repositori prompt Anda sendiri.
:prompt act as
sebagai peran prompt, juga dapat dipicu melalui singkatan alias :act as
.:prompt list
mencantumkan semua informasi prompt yang dimuat, juga dapat dipicu melalui alias singkatan :prompts
.:prompt repo add/sync/list
menambahkan, menyinkronkan, dan mencantumkan repositori prompt. guru > :act as Linux Terminal
Anda dapat menggunakan tanda $
untuk menjalankan perintah sistem, dan output dari perintah tersebut akan dikirimkan ke ChatGPT pada putaran percakapan berikutnya. Ini sangat berguna ketika Anda perlu memuat file.
Jika tidak ada perintah yang mengikuti tanda $
, Guru akan beralih ke mode shell, dan prompt perintah akan berubah menjadi guru $
. Dalam mode ini, perintah apa pun yang Anda masukkan akan dieksekusi seperti di shell, dan semua output akan dikirimkan ke ChatGPT pada putaran percakapan berikutnya.
Dalam mode shell, memasukkan >
akan kembali ke mode percakapan.
:info
melihat parameter langsung:set
pengaturan parameter langsung dir /Users/shafreeck/.guru
filename
openai-api-key sk-************************************************
pin false
prompt
session-id chat-1680879639912-1ec4e509-af5b-4abb-9f4b-bebde2276d96
socks5 localhost:8804
stdin false
timeout 3m0s
------------------------------
chatgpt.frequency_penalty 0
chatgpt.max_tokens 0
chatgpt.model gpt-3.5-turbo
chatgpt.n 1
chatgpt.presence_penalty 0
chatgpt.stop
chatgpt.stream true
chatgpt.temperature 1
chatgpt.top_p 1
chatgpt.user
disable-auto-shrink false
executor
feedback false
non-interactive false
oneshot false
system
verbose false
:set chatgpt.temperature 0.5
Pelaksana adalah fitur Guru yang paling kuat dan unik. Saat memulai Guru, Anda dapat menentukan eksekutor menggunakan argumen --executor, -e
. Setelah setiap putaran obrolan, Guru akan meneruskan keluaran ChatGPT ke pelaksana melalui stdin. Jika --feedback
ditentukan, output eksekutor juga akan diumpankan kembali ke ChatGPT.
Pelaksananya berbeda dengan perintah sistem yang disebutkan di atas. Perintah sistem hanya memperkaya sarana input data melalui shell
. Sementara eksekutor digunakan untuk menangani keluaran ChatGPT, mengimplementasikan loop tertutup lengkap dari input
-> output
-> input
. Artinya kita bisa menggunakan eksekutor selama percakapan untuk memproses pesan.
Untuk alasan keamanan, konfirmasi pengguna diperlukan untuk setiap panggilan pelaksana.
Skenario penggunaan paling sederhana adalah menjalankan perintah yang dikembalikan oleh ChatGPT melalui shell
.
> guru cheat -e sh
Anda dapat menggunakan perintah berikut untuk mencapai percakapan mandiri ChatGPT:
> guru -e "guru --dir ./conversation --last" --feedback Hi
Prinsip dari self-chatting adalah dengan menggunakan guru
lain sebagai eksekutor, atur --dir
dari guru
kedua ke direktori independennya untuk menghindari kebingungan dengan guru
pertama, dan atur --last
untuk memulihkan sesi setiap kali dimulai untuk menjaga konteks pembicaraan.