/
alexefan136
/
flowstack
Обзор
Документация
Войти
/
alexefan136
/
flowstack
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
core/rag/src/embedding/mod.rs
47 строк
1 KB
Alexander Efanov
Обновление репозитория
15 июл 2026, 12:19
15 июл 2026, 12:19
76704c6
Код
Авторство
О чём код?
//! Embedding providers для векторизации текстов. //! //! # Доступные провайдеры //! //! - [`CloudRuEmbedder`] — Cloud.ru Foundation Models API (Qwen3-Embedding) //! - [`MockEmbedder`] — mock для тестов pub mod cloud_ru; pub mod mock; pub mod traits; pub use cloud_ru::CloudRuEmbedder; pub use mock::MockEmbedder; pub use traits::{Embedder, EmbedderConfig}; use crate::config::LlmConfig; use crate::{Error, Result}; /// Factory для создания embedder по конфигурации. pub async fn create_embedder(config: LlmConfig) -> Result<Box<dyn Embedder>> { match config.provider.as_str() { "cloud_ru" => { let embedder = CloudRuEmbedder::new(config).await?; Ok(Box::new(embedder)) } "mock" => Ok(Box::new(MockEmbedder::new())), _ => Err(Error::InvalidConfig { message: format!("Unknown embedding provider: {}", config.provider), }), } } /// Создать mock embedder для тестов. pub fn create_mock_embedder() -> Box<dyn Embedder> { Box::new(MockEmbedder::new()) } #[cfg(test)] mod tests { use super::*; #[test] fn test_create_mock_embedder() { let embedder = create_mock_embedder(); assert_eq!(embedder.model_name(), "mock"); } }