defmodule Helix.Modules.BBTextModule do use Helix.Modules.Module import Helix.Modules.GPTUtils def handle_cast({:convey, event}, state) do state = update_input_history(state, event) prompt = update_prompt(state) :timer.sleep(String.to_integer(Map.get(state, :delay, "0"))) {:ok, gpt2} = Bumblebee.load_model({:hf, "gpt2"}) {:ok, tokenizer} = Bumblebee.load_tokenizer({:hf, "gpt2"}) serving = Bumblebee.Text.generation(gpt2, tokenizer, max_new_tokens: 100) res = Nx.Serving.run(serving, prompt) output_state = convey(Enum.at(res.results, 0).text, state) {:noreply, output_state} end end