summaryrefslogtreecommitdiffstats
path: root/src/config/input.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-06-21 06:00:26 +0800
committerGitHub <noreply@github.com>2024-06-21 06:00:26 +0800
commitabc588daac6053ec2edbdcde3f5a2dc5eb7d50b8 (patch)
tree9f1cd8a40bd959420dfdf4ac3ae8b52f823aa1e9 /src/config/input.rs
parent2eab71a641827e503b14952373aec82661192ba2 (diff)
downloadaichat-abc588daac6053ec2edbdcde3f5a2dc5eb7d50b8.tar.gz
feat: support rerank (#620)
Diffstat (limited to 'src/config/input.rs')
-rw-r--r--src/config/input.rs21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/config/input.rs b/src/config/input.rs
index 892a41f..03ec999 100644
--- a/src/config/input.rs
+++ b/src/config/input.rs
@@ -169,20 +169,31 @@ impl Input {
if !self.text.is_empty() {
let rag = self.config.read().rag.clone();
if let Some(rag) = rag {
- let (top_k, min_score_vector, min_score_text) = {
+ let (top_k, min_score_vector_search, min_score_fulltext_search) = {
let config = self.config.read();
(
config.rag_top_k,
- config.rag_min_score_vector,
- config.rag_min_score_text,
+ config.rag_min_score_vector_search,
+ config.rag_min_score_fulltext_search,
)
};
+ let rerank = match self.config.read().rag_rerank_model.clone() {
+ Some(rerank_model_id) => {
+ let min_score = self.config.read().rag_min_score_rerank;
+ let rerank_model =
+ Model::retrieve_rerank(&self.config.read(), &rerank_model_id)?;
+ let rerank_client = init_client(&self.config, Some(rerank_model))?;
+ Some((rerank_client, min_score))
+ }
+ None => None,
+ };
let embeddings = rag
.search(
&self.text,
top_k,
- min_score_vector,
- min_score_text,
+ min_score_vector_search,
+ min_score_fulltext_search,
+ rerank,
abort_signal,
)
.await?;