Packages
llama_cpp_ex
0.7.3
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.28
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.0
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.3.0
0.2.0
Elixir bindings for llama.cpp — run LLMs locally with Metal, CUDA, Vulkan, or CPU acceleration.
Current section
Files
Jump to
Current section
Files
lib/llama_cpp_ex/nif.ex
defmodule LlamaCppEx.NIF do
@moduledoc false
@on_load :load_nif
def load_nif do
path = :filename.join(:code.priv_dir(:llama_cpp_ex), ~c"llama_cpp_ex_nif")
:erlang.load_nif(path, 0)
end
# Backend
def backend_init, do: :erlang.nif_error(:not_loaded)
def backend_free, do: :erlang.nif_error(:not_loaded)
# Model
def model_load(
_path,
_n_gpu_layers,
_use_mmap,
_main_gpu,
_split_mode,
_tensor_split,
_use_mlock,
_use_direct_io,
_vocab_only,
_check_tensors
),
do: :erlang.nif_error(:not_loaded)
def model_n_ctx_train(_model), do: :erlang.nif_error(:not_loaded)
def model_n_embd(_model), do: :erlang.nif_error(:not_loaded)
def model_desc(_model), do: :erlang.nif_error(:not_loaded)
def model_size(_model), do: :erlang.nif_error(:not_loaded)
def model_n_params(_model), do: :erlang.nif_error(:not_loaded)
def model_chat_template(_model), do: :erlang.nif_error(:not_loaded)
# Vocab
def vocab_n_tokens(_model), do: :erlang.nif_error(:not_loaded)
def vocab_bos(_model), do: :erlang.nif_error(:not_loaded)
def vocab_eos(_model), do: :erlang.nif_error(:not_loaded)
def vocab_is_eog(_model, _token), do: :erlang.nif_error(:not_loaded)
# Tokenization
def tokenize(_model, _text, _add_special, _parse_special), do: :erlang.nif_error(:not_loaded)
def detokenize(_model, _tokens), do: :erlang.nif_error(:not_loaded)
def token_to_piece(_model, _token), do: :erlang.nif_error(:not_loaded)
# Context
def context_create(
_model,
_n_ctx,
_n_batch,
_n_ubatch,
_n_threads,
_n_threads_batch,
_embeddings,
_pooling_type,
_n_seq_max,
_type_k,
_type_v,
_flash_attn,
_offload_kqv,
_op_offload,
_rope_scaling_type,
_rope_freq_base,
_rope_freq_scale,
_yarn_ext_factor,
_yarn_attn_factor,
_yarn_beta_fast,
_yarn_beta_slow,
_yarn_orig_ctx,
_attention_type,
_no_perf,
_swa_full
),
do: :erlang.nif_error(:not_loaded)
def context_n_ctx(_ctx), do: :erlang.nif_error(:not_loaded)
def context_n_seq_max(_ctx), do: :erlang.nif_error(:not_loaded)
# Sampler
def sampler_init(
_model,
_seed,
_temp,
_top_k,
_top_p,
_min_p,
_penalty_repeat,
_penalty_freq,
_penalty_present,
_grammar_str,
_grammar_root
),
do: :erlang.nif_error(:not_loaded)
def sampler_accept(_sampler, _token), do: :erlang.nif_error(:not_loaded)
def sampler_reset(_sampler), do: :erlang.nif_error(:not_loaded)
def sampler_sample(_sampler, _ctx), do: :erlang.nif_error(:not_loaded)
# Decode
def decode(_ctx, _tokens), do: :erlang.nif_error(:not_loaded)
# Memory
def memory_clear(_ctx), do: :erlang.nif_error(:not_loaded)
def memory_seq_rm(_ctx, _seq_id, _p0, _p1), do: :erlang.nif_error(:not_loaded)
def memory_seq_cp(_ctx, _seq_id_src, _seq_id_dst, _p0, _p1), do: :erlang.nif_error(:not_loaded)
def memory_seq_keep(_ctx, _seq_id), do: :erlang.nif_error(:not_loaded)
def memory_seq_pos_max(_ctx, _seq_id), do: :erlang.nif_error(:not_loaded)
# Chat template
def chat_apply_template(_template, _messages, _add_assistant),
do: :erlang.nif_error(:not_loaded)
# Jinja chat template (via common library)
def chat_apply_template_jinja(
_model,
_messages,
_add_assistant,
_enable_thinking,
_extra_kwargs
),
do: :erlang.nif_error(:not_loaded)
# Streaming generation (sends messages to caller_pid tagged with ref)
def generate_tokens(_ctx, _sampler, _prompt_tokens, _max_tokens, _caller_pid, _ref),
do: :erlang.nif_error(:not_loaded)
# High-level generation
def generate(_ctx, _sampler, _prompt_tokens, _max_tokens), do: :erlang.nif_error(:not_loaded)
# Embeddings
def embed_decode(_ctx, _tokens, _seq_id), do: :erlang.nif_error(:not_loaded)
def get_embeddings(_ctx, _seq_id, _normalize), do: :erlang.nif_error(:not_loaded)
# Batched inference
def prefill(_ctx, _tokens, _seq_id), do: :erlang.nif_error(:not_loaded)
def decode_batch(_ctx, _sampler, _entries), do: :erlang.nif_error(:not_loaded)
def decode_token(_ctx, _token_id, _pos, _seq_id), do: :erlang.nif_error(:not_loaded)
# Continuous batching
def batch_eval(_ctx, _entries), do: :erlang.nif_error(:not_loaded)
def sampler_sample_at(_sampler, _ctx, _idx), do: :erlang.nif_error(:not_loaded)
# JSON Schema to Grammar
def json_schema_to_grammar_nif(_json_str), do: :erlang.nif_error(:not_loaded)
end