llama.cpp bindings for Moonbit
./scripts/fetch-test-model.sh
moon run main --target native -- target/test-models/stories15M-q4_0.gguf
moon run main --target native -- target/test-models/stories15M-q4_0.gguf random///|
let greedy_options = @llama.GenerationOptions::new(max_tokens=32)
///|
let random_options = @llama.GenerationOptions::new(
max_tokens=32,
strategy=@llama.SamplingStrategy::random(seed=42U),
)pub(all) suberror GenerationError {
SessionNeedsReset
VocabularyUnavailable
EmptyPrompt
PromptExceedsContext(Int, UInt)
TokenizationFailed(Int)
SamplerCreateFailed
DecodeFailed(Int)
TokenToPieceFailed(Int, Int)
} derive(Debug)pub struct Completion {
text : String
prompt_tokens : Int
generated_tokens : Int
finish_reason : FinishReason
} derive(Debug)pub struct GenerationOptions {
// private fields
}pub struct Model {
// private fields
}pub enum SamplingStrategy {
Greedy
Random(seed~ : UInt?, temperature~ : Double, top_k~ : Int, top_p~ : Double)
} derive(Debug)fn SamplingStrategy::random(seed? : UInt, temperature? : Double, top_k? : Int, top_p? : Double) -> SamplingStrategypub struct Session {
// private fields
}fn Session::complete(self : Session, prompt : StringView, options~ : GenerationOptions) -> Completion raise GenerationErrorllama.cpp bindings for Moonbit