variphx commited on
Commit
79bbee8
·
1 Parent(s): 8aa62f1

fix: change dto schema and update some query logic

Browse files
src/models/dtos/keyframes/mod.rs CHANGED
@@ -4,7 +4,9 @@ use crate::models::entities::{keyframes::KeyframeEntity, videos::VideoEntity};
4
  pub struct KeyframeDto {
5
  id: i64,
6
  name: String,
 
7
  video_name: String,
 
8
  frame_index: i64,
9
  frame_timestamp: f32,
10
  }
@@ -13,13 +15,17 @@ impl From<(KeyframeEntity, VideoEntity)> for KeyframeDto {
13
  fn from((mut keyframe, mut video): (KeyframeEntity, VideoEntity)) -> Self {
14
  let id = keyframe.id();
15
  let name = std::mem::take(keyframe.name_mut());
 
16
  let video_name = std::mem::take(video.name_mut());
 
17
  let frame_index = keyframe.frame_index();
18
  let frame_timestamp = keyframe.frame_timestamp();
19
  Self {
20
  id,
21
  name,
 
22
  video_name,
 
23
  frame_index,
24
  frame_timestamp,
25
  }
 
4
  pub struct KeyframeDto {
5
  id: i64,
6
  name: String,
7
+ video_id: i64,
8
  video_name: String,
9
+ watch_url: String,
10
  frame_index: i64,
11
  frame_timestamp: f32,
12
  }
 
15
  fn from((mut keyframe, mut video): (KeyframeEntity, VideoEntity)) -> Self {
16
  let id = keyframe.id();
17
  let name = std::mem::take(keyframe.name_mut());
18
+ let video_id = video.id();
19
  let video_name = std::mem::take(video.name_mut());
20
+ let watch_url = std::mem::take(video.watch_url_mut());
21
  let frame_index = keyframe.frame_index();
22
  let frame_timestamp = keyframe.frame_timestamp();
23
  Self {
24
  id,
25
  name,
26
+ video_id,
27
  video_name,
28
+ watch_url,
29
  frame_index,
30
  frame_timestamp,
31
  }
src/models/dtos/vectors/keyframes/requests/mod.rs CHANGED
@@ -13,8 +13,4 @@ impl VectorizedKeyframeRequestDto {
13
  pub fn top_k(&self) -> u64 {
14
  self.top_k
15
  }
16
-
17
- // pub fn object_threshold(&self) -> f64 {
18
- // self.object_threshold
19
- // }
20
  }
 
13
  pub fn top_k(&self) -> u64 {
14
  self.top_k
15
  }
 
 
 
 
16
  }
src/models/states/mod.rs CHANGED
@@ -32,11 +32,13 @@ impl AppState {
32
  }
33
 
34
  async fn qdrant_client_helper() -> anyhow::Result<Arc<Qdrant>> {
35
- let client = Qdrant::from_url(&format!(
36
- "http://{}:{}",
37
- std::env::var("QDRANT_HOST")?,
38
- std::env::var("QDRANT_GRPC_PORT")?
39
- ))
 
 
40
  .build()?;
41
  Ok(Arc::new(client))
42
  }
 
32
  }
33
 
34
  async fn qdrant_client_helper() -> anyhow::Result<Arc<Qdrant>> {
35
+ let client = Qdrant::from_url(
36
+ &std::env::var("QDRANT_URL").expect("`QDRANT_URL` environment variable must be set"),
37
+ )
38
+ .api_key(
39
+ std::env::var("QDRANT_API_KEY")
40
+ .expect("`QDRANT_API_KEY` environment variable must be set"),
41
+ )
42
  .build()?;
43
  Ok(Arc::new(client))
44
  }
src/services/queries/keyframes/mod.rs CHANGED
@@ -1,6 +1,6 @@
1
  use qdrant_client::{
2
  Qdrant,
3
- qdrant::{PrefetchQueryBuilder, Query, QueryPointsBuilder},
4
  };
5
  use rayon::iter::{IntoParallelIterator, ParallelIterator};
6
  use translators::{GoogleTranslator, Translator};
@@ -44,14 +44,8 @@ impl<'a> VectorizedKeyframeService<'a> {
44
  .client
45
  .query(
46
  QueryPointsBuilder::new(QDRANT_KEYFRAME_COLLECTION_NAME)
47
- .add_prefetch(
48
- PrefetchQueryBuilder::default()
49
- .query(Query::new_nearest(embeddings.clone()))
50
- .using("images")
51
- .limit(top_k * 10),
52
- )
53
  .query(Query::new_nearest(embeddings))
54
- .using("objects")
55
  .limit(top_k),
56
  )
57
  .await?
 
1
  use qdrant_client::{
2
  Qdrant,
3
+ qdrant::{Query, QueryPointsBuilder},
4
  };
5
  use rayon::iter::{IntoParallelIterator, ParallelIterator};
6
  use translators::{GoogleTranslator, Translator};
 
44
  .client
45
  .query(
46
  QueryPointsBuilder::new(QDRANT_KEYFRAME_COLLECTION_NAME)
 
 
 
 
 
 
47
  .query(Query::new_nearest(embeddings))
48
+ .using("images")
49
  .limit(top_k),
50
  )
51
  .await?