
GEM ASSISTANT AI PARIÉE DANS LA CONSOL DE RAILS.
Nouvelle mise à jour: entrée vocale à l'aide de votre microphone, démo: https://youtu.be/ubr0wnqvkao

Un joyau qui exploite la puissance de l'IA pour rendre votre expérience de développement plus efficace et agréable. Avec ce joyau, vous pouvez rationaliser votre processus de codage, refacteur sans effort et améliorer votre code, et même générer des tests à la volée. + Voir plus d'exemples ci-dessous.
Allez dans la console Rails et courez:
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.sOu avec l'outil 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 # Démarrez l'entrée vocale avec CLI
Voir quelques exemples ci-dessous. Vous pouvez également créer vos propres invites avec seulement quelques lignes de code ici.
Vous pouvez également utiliser un outil CLI, comment l'utiliser.
Cases d'utilisation typiques Comment utiliser ce plugin 
Demandez des idées de code: 
Avez-vous besoin d'aide pour rédiger le test RSPEC? 
Qu'en est-il des tests unitaires? 
Demandez à Chatgpt pour améliorer votre code: 
Demandez à Chatgpt pour vous analyser JSON: 
Ou il peut encoder dans la base64 votre chaîne: 
Créer i18n yaml pour votre modèle (invite personnalisée): 
Ajoutez cette ligne à Gemfile de votre application:
gem "ask_chatgpt"Puis exécuter:
$ bundleOu installez-le vous-même comme:
$ gem install ask_chatgpt Exécutez rails g ask_chatgpt initializer .
Et vous pouvez modifier:
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
endRemarque: vous devez configurer votre clé API https://platform.openai.com/Account/api-Keys. Vous pouvez le stocker dans le .env ou .bash_profile.
Exemple avec nano ~/.bash_profile :
export OPENAI_API_KEY=key
Mais assurez-vous qu'il ne sera pas engagé dans le github. Est doit être privé.
Vous pouvez définir vos propres invites et les utiliser en utilisant .register_prompt . Par exemple:
config . register_prompt :extract_email do | arg |
"Extract email from: #{ arg } as JSON"
end Et plus tard, vous pouvez l'appeler avec gpt.extract_email("some text with [email protected], [email protected]") . Si vous pensez que votre invite personnalisée sera utile - créez un RP pour ce joyau.
Si vous souhaitez obtenir du code source, utilisez cet assistant AskChatGPT::Helpers.extract_source(str) .
Vous pouvez passer:
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" ) Par défaut, lorsque vous utilisez dans l'application Rails par défaut, une invite est incluse ( .included_prompts ) qui envoie des versions Ruby / Rails et le nom de l'adaptateur de base de données.
Vous pouvez activer le mode de débogage pour voir la demande / la réponse de l'OpenAI en utilisant deux façons:
AskChatGPT . setup do | config |
config . debug = false
end
# or
# gpt.on!(:debug)
# gpt.off!(:debug) ou directement dans la console gpt.debug! (et terminer gpt.debug!(:off) )
Demo: https://youtu.be/ubr0wnqvkao
Pour l'instant, je considère cela comme une fonctionnalité expérimentale et amusante. Hâte de voir vos commentaires.
Fonctionne avec la commande: gpt.speak ou gpt.s (alias).
Cette commande commence à enregistrer immédiatement et il s'arrêtera après les secondes voice_max_duration ou si vous appuyez sur une touche.
Pour quitter le mode d'enregistrement, appuyez sur Q .
La voix utilise l'outil ffmpeg , vous devez donc l'installer. Des instructions comme celle-ci fonctionneront: https://www.hostinger.com/tutorials/how-to-install-ffmpeg.
Vous devez également configurer audio_device_id . Exécuter ffmpeg -f avfoundation -list_devices true -i ""
Cela vous donnera une liste de tous les appareils, comme ceci:
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 Dans mon cas, j'ai utilisé "1", car c'est Built-in Microphone .
Vous pouvez poser des questions auprès de la CLI ou même démarrer l'entrée vocale.
Exemple 1: 
Exemple 2: 
Comment utiliser:
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?"
Vous pouvez également créer un alias "A" ou "Q" par exemple:
Modifier le fichier: nano ~/.bash_profile
alias a= ' ask_chatgpt '
alias q= ' ask_chatgpt ' Et maintenant, vous pouvez utiliser q "how to unzip file with Ruby"
Contrôlez le mode à partir d'une console. Ou, à partir de l'initialisateur, en utilisant config.mode = :async (ou sync).
gpt . async!
gpt . sync! 
Surprenez-vous avec des faits aléatoires et des conseils utiles. Pour utiliser simplement gpt.random (ou gpt.tip , gpt.random_tip ).
Par défaut, il utilise des sujets Ruby / Rails (voir la classe RandomTip ).
Mais vous pouvez également utiliser d'autres sujets, par exemple:
gpt . tip
gpt . tip ( "active record" )
gpt . tip ( "sidekiq" )
gpt . tip ( "security" ) Essayez de formater la réponse de Markdown et l'imprimez-le bien dans la console.
AskChatGPT . setup do | config |
config . markdown = true
end
# or
# gpt.on!(:markdown)
# gpt.off!(:markdown) with_controller , with_class , ....with_usagegpt dans le code de l'application principale (par exemple modèle / contrôleur)gpt.with_payload(json).speak (et il enverra la charge utile avec ma question)Nous vous accueillons pour proposer de nouvelles invites ou en ajuster celles existantes!
Pour commencer, clonez ce dépôt. Exécutez le pack et accédez au cd test/dummy/ . Démarrez rails c et testez vos invites.
Le GEM est disponible en open source en vertu des termes de la licence du MIT.
