Skip to content

Commit c89af09

Browse files
committed
chore: fix credo warnings
1 parent d57ab68 commit c89af09

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

lib/models.ex

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
defmodule HyperLLM.Models do
2+
@moduledoc """
3+
Determine the provider and model for a given model name.
4+
"""
5+
26
@providers %{
37
"anthropic" => HyperLLM.Provider.Anthropic,
48
"cloudflare" => HyperLLM.Provider.Cloudflare,
@@ -18,22 +22,14 @@ defmodule HyperLLM.Models do
1822
{:ok, {HyperLLM.Provider.Anthropic, "claude-3-5-sonnet-20240620"}}
1923
"""
2024
def get_provider(model) when is_binary(model) do
21-
case String.split(model, "/", parts: 2) do
22-
[provider, model] ->
23-
case Map.get(@providers, provider) do
24-
nil ->
25-
{:error, :invalid_provider}
26-
27-
provider ->
28-
if provider.has_model?(model) do
29-
{:ok, {provider, model}}
30-
else
31-
{:error, :invalid_model}
32-
end
33-
end
34-
35-
_ ->
36-
{:error, :invalid_model_format}
25+
with [provider, model] <- String.split(model, "/", parts: 2),
26+
provider_module when not is_nil(provider_module) <- Map.get(@providers, provider),
27+
true <- provider_module.has_model?(model) do
28+
{:ok, {provider_module, model}}
29+
else
30+
nil -> {:error, :invalid_provider}
31+
false -> {:error, :invalid_model}
32+
_ -> {:error, :invalid_model_format}
3733
end
3834
end
3935

0 commit comments

Comments
 (0)