prompt

Macro prompt 

Source
macro_rules! prompt {
    ($template:expr, $($key:ident = $value:expr),* $(,)?) => { ... };
}
Expand description

Creates a prompt string from a template and key-value pairs.

This macro provides a println!-like experience for building prompts from various data sources. It leverages minijinja for templating.

ยงExample

use llm_toolkit::prompt;
use serde::Serialize;

#[derive(Serialize)]
struct User {
    name: &'static str,
    role: &'static str,
}

let user = User { name: "Mai", role: "UX Engineer" };
let task = "designing a new macro";

let p = prompt!(
    "User {{user.name}} ({{user.role}}) is currently {{task}}.",
    user = user,
    task = task
).unwrap();

assert_eq!(p, "User Mai (UX Engineer) is currently designing a new macro.");