Current section

Files

Jump to
llmgleam src llmgleam@client.erl
Raw

src/llmgleam@client.erl

-module(llmgleam@client).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/llmgleam/client.gleam").
-export([new_client/2, completion/3]).
-export_type([provider/0, client/0]).
-type provider() :: gemini.
-opaque client() :: {gemini_client, llmgleam@gemini:gemini_client_internal()}.
-file("src/llmgleam/client.gleam", 12).
-spec new_client(provider(), binary()) -> client().
new_client(Provider, Api_key) ->
case Provider of
gemini ->
{gemini_client, {gemini_client_internal, Api_key}}
end.
-file("src/llmgleam/client.gleam", 18).
-spec completion(client(), binary(), list(llmgleam@types:chat_message())) -> {ok,
llmgleam@types:completion()} |
{error, llmgleam@types:completion_error()}.
completion(Client, Model, Messages) ->
case Client of
{gemini_client, C} ->
llmgleam@gemini:generate_content(C, Model, Messages)
end.