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
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.