qdrant_client/builders/
relevance_feedback_input_builder.rs1use crate::qdrant::*;
2
3#[derive(Clone)]
4pub struct RelevanceFeedbackInputBuilder {
5 pub(crate) target: VectorInput,
7 pub(crate) feedback: Vec<FeedbackItem>,
9 pub(crate) strategy: Option<FeedbackStrategy>,
11}
12
13impl RelevanceFeedbackInputBuilder {
14 pub fn new(target: impl Into<VectorInput>) -> Self {
28 Self {
29 target: target.into(),
30 feedback: Vec::new(),
31 strategy: None,
32 }
33 }
34
35 pub fn add_feedback(mut self, item: impl Into<FeedbackItem>) -> Self {
37 self.feedback.push(item.into());
38 self
39 }
40
41 pub fn strategy(mut self, value: impl Into<FeedbackStrategy>) -> Self {
43 self.strategy = Some(value.into());
44 self
45 }
46
47 pub fn build(self) -> RelevanceFeedbackInput {
49 RelevanceFeedbackInput {
50 target: Some(self.target),
51 feedback: self.feedback,
52 strategy: self.strategy,
53 }
54 }
55}
56
57impl From<RelevanceFeedbackInputBuilder> for RelevanceFeedbackInput {
58 fn from(value: RelevanceFeedbackInputBuilder) -> Self {
59 value.build()
60 }
61}