working on redundancy

This commit is contained in:
2026-03-06 16:37:31 -07:00
parent 8059048db2
commit 181c6ca84b
16 changed files with 282 additions and 29 deletions

View File

@@ -4,7 +4,7 @@ defmodule ElixirAi.ChatRunner do
import ElixirAi.ChatUtils
alias ElixirAi.{Conversation, Message}
defp via(name), do: {:via, Registry, {ElixirAi.ChatRegistry, name}}
defp via(name), do: {:via, Horde.Registry, {ElixirAi.ChatRegistry, name}}
defp topic(name), do: "ai_chat:#{name}"
defp message_topic(name), do: "conversation_messages:#{name}"
@@ -32,6 +32,13 @@ defmodule ElixirAi.ChatRunner do
_ -> []
end
last_message = List.last(messages)
if last_message && last_message.role == :user do
Logger.info("Last message role was #{last_message.role}, requesting AI response for conversation #{name}")
request_ai_response(self(), messages, tools(self(), name))
end
{:ok,
%{
name: name,
@@ -282,6 +289,12 @@ defmodule ElixirAi.ChatRunner do
}}
end
def handle_info({:ai_request_error, reason}, state) do
Logger.error("AI request error: #{inspect(reason)}")
broadcast_ui(state.name, {:ai_request_error, reason})
{:noreply, %{state | streaming_response: nil, pending_tool_calls: []}}
end
def handle_call(:get_conversation, _from, state) do
{:reply, state, state}
end