I did not - I added the following line to my application.ex start function:
Nx.global_default_backend(EXLA.Backend)
The app ran… but the text generation was really wonky. It always provides one of two answers… either “The answer to the question is” or “No human can do this problem”.
I can keep playing with the model itself… but particularly strange (in that I don’t fully understand what’s happening under the hood) is how this process relates to the Phoenix app I’m using to present the output.
Ideally I’d like this to work in an agentic sense - I send the LLM a prompt, and it gives me a response - and that is the end of the interaction. I’ve had a few different anomalies in how this is playing out, but in a general sense… the page is not fully loading/mounting.
For reference - relevant portions of my live view file:
def mount(_params, _session, socket) do
# quiz_id = params["quiz_id"]
IO.puts("Mounting Narrative Component")
quiz_id = "1"
quiz =
case MathQuiz.Quiz.fetch_quiz(quiz_id) do
{:ok, quiz} -> quiz |> Quiz.shuffle_quiz()
{:error, _msg} -> :error
_ -> :error
end
|> make_quiz_narrative()
IO.puts("Narrative Component Created.")
{:ok,
socket
|> assign(quiz_id: quiz_id)
|> assign(quiz: quiz)}
end
def make_quiz_narrative(%Models.MathQuiz{} = quiz) do
Map.update!(quiz, :questions, &Enum.map(&1, fn x -> add_narrative_description(x) end))
|> IO.inspect(label: "Story Maker")
end
def add_narrative_description(%Models.MathQuizItem{} = item) do
response = Quiz.make_story_question(item)
text =
case response do
%{result: result} -> result.text
_ -> "N/A"
end
Map.put(item, :story_text, text) |> IO.inspect()
end
Is there a different way I should be evaluating the model?






















