mirror of
https://github.com/0xMassi/webclaw.git
synced 2026-07-21 07:01:01 +02:00
- Bootstrap crates/noxa-rag with lib+binary layout - EmbedProvider trait (1 method: embed) - VectorStore trait (4 methods: upsert, delete_by_url, search, name) - RagError enum (#[non_exhaustive], thiserror, From impls) - Types: Chunk, Point, PointPayload, SearchResult - Config: RagConfig with serde tagged enums for all providers - load_config() with embed_concurrency > 0 validation - Tokenizer Sync compile-time assertion in lib.rs - Stub implementations for all modules (noxa-68r.2-.8)
30 lines
929 B
Rust
30 lines
929 B
Rust
// QdrantStore — implemented in noxa-68r.4
|
|
use async_trait::async_trait;
|
|
use crate::error::RagError;
|
|
use crate::store::VectorStore;
|
|
use crate::types::{Point, SearchResult};
|
|
|
|
pub struct QdrantStore {
|
|
pub(crate) client: qdrant_client::Qdrant,
|
|
pub(crate) collection: String,
|
|
}
|
|
|
|
#[async_trait]
|
|
impl VectorStore for QdrantStore {
|
|
async fn upsert(&self, _points: Vec<Point>) -> Result<(), RagError> {
|
|
// Full implementation in noxa-68r.4
|
|
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
|
|
}
|
|
|
|
async fn delete_by_url(&self, _url: &str) -> Result<(), RagError> {
|
|
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
|
|
}
|
|
|
|
async fn search(&self, _vector: &[f32], _limit: usize) -> Result<Vec<SearchResult>, RagError> {
|
|
Err(RagError::Store("QdrantStore not yet implemented".to_string()))
|
|
}
|
|
|
|
fn name(&self) -> &str {
|
|
"qdrant"
|
|
}
|
|
}
|