assay_core/cache/
key.rs

1use sha2::{Digest, Sha256};
2
3pub fn cache_key(model: &str, prompt: &str, fingerprint: &str, trace_hash: Option<&str>) -> String {
4    let mut h = Sha256::new();
5    h.update(model.as_bytes());
6    h.update(b"\n");
7    h.update(prompt.as_bytes());
8    h.update(b"\n");
9    h.update(fingerprint.as_bytes());
10    if let Some(th) = trace_hash {
11        h.update(b"\n");
12        h.update(th.as_bytes());
13    }
14    format!("{:x}", h.finalize())
15}