# StacktraceGpt
Helps analyse Elixir/Phoenix stacktraces with help of ChatGPT
## Installation
### Dependencies
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `stacktrace_gpt` to your list of dependencies in `mix.exs`:
```elixir
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:
```bash
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
```elixir
config :logger,
backends: [StacktraceGpt.LoggerBackend, :console]
```
#### Run mix task
```bash
mix stacktrace_gpt.install
```
This will create `.iex.exs` file in your project root (if doesn't exist) and following code to it:
```elixir
# 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](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/stacktrace_gpt](https://hexdocs.pm/stacktrace_gpt).
## License
The package is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).