Looking for a sample elixir nx bumblebeee app to produce recommendations on routing issues

I am looking for a sample elixir nx bumblebee
App that generates recommendations based on data collected
The issue is that a service call comes in which needs to be routed to an on call group for resolution.
Currently a person routes the call to the on call group. The routing is regularly incorrect.
We would like to have the app determine a suggested on call group to route the call to

Thanks
Bryan

If you know the list of call groups to route to at compile time you could use Instructor and do something like this:

defmodule CallRouter do
  use Ecto.Schema
  
  @doc """
    ## Field Descriptions:
    - call_group: Call group to route to
  """
  @primary_key false
  embedded_schema do
    field(:call_group, Ecto.Enum, values: [:group_1, :group_2, ..., :group_n])
  end

  def route_call(data) do
    Instructor.chat_completion(
    model: "gpt-3.5-turbo",
    response_model: __MODULE__,
    max_retries: 3,
    messages: [
        %{
          role: "system",
          content: """
          Your job is to route calls based on the given data ....
          """
      },
    %{
        role: "user",
        content: """
        Here is the data to consider: #{inspect(data)}
        """
      }
    ]
  )
  end
end

Then to use it you would do something like:

case CallRouter.route_call(data) do
  {:ok, %CallRouter{call_group: group} = result} ->
    # do something with group
  {:error, %Ecto.Changeset = changeset} ->
    # handle errors
end

Right now the adapters supported by Instructor are OpenAI, llamacpp, and (I think) ollama, and bumblebee is on their roadmap, but I dont think it’s supported quite yet.

1 Like

Thanks for your help

1 Like