Harden OpenAI api layer

- Support rate limiting
- Add proper error handling (don't rely on exceptions)

Closes #147
This commit is contained in:
Claudio Ortolina
2026-04-05 16:01:29 +01:00
parent a5df68c7ad
commit 7b5b7e68dd
4 changed files with 37 additions and 24 deletions
+9 -2
View File
@@ -1,12 +1,14 @@
defmodule OpenAI.Config do
@type t :: %__MODULE__{
api_key: String.t(),
req_options: Keyword.t()
req_options: Keyword.t(),
api_cooldown: non_neg_integer()
}
@enforce_keys [:api_key]
defstruct api_key: "",
req_options: []
req_options: [],
api_cooldown: 500
@schema NimbleOptions.new!(
api_key: [
@@ -17,6 +19,11 @@ defmodule OpenAI.Config do
type: :keyword_list,
required: false,
default: []
],
api_cooldown: [
type: :integer,
required: false,
default: 500
]
)