StacktraceGpt

Helps analyse Elixir/Phoenix stacktraces with help of ChatGPT

Installation

Dependencies

If available in Hex, the package can be installed by adding stacktrace_gpt to your list of dependencies in mix.exs:

def deps do
[
{:stacktrace_gpt, "~> 0.1.0", runtime: Mix.env() == :dev, only: :dev}
]
end

Configuration

Set OpenAI key in your dev environment

You can get your OpenAI key from https://platform.openai.com/account/api-keys, Organization ID you can grab here https://platform.openai.com/account/org-settings and set those in your development environment, e.g. in the .env file:

export OPENAI_KEY=sk-...
export OPENAI_ORGANIZATION_ID=sk-...

then load this file into your environment with source .env command.

Add Logger backend to dev.exs

config :logger,
backends: [StacktraceGpt.LoggerBackend, :console]

Run mix task

mix stacktrace_gpt.install

This will create .iex.exs file in your project root (if doesn't exist) and following code to it:

# StacktraceGpt - GPT explanation of stacktraces when you have an error in iex console
# just type `gpt` right after you get an error and you will get an explanation from ChatGPT
defmodule StacktraceGpt.Imports do
def gpt, do: StacktraceGpt.Server.ask_gpt()
end
import StacktraceGpt.Imports
require Logger
Logger.info("StacktraceGpt is enabled! Type `gpt` after error to get an explanation from ChatGPT")

After this you can run your mix or phoenix project in the interactive console (iex -S mix or iex -S mix phx.server) and use gpt command in your iex console to get an explanation from ChatGPT for the last console error.

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/stacktrace_gpt.

License

The package is available as open source under the terms of the MIT License.