/
nicktretyakov1
/
vectorDBML
Обзор
Документация
Войти
/
nicktretyakov1
/
vectorDBML
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/python.rs
41 строка
1 KB
nicktretyakov
update4
19 янв 2026, 20:08
19 янв 2026, 20:08
3f2d861
Код
Авторство
О чём код?
#[cfg(feature = "python")] use pyo3::prelude::*; #[cfg(feature = "python")] use burn::tensor::Tensor; #[cfg(feature = "python")] use burn::backend::NdArray; #[cfg(feature = "python")] use crate::{VectorDB, VectorDBConfig, metrics::BuiltInMetric}; #[cfg(feature = "python")] #[pyclass(name = "VectorDB")] pub struct PyVectorDB { inner: VectorDB<NdArray>, } #[cfg(feature = "python")] #[pymethods] impl PyVectorDB { #[new] fn new(dim: usize, use_normalization: Option<bool>, metric: Option<String>) -> PyResult<Self> { // ... (без изменений) let device = Device::<NdArray>::default(); // Правильный способ Ok(Self { inner: config.init(&device) }) } fn add_vector(&mut self, py_vec: Vec<f64>) -> usize { let floats: Vec<f32> = py_vec.into_iter().map(|x| x as f32).collect(); let tensor = Tensor::<NdArray, 1>::from_floats(floats, &Device::<NdArray>::default()); self.inner.add_vector(tensor) } fn search_nearest(&self, py_query: Vec<f64>, k: usize) -> Vec<(usize, f64)> { let floats: Vec<f32> = py_query.into_iter().map(|x| x as f32).collect(); let query = Tensor::<NdArray, 1>::from_floats(floats, &Device::<NdArray>::default()); self.inner.search_nearest(query, k) } }