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