
Asisten Permata Bertenaga AI tepat di konsol Rails Anda.
Pembaruan Baru: Input Suara Menggunakan Mikrofon Anda, Demo: https://youtu.be/ubr0wnqvkao

Permata yang memanfaatkan kekuatan AI untuk membuat pengalaman pengembangan Anda lebih efisien dan menyenangkan. Dengan permata ini, Anda dapat merampingkan proses pengkodean Anda, dengan mudah refactor dan meningkatkan kode Anda, dan bahkan menghasilkan tes dengan cepat. + Lihat lebih banyak contoh di bawah ini.
Pergi ke Rails Console dan Run:
gpt . ask ( "how to get max age of user with projects from Ukraine" ) . with_model ( User , Project , Country )
gpt . ask ( "convert json to xml" )
gpt . with_code ( "User.get_report" , Project ) . ask "make it better" # with_class alias for with_code
gpt . with_class ( User ) . ask "make it better"
gpt . payload ( json ) . ask ( "extract emails from json" )
gpt . refactor ( "User.get_report" )
gpt . improve ( "User.get_report" )
gpt . rspec_test ( User )
gpt . unit_test ( User )
gpt . code_review ( User . method ( :get_report ) )
gpt . find_bug ( 'User#full_name' )
gpt . explain ( User )
gpt . improve %Q{
def full_name
[first_name, last_name].join
end
}
#
# --- NEW ---
#
gpt . speak # or with alias gpt.sAtau dengan alat CLI:
> ask_chatgpt -q " 134*1245 "
166830
> ask_chatgpt base64 this string " hello world "
aGVsbG8gd29ybGQ=
> ask_chatgpt decode base64 this string " aGVsbG8gd29ybGQ= "
hello worldask_chatgpt -s 1 # mulai input suara dengan CLI
Lihat beberapa contoh di bawah ini. Anda juga dapat membuat prompt Anda sendiri hanya dengan beberapa baris kode di sini.
Anda juga dapat menggunakan alat CLI, cara menggunakannya.
Kasus penggunaan khas bagaimana Anda dapat menggunakan plugin ini 
Mintalah ide kode: 
Apakah Anda memerlukan bantuan untuk menulis tes RSPEC? 
Bagaimana dengan tes unit? 
Minta chatgpt untuk meningkatkan kode Anda: 
Minta chatgpt untuk menguraikan Anda json: 
Atau dapat mengkode base64 string Anda: 
Buat I18N YAML untuk model Anda (prompt khusus): 
Tambahkan baris ini ke gemfile aplikasi Anda:
gem "ask_chatgpt"Dan kemudian mengeksekusi:
$ bundleAtau instal sendiri sebagai:
$ gem install ask_chatgpt Jalankan rails g ask_chatgpt initializer .
Dan Anda dapat mengedit:
AskChatGPT . setup do | config |
# config.access_token = ENV["OPENAI_API_KEY"]
# async mode will use OpenAI streamming feature and will return results as they come
# config.mode = :async # or :sync
# config.markdown = true # try to output nicely Markdown response
# config.debug = false
# config.model = "gpt-3.5-turbo"
# config.temperature = 0.1
# config.max_tokens = 3000 # or nil by default
# config.included_prompts = []
# enable voice input with `gpt.speak` or `gpt.s`. Note, you also need to configure `audio_device_id`
# config.voice_enabled = true
# to get audio device ID (index in the input devices)
# install ffmpeg, and execute from the console
# `ffmpeg -f avfoundation -list_devices true -i ""`
# config.audio_device_id = 1
# after "voice_max_duration" seconds it will send audio to Open AI
# config.voice_max_duration = 10 # 10 seconds
# Examples of custom prompts:
# you can use them `gpt.extract_email("some string")`
# config.register_prompt :extract_email do |arg|
# "Extract email from: #{arg} as JSON"
# end
# config.register_prompt :extract_constants do |arg|
# "Extract constants from class: #{AskChatGPT::Helpers.extract_source(arg)}"
# end
# config.register_prompt :i18n do |code|
# "Use I18n in this code:n#{AskChatGPT::Helpers.extract_source(code)}"
# end
endCatatan: Bahwa Anda perlu mengatur kunci API Anda https://platform.openai.com/account/api-keys. Anda dapat menyimpannya di .env atau .bash_profile.
Contoh dengan nano ~/.bash_profile :
export OPENAI_API_KEY=key
Tapi pastikan itu tidak akan berkomitmen pada GitHub. Harus bersifat pribadi.
Anda dapat mendefinisikan prompt Anda sendiri dan menggunakannya menggunakan .register_prompt . Misalnya:
config . register_prompt :extract_email do | arg |
"Extract email from: #{ arg } as JSON"
end Dan nanti Anda dapat memanggilnya dengan gpt.extract_email("some text with [email protected], [email protected]") . Jika Anda yakin prompt kustom Anda akan berguna - buat PR untuk permata ini.
Jika Anda ingin mendapatkan kode sumber, gunakan helper AskChatGPT::Helpers.extract_source(str) .
Anda bisa lulus:
AskChatGPT :: Helpers . extract_source ( 'User.some_class_method' )
AskChatGPT :: Helpers . extract_source ( 'User#instance_method' )
AskChatGPT :: Helpers . extract_source ( 'User' )
AskChatGPT :: Helpers . extract_source ( User )
AskChatGPT :: Helpers . extract_source ( "a = b" ) Secara default ketika Anda menggunakan aplikasi Rails default satu prompt disertakan ( .included_prompts ) yang mengirim versi Ruby/Rails, dan nama adaptor database.
Anda dapat mengaktifkan mode debug untuk melihat permintaan/respons dari OpenAi menggunakan dua cara:
AskChatGPT . setup do | config |
config . debug = false
end
# or
# gpt.on!(:debug)
# gpt.off!(:debug) Atau langsung di konsol gpt.debug! (dan selesaikan gpt.debug!(:off) )
Demo: https://youtu.be/ubr0wnqvkao
Untuk saat ini saya menganggap ini sebagai fitur eksperimental dan menyenangkan. Berharap melihat umpan balik Anda.
Bekerja dengan perintah: gpt.speak atau gpt.s (alias).
Perintah ini mulai merekam segera dan akan berhenti setelah voice_max_duration detik atau jika Anda menekan tombol apa pun.
Untuk keluar dari mode perekaman tekan Q .
Suara menggunakan alat ffmpeg , jadi Anda perlu menginstalnya. Beberapa instruksi seperti ini akan berhasil: https://www.hostinger.com/tutorials/how-to-install-ffmpeg.
Juga, Anda perlu mengonfigurasi audio_device_id . Jalankan ffmpeg -f avfoundation -list_devices true -i ""
Ini akan memberi Anda daftar semua perangkat, seperti ini:
ffmpeg - f avfoundation -list_devices true -i ""
ffmpeg version 6 . 0 Copyright (c) 2000-2023 the FFmpeg developers
built with Apple clang version 14 . 0 . 0 (clang -1400 . 0 . 29 . 202 )
configuration: --prefix=/usr/local/Cellar/ffmpeg/ 6 . 0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox
libavutil 58 . 2 . 100 / 58 . 2 . 100
libavcodec 60 . 3 . 100 / 60 . 3 . 100
libavformat 60 . 3 . 100 / 60 . 3 . 100
libavdevice 60 . 1 . 100 / 60 . 1 . 100
libavfilter 9 . 3 . 100 / 9 . 3 . 100
libswscale 7 . 1 . 100 / 7 . 1 . 100
libswresample 4 . 10 . 100 / 4 . 10 . 100
libpostproc 57 . 1 . 100 / 57 . 1 . 100
[AVFoundation indev @ 0x7f7fd1a04380] AVFoundation video devices:
[AVFoundation indev @ 0x7f7fd1a04380] [ 0 ] FaceTime HD Camera
[AVFoundation indev @ 0x7f7fd1a04380] [ 1 ] USB Camera VID: 1133 PID: 2085
[AVFoundation indev @ 0x7f7fd1a04380] [ 2 ] Capture screen 0
[AVFoundation indev @ 0x7f7fd1a04380] [ 3 ] Capture screen 1
[AVFoundation indev @ 0x7f7fd1a04380] AVFoundation audio devices:
[AVFoundation indev @ 0x7f7fd1a04380] [ 0 ] Microsoft Teams Audio
[AVFoundation indev @ 0x7f7fd1a04380] [ 1 ] Built-in Microphone
[AVFoundation indev @ 0x7f7fd1a04380] [ 2 ] Unknown USB Audio Device
: Input/output error Dalam kasus saya, saya menggunakan "1", karena itu Built-in Microphone .
Anda dapat mengajukan pertanyaan dari CLI atau bahkan memulai input suara.
Contoh 1: 
Contoh 2: 
Bagaimana menggunakan:
ask_chatgpt -q "How to parse JSON file in Ruby?"
ask_chatgpt -t 0.7 -q "How to parse JSON file in Ruby?"
ask_chatgpt -f app/models/user.rb -q "find a bug in this Rails model"
ask_chatgpt -f app/models/user.rb -q "create RSpec spec for this model"
ask_chatgpt -f test/dummy/Gemfile -q "sort Ruby gems alphabetically"
ask_chatgpt -m 3.5 -q "How to parse JSON file in Ruby?"
ask_chatgpt -m 4 -q "Why Ruby is the best language?"
Anda juga dapat membuat alias "A" atau "Q" misalnya:
Edit file: nano ~/.bash_profile
alias a= ' ask_chatgpt '
alias q= ' ask_chatgpt ' Dan sekarang Anda dapat menggunakan q "how to unzip file with Ruby"
Kontrol mode dari konsol. Atau, dari inisialisasi, menggunakan config.mode = :async (atau sinkronisasi).
gpt . async!
gpt . sync! 
Kejutkan diri Anda dengan fakta acak dan tips yang berguna. Untuk menggunakan, hubungi saja gpt.random (atau gpt.tip , gpt.random_tip ).
Secara default menggunakan topik Ruby/Rails (lihat kelas RandomTip ).
Tetapi Anda juga dapat menggunakan topik lain, misalnya:
gpt . tip
gpt . tip ( "active record" )
gpt . tip ( "sidekiq" )
gpt . tip ( "security" ) Cobalah untuk memformat respons dari penurunan harga dan cetak dengan baik di konsol.
AskChatGPT . setup do | config |
config . markdown = true
end
# or
# gpt.on!(:markdown)
# gpt.off!(:markdown) with_controller , with_class , ....with_usagegpt dalam kode aplikasi utama (misalnya model/pengontrol)gpt.with_payload(json).speak (dan itu akan mengirim muatan dengan pertanyaan saya)Kami menyambut Anda untuk mengusulkan petunjuk baru atau menyesuaikan yang sudah ada!
Untuk memulai, klon repo ini. Jalankan bundel, dan buka cd test/dummy/ . Mulai rails c dan uji petunjuk Anda.
Permata tersedia sebagai open source di bawah ketentuan lisensi MIT.
