
ผู้ช่วย AI ที่ขับเคลื่อนด้วยอัญมณีในคอนโซลรางของคุณ
การอัปเดตใหม่: อินพุตเสียงโดยใช้ไมโครโฟนการสาธิต: https://youtu.be/ubr0wnqvkao

อัญมณีที่ใช้ประโยชน์จากพลังของ AI เพื่อให้ประสบการณ์การพัฒนาของคุณมีประสิทธิภาพและสนุกสนานยิ่งขึ้น ด้วยอัญมณีนี้คุณสามารถปรับปรุงกระบวนการเข้ารหัสของคุณ refactor ได้อย่างง่ายดายและปรับปรุงรหัสของคุณและแม้แต่สร้างการทดสอบได้ทันที + ดูตัวอย่างเพิ่มเติมด้านล่าง
ไปที่คอนโซล Rails แล้วเรียกใช้:
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.sหรือด้วยเครื่องมือ 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 # เริ่มป้อนเสียงด้วย CLI
ดูตัวอย่างด้านล่าง คุณยังสามารถสร้างพรอมต์ของคุณเองด้วยรหัสเพียงไม่กี่บรรทัดที่นี่
นอกจากนี้คุณสามารถใช้เครื่องมือ CLI วิธีใช้งานได้
กรณีการใช้งานทั่วไปวิธีการใช้ปลั๊กอินนี้ 
ขอความคิดรหัส: 
คุณต้องการความช่วยเหลือในการเขียนการทดสอบ RSPEC หรือไม่? 
แล้วการทดสอบหน่วยล่ะ? 
ถาม CHATGPT เพื่อปรับปรุงรหัสของคุณ: 
ถาม CHATGPT เพื่อแยกวิเคราะห์คุณ JSON: 
หรือสามารถเข้ารหัสใน base64 สตริงของคุณ: 
สร้าง i18n yaml สำหรับโมเดลของคุณ (พรอมต์ที่กำหนดเอง): 
เพิ่มบรรทัดนี้ใน Gemfile ของแอปพลิเคชันของคุณ:
gem "ask_chatgpt"แล้วดำเนินการ:
$ bundleหรือติดตั้งด้วยตัวเองเป็น:
$ gem install ask_chatgpt เรียกใช้ rails g ask_chatgpt initializer
และคุณสามารถแก้ไข:
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
endหมายเหตุ: คุณต้องตั้งค่าคีย์ API ของคุณ https://platform.openai.com/account/api-keys คุณสามารถเก็บไว้ใน. env หรือ. -bash_profile
ตัวอย่างด้วย nano ~/.bash_profile :
export OPENAI_API_KEY=key
แต่ตรวจสอบให้แน่ใจว่าจะไม่มุ่งมั่นที่จะ GitHub ต้องเป็นส่วนตัว
คุณสามารถกำหนดพรอมต์ของคุณและใช้โดยใช้ .register_prompt ตัวอย่างเช่น:
config . register_prompt :extract_email do | arg |
"Extract email from: #{ arg } as JSON"
end และในภายหลังคุณสามารถโทรด้วย gpt.extract_email("some text with [email protected], [email protected]") หากคุณเชื่อว่าพรอมต์ที่กำหนดเองของคุณจะมีประโยชน์ - สร้าง PR สำหรับอัญมณีนี้
หากคุณต้องการรับซอร์สโค้ดให้ใช้ตัวช่วยนี้ AskChatGPT::Helpers.extract_source(str)
คุณสามารถผ่าน:
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" ) โดยค่าเริ่มต้นเมื่อคุณใช้ในแอพ Rails ค่าเริ่มต้นหนึ่งแจ้งจะรวมอยู่ ( .included_prompts ) ซึ่งกำลังส่งเวอร์ชันทับทิม/รางและชื่อของอะแดปเตอร์ฐานข้อมูล
คุณสามารถเปิดใช้งานโหมดการดีบักเพื่อดูคำขอ/การตอบกลับจาก OpenAI โดยใช้สองวิธี:
AskChatGPT . setup do | config |
config . debug = false
end
# or
# gpt.on!(:debug)
# gpt.off!(:debug) หรือโดยตรงในคอนโซล gpt.debug! (และจบ gpt.debug!(:off) )
ตัวอย่าง: https://youtu.be/ubr0wnqvkao
สำหรับตอนนี้ฉันถือว่านี่เป็นคุณสมบัติการทดลองและความสนุกสนาน หวังว่าจะได้เห็นความคิดเห็นของคุณ
ทำงานร่วมกับคำสั่ง: gpt.speak หรือ gpt.s (นามแฝง)
คำสั่งนี้เริ่มบันทึกทันทีและมันจะหยุดหลังจาก voice_max_duration วินาทีหรือถ้าคุณกดปุ่มใด ๆ
เพื่อออกจากโหมดบันทึกกด Q
Voice ใช้เครื่องมือ ffmpeg ดังนั้นคุณต้องติดตั้ง คำแนะนำบางอย่างเช่นนี้จะใช้งานได้: https://www.hostinger.com/tutorials/how-to-install-ffmpeg
นอกจากนี้คุณต้องกำหนดค่า audio_device_id เรียกใช้ ffmpeg -f avfoundation -list_devices true -i ""
มันจะให้รายชื่ออุปกรณ์ทั้งหมดเช่นนี้:
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 ในกรณีของฉันฉันใช้ "1" เพราะเป็น Built-in Microphone
คุณสามารถถามคำถามจาก CLI หรือแม้แต่เริ่มป้อนเสียง
ตัวอย่างที่ 1: 
ตัวอย่างที่ 2: 
วิธีใช้:
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?"
นอกจากนี้คุณยังสามารถสร้างนามแฝง "A" หรือ "Q" ตัวอย่างเช่น:
แก้ไขไฟล์: nano ~/.bash_profile
alias a= ' ask_chatgpt '
alias q= ' ask_chatgpt ' และตอนนี้คุณสามารถใช้ q "how to unzip file with Ruby"
ควบคุมโหมดจากคอนโซล หรือจาก initializer โดยใช้ config.mode = :async (หรือการซิงค์)
gpt . async!
gpt . sync! 
เซอร์ไพรส์ตัวเองด้วยข้อเท็จจริงแบบสุ่มและเคล็ดลับที่เป็นประโยชน์ หากต้องการใช้เพียงโทร gpt.random (หรือ gpt.tip , gpt.random_tip )
โดยค่าเริ่มต้นจะใช้หัวข้อทับทิม/ราง (ดูคลาส RandomTip )
แต่คุณสามารถใช้หัวข้ออื่น ๆ เช่น:
gpt . tip
gpt . tip ( "active record" )
gpt . tip ( "sidekiq" )
gpt . tip ( "security" ) พยายามจัดรูปแบบการตอบสนองจาก Markdown และพิมพ์อย่างดีในคอนโซล
AskChatGPT . setup do | config |
config . markdown = true
end
# or
# gpt.on!(:markdown)
# gpt.off!(:markdown) with_controller , with_class , ....with_usagegpt ในรหัสของแอพหลัก (เช่นรุ่น/คอนโทรลเลอร์)gpt.with_payload(json).speak (และจะส่ง payload กับคำถามของฉัน)เรายินดีต้อนรับคุณที่จะเสนอพรอมต์ใหม่หรือปรับคำที่มีอยู่!
เพื่อเริ่มต้นโคลน repo นี้ เรียกใช้ชุดและไปที่ cd test/dummy/ เริ่ม rails c และทดสอบพรอมต์ของคุณ
อัญมณีมีให้เป็นโอเพ่นซอร์สภายใต้ข้อกำหนดของใบอนุญาต MIT
