Crates.io | modelfile |
lib.rs | modelfile |
version | 0.2.0 |
source | src |
created_at | 2024-11-18 03:05:53.402828 |
updated_at | 2024-11-20 01:25:48.008773 |
description | A parser for Ollama Modelfiles |
homepage | https://github.com/covercash2/modelfile |
repository | https://github.com/covercash2/modelfile |
max_upload_size | |
id | 1451736 |
size | 176,048 |
modelfile
A parser and serde compatible structure for Ollama Modelfiles written in Rust. 🦀
The Modelfile format isn't based on any existing format but is loosely modeled after Dockerfile.
The parser is based on the nom
crate
and tested on a few distinct Modelfiles.
If you find a Modelfile that doesn't parse,
please open an issue!
struct
!Good news!
use modelfile::modelfile::Modelfile;
fn parse() {
let my_modelfile_string = std::fs::read_to_string("./test/llama3.2:latest.Modelfile")
.expect("handle your dang errors");
let my_modelfile: Modelfile = my_modelfile_string.parse()
.expect("if your Modelfile is good this should work!");
let mut builder = my_modelfile.build_on();
let builder = builder
.system("You are a malevolent, world-ending AI agent")
.expect("only one system message allowed");
let my_new_modelfile = builder.build()
.expect("you did it right. you're smart")
.render();
std::fs::write("Modelfile", my_new_modelfile)
.expect("should be able to write to your own dang disk");
}