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}