fixing provider switching
Some checks failed
CI/CD Pipeline / build (push) Failing after 4s

This commit is contained in:
2026-03-23 13:27:27 -06:00
parent d5cd472bf5
commit 10d6583a67
6 changed files with 150 additions and 25 deletions

View File

@@ -38,6 +38,10 @@ defmodule ElixirAi.ChatRunner do
GenServer.call(via(name), {:tool_config, {:set_tool_choice, tool_choice}})
end
def set_provider(name, provider_id) when is_binary(provider_id) do
GenServer.call(via(name), {:tool_config, {:set_provider, provider_id}})
end
def register_liveview_pid(name, liveview_pid) when is_pid(liveview_pid) do
GenServer.call(via(name), {:session, {:register_liveview_pid, liveview_pid}})
end

View File

@@ -1,5 +1,5 @@
defmodule ElixirAi.ChatRunner.ToolConfig do
alias ElixirAi.{AiTools, Conversation}
alias ElixirAi.{AiProvider, AiTools, Conversation}
def handle_call({:set_tool_choice, tool_choice}, _from, state) do
Conversation.update_tool_choice(state.name, tool_choice)
@@ -19,4 +19,13 @@ defmodule ElixirAi.ChatRunner.ToolConfig do
liveview_tools: liveview_tools
}}
end
def handle_call({:set_provider, provider_id}, _from, state) do
with :ok <- Conversation.update_provider(state.name, provider_id),
{:ok, provider} <- AiProvider.find_by_id(provider_id) do
{:reply, {:ok, provider}, %{state | provider: provider}}
else
error -> {:reply, error, state}
end
end
end