
Gema asistente con AI directamente en su consola Rails.
Nueva actualización: entrada de voz usando su micrófono, demostración: https://youtu.be/ubr0wnqvkao

Una joya que aprovecha el poder de la IA para hacer que su experiencia de desarrollo sea más eficiente y agradable. Con esta gema, puede optimizar su proceso de codificación, refactorizar sin esfuerzo y mejorar su código, e incluso generar pruebas sobre la marcha. + Vea más ejemplos a continuación.
Vaya a la consola de Rails y corra:
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.sO con la herramienta 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 # Inicie la entrada de voz con CLI
Vea algunos ejemplos a continuación. También puede crear sus propias indicaciones con solo unas pocas líneas de código aquí.
También puede usar una herramienta CLI, cómo usarla.
Casos de uso típicos Cómo puede usar este complemento 
Pide ideas de código: 
¿Necesita ayuda para escribir la prueba RSPEC? 
¿Qué pasa con las pruebas unitarias? 
Pídale a ChatGPT que mejore su código: 
Pídale a Chatgpt que lo analice JSON: 
O puede codificar en base64 su cadena: 
Cree I18N YAML para su modelo (aviso personalizado): 
Agregue esta línea al archivo gem de su aplicación:
gem "ask_chatgpt"Y luego ejecutar:
$ bundleO instálelo usted mismo como:
$ gem install ask_chatgpt Corre rails g ask_chatgpt initializer .
Y puedes editar:
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
endNota: que necesita configurar su clave API https://platform.openai.com/account/api-keys. Puede almacenarlo en .env o .bash_profile.
Ejemplo con nano ~/.bash_profile :
export OPENAI_API_KEY=key
Pero asegúrese de que no se comprometa con el GitHub. Debe ser privado.
Puede definir sus propias indicaciones y usarlas usando .register_prompt . Por ejemplo:
config . register_prompt :extract_email do | arg |
"Extract email from: #{ arg } as JSON"
end Y más tarde puede llamarlo con gpt.extract_email("some text with [email protected], [email protected]") . Si cree que su mensaje personalizado será útil, cree un PR para esta gema.
Si desea obtener el código fuente, use este ayudante AskChatGPT::Helpers.extract_source(str) .
Puedes pasar:
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" ) De forma predeterminada, cuando usa en la aplicación Rails, predeterminada, se incluye una solicitud ( .included_prompts ) que está enviando versiones Ruby/Rails y el nombre del adaptador de la base de datos.
Puede habilitar el modo de depuración para ver la solicitud/respuesta desde OpenAI utilizando dos formas:
AskChatGPT . setup do | config |
config . debug = false
end
# or
# gpt.on!(:debug)
# gpt.off!(:debug) o directamente en la consola gpt.debug! (y termina gpt.debug!(:off) )
Demostración: https://youtu.be/ubr0wnqvkao
Por ahora considero esto como una característica experimental y divertida. Esperamos ver sus comentarios.
Funciona con el comando: gpt.speak o gpt.s (alias).
Este comando comienza a grabar de inmediato y se detendrá después de voice_max_duration Seconds o si presiona alguna tecla.
Para salir del modo de grabación, presione Q .
Voice está utilizando la herramienta ffmpeg , por lo que debe instalarla. Algunas instrucciones como esta funcionarán: https://www.hostinger.com/tutorials/how-to-install-ffmpeg.
Además, debe configurar audio_device_id . Ejecutar ffmpeg -f avfoundation -list_devices true -i ""
Le dará una lista de todos los dispositivos, como este:
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 En mi caso usé "1", porque es Built-in Microphone .
Puede hacer preguntas de CLI o incluso iniciar la entrada de voz.
Ejemplo 1: 
Ejemplo 2: 
Cómo usar:
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?"
También puede crear un alias "A" o "Q", por ejemplo:
Editar archivo: nano ~/.bash_profile
alias a= ' ask_chatgpt '
alias q= ' ask_chatgpt ' Y ahora puede usar q "how to unzip file with Ruby"
Controle el modo desde una consola. O, desde el inicializador, usando config.mode = :async (o sincronización).
gpt . async!
gpt . sync! 
Sorpréntate con hechos aleatorios y consejos útiles. Para usar solo llame a gpt.random (o gpt.tip , gpt.random_tip ).
Por defecto, está usando temas de Ruby/Rails (ver clase RandomTip ).
Pero también puedes usar otros temas, por ejemplo:
gpt . tip
gpt . tip ( "active record" )
gpt . tip ( "sidekiq" )
gpt . tip ( "security" ) Intente formatear la respuesta de Markdown e imprima bien en la consola.
AskChatGPT . setup do | config |
config . markdown = true
end
# or
# gpt.on!(:markdown)
# gpt.off!(:markdown) with_controller , with_class , ....with_usagegpt en el código de la aplicación principal (modelo/control/controlador)gpt.with_payload(json).speak (y enviará carga útil con mi pregunta)¡Le damos la bienvenida para proponer nuevas indicaciones o ajustar las existentes!
Para comenzar solo clonar este repositorio. Ejecute el paquete y vaya a cd test/dummy/ . Inicie rails c y pruebe sus indicaciones.
La gema está disponible como código abierto bajo los términos de la licencia MIT.
