Talk to ChatGPT from the Julia REPL!
It's as simple as using ReplGPT
and entering the shell with }
:
julia> using ReplGPT
REPL mode ChatGPT_mode initialized. Press } to enter and backspace to exit.
ChatGPT> Can you give me a quick example of exponentiating a matrix in Julia?
Certainly! Here's an example of exponentiating a matrix in Julia:
A = [1 2; 3 4] # Create a 2x2 matrix
B = exp(A) # Exponentiate the matrix using the "exp" function
The resulting matrix B will be:
2.718281828459045 7.3890560989306496
20.085536923187668 54.598150033144236
In this example, we exponentiated the matrix A using the built-in exp function in Julia, which applies the exponential
function element-wise to a matrix.
ChatGPT> Thanks! Can you redo it with the matrix A = [1 i; -i 1]?
Sure, here's how you can exponentiate the matrix A = [1 i; -i 1] in Julia:
using LinearAlgebra
A = [1 im; -im 1] # Create 2x2 matrix with complex elements
B = exp(A) # Exponentiate the matrix using the "exp" function in LinearAlgebra
The resulting matrix B will be:
-0.131204 + 0.991017im 0.841471 - 0.540302im
-0.841471 - 0.540302im -0.131204 - 0.991017im
In this example, we created a 2x2 matrix A with complex elements using the imaginary unit im in Julia. Then we used the exp
function from the LinearAlgebra package to exponentiate the matrix A.
ChatGPT> Great! What language was all this again?
This was all done in Julia, a high-level, dynamic programming language designed for numerical and scientific computing, data
science, and artificial intelligence.
ChatGPT>
You will need to obtain an OpenAI API key from openai.com and pass it to Julia. ReplGPT.jl
will look for an API key in the module's settings and in
the OPENAI_API_KEY
environment variable as a fallback.
The recommended approach is to save the API key in the module's settings by running:
julia> using ReplGPT
julia> ReplGPT.setAPIkey("<YOUR KEY HERE>")
The API key can later be cleared with ReplGPT.clearAPIkey()
.
Note: with this approach your API key will be stored in plaintext in a
LocalPreferences.toml
folder in your environment directory. For example, on a Linux computer running Julia 1.8, the key is
stored in
~/.julia/environments/v1.8/LocalPreferences.toml
.
If there is interest, we can look for a non-plaintext way to store these keys.
To specify your key using environment variables, invoke Julia as shown below:
$ OPENAI_API_KEY=<key goes here> julia
Note that when the environment variable is used, the key is not saved to the LocalPreferences.toml
file.
The OpenAI model name can be selected with the ReplGPT.setmodelname(...)
function:
# Select gpt-3.5-turbo (default):
ReplGPT.setmodelname("gpt-3.5-turbo")
# Select gpt-4
ReplGPT.setmodelname("gpt-4")
Inspiration drawn from OpenAI.jl, ReplMaker.jl, APL.jl, and Xe Iaso's ChatGPT emacs integration in "We're never getting rid of ChatGPT".