25 lines
1005 B
Rust
25 lines
1005 B
Rust
use alpha_id::rerank::rerank;
|
|
use alpha_id::ionos::IonosClient;
|
|
use std::io::Write;
|
|
|
|
#[test]
|
|
fn rerank_returns_scores_aligned_to_documents() {
|
|
let server = tiny_http::Server::http("127.0.0.1:0").unwrap();
|
|
let url = format!("http://{}", server.server_addr());
|
|
let h = std::thread::spawn(move || {
|
|
if let Ok(req) = server.recv() {
|
|
let body = r#"{"results":[{"index":0,"relevance_score":0.2},
|
|
{"index":1,"relevance_score":0.9}]}"#;
|
|
req.respond(tiny_http::Response::from_string(body)).ok();
|
|
}
|
|
});
|
|
let mut tf = tempfile::NamedTempFile::new().unwrap();
|
|
write!(tf, "tok").unwrap();
|
|
let c = IonosClient::new(&url, tf.path().to_str().unwrap()).unwrap();
|
|
let scores = rerank(&c, "Qwen/Qwen3-VL-Reranker-8B", "diabetes",
|
|
&["herzinfarkt".to_string(), "diabetes typ 2".to_string()]).unwrap();
|
|
assert_eq!(scores.len(), 2);
|
|
assert!(scores[1] > scores[0]);
|
|
h.join().ok();
|
|
}
|