Skip to content

ThatcherC/ReplGPT.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReplGPT.jl

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> 

Getting Started:

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.

Selecting a Model

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".