Fix review blockers in record chat

- Add Task.Supervisor to app supervision tree
- Use tagged tuples instead of rescue for error handling
- Pass embedding_text from parent LiveView as prop
- Remove dead Completion struct fields
- Extract socket assigns before Task closure
- Log errors server-side, show generic user message
- Make build_system_prompt private, remove thin wrapper
- Extract do_send_message for retry reuse

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Claudio Ortolina
2026-02-22 10:20:58 +00:00
parent 6e6e419801
commit 8d38512712
10 changed files with 99 additions and 91 deletions
+5 -2
View File
@@ -16,12 +16,15 @@ defmodule OpenAI do
{:ok, result}
end
def chat_stream(messages, opts \\ []) do
def chat_stream(messages, opts \\ []) when is_list(messages) do
model = Keyword.get(opts, :model, "gpt-4o-mini")
temperature = Keyword.get(opts, :temperature, 0.7)
on_chunk = Keyword.fetch!(opts, :on_chunk)
API.chat_stream(messages, model, temperature, api_key(), on_chunk)
case API.chat_stream(messages, model, temperature, api_key(), on_chunk) do
:ok -> :ok
{:error, _reason} = error -> error
end
end
def embeddings(text) do