Skip to main content

src/langfuse_client.erl

-module(langfuse_client).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/langfuse_client.gleam").
-export([new/3, list_scores/2, decode_scores/1, score_query/0, with_page/2, with_limit/2, with_name/2, with_trace_id/2, with_session_id/2, with_dataset_run_id/2, with_user_id/2, with_data_type/2, with_from_timestamp/2, with_to_timestamp/2]).

-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.

?MODULEDOC(
    " Umbrella module that re-exports the public API. The implementation lives\n"
    " in `langfuse_client/client` and `langfuse_client/score`; importing those directly is\n"
    " equivalent.\n"
    "\n"
    "   let c = langfuse_client.new(\n"
    "     base_url: \"https://us.cloud.langfuse.com\",\n"
    "     public_key: \"pk-lf-...\",\n"
    "     secret_key: \"sk-lf-...\",\n"
    "   )\n"
    "\n"
    "   langfuse_client.list_scores(c, langfuse_client.score_query() |> langfuse_client.with_limit(10))\n"
).

-file("src/langfuse_client.gleam", 46).
?DOC(" See [`client.new`](./langfuse_client/client.html#new).\n").
-spec new(binary(), binary(), binary()) -> langfuse_client@client:client().
new(Base_url, Public_key, Secret_key) ->
    langfuse_client@client:new(Base_url, Public_key, Secret_key).

-file("src/langfuse_client.gleam", 58).
?DOC(" See [`score.list`](./langfuse_client/score.html#list). Erlang-only.\n").
-spec list_scores(
    langfuse_client@client:client(),
    langfuse_client@score:'query'()
) -> {ok, langfuse_client@score:scores()} |
    {error, langfuse_client@client:error()}.
list_scores(C, Q) ->
    langfuse_client@score:list(C, Q).

-file("src/langfuse_client.gleam", 63).
?DOC(" See [`score.decode`](./langfuse_client/score.html#decode).\n").
-spec decode_scores(binary()) -> {ok, langfuse_client@score:scores()} |
    {error, gleam@json:decode_error()}.
decode_scores(Body) ->
    langfuse_client@score:decode(Body).

-file("src/langfuse_client.gleam", 68).
?DOC(" See [`score.query`](./langfuse_client/score.html#query).\n").
-spec score_query() -> langfuse_client@score:'query'().
score_query() ->
    langfuse_client@score:'query'().

-file("src/langfuse_client.gleam", 73).
?DOC(" See [`score.with_page`](./langfuse_client/score.html#with_page).\n").
-spec with_page(langfuse_client@score:'query'(), integer()) -> langfuse_client@score:'query'().
with_page(Q, Page) ->
    langfuse_client@score:with_page(Q, Page).

-file("src/langfuse_client.gleam", 78).
?DOC(" See [`score.with_limit`](./langfuse_client/score.html#with_limit).\n").
-spec with_limit(langfuse_client@score:'query'(), integer()) -> langfuse_client@score:'query'().
with_limit(Q, Limit) ->
    langfuse_client@score:with_limit(Q, Limit).

-file("src/langfuse_client.gleam", 83).
?DOC(" See [`score.with_name`](./langfuse_client/score.html#with_name).\n").
-spec with_name(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_name(Q, Name) ->
    langfuse_client@score:with_name(Q, Name).

-file("src/langfuse_client.gleam", 88).
?DOC(" See [`score.with_trace_id`](./langfuse_client/score.html#with_trace_id).\n").
-spec with_trace_id(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_trace_id(Q, Trace_id) ->
    langfuse_client@score:with_trace_id(Q, Trace_id).

-file("src/langfuse_client.gleam", 93).
?DOC(" See [`score.with_session_id`](./langfuse_client/score.html#with_session_id).\n").
-spec with_session_id(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_session_id(Q, Session_id) ->
    langfuse_client@score:with_session_id(Q, Session_id).

-file("src/langfuse_client.gleam", 98).
?DOC(" See [`score.with_dataset_run_id`](./langfuse_client/score.html#with_dataset_run_id).\n").
-spec with_dataset_run_id(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_dataset_run_id(Q, Dataset_run_id) ->
    langfuse_client@score:with_dataset_run_id(Q, Dataset_run_id).

-file("src/langfuse_client.gleam", 106).
?DOC(" See [`score.with_user_id`](./langfuse_client/score.html#with_user_id).\n").
-spec with_user_id(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_user_id(Q, User_id) ->
    langfuse_client@score:with_user_id(Q, User_id).

-file("src/langfuse_client.gleam", 111).
?DOC(" See [`score.with_data_type`](./langfuse_client/score.html#with_data_type).\n").
-spec with_data_type(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_data_type(Q, Data_type) ->
    langfuse_client@score:with_data_type(Q, Data_type).

-file("src/langfuse_client.gleam", 116).
?DOC(" See [`score.with_from_timestamp`](./langfuse_client/score.html#with_from_timestamp).\n").
-spec with_from_timestamp(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_from_timestamp(Q, From) ->
    langfuse_client@score:with_from_timestamp(Q, From).

-file("src/langfuse_client.gleam", 121).
?DOC(" See [`score.with_to_timestamp`](./langfuse_client/score.html#with_to_timestamp).\n").
-spec with_to_timestamp(langfuse_client@score:'query'(), binary()) -> langfuse_client@score:'query'().
with_to_timestamp(Q, To) ->
    langfuse_client@score:with_to_timestamp(Q, To).