Embed a batch of texts using the resolved provider. Returns one vector per input text.
(&self, texts: &[String])
| 138 | /// |
| 139 | /// Returns one vector per input text. |
| 140 | pub async fn embed(&self, texts: &[String]) -> Result<Vec<Vec<f32>>, AiError> { |
| 141 | match self.provider { |
| 142 | AiProvider::Anthropic => self.embed_voyage(texts).await, |
| 143 | AiProvider::OpenAi => self.embed_openai(texts).await, |
| 144 | AiProvider::Local | AiProvider::None => Ok(texts |
| 145 | .iter() |
| 146 | .map(|t| crate::hash_embed(t, self.dimensions)) |
| 147 | .collect()), |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | /// Embed a single text. |
| 152 | pub async fn embed_one(&self, text: &str) -> Result<Vec<f32>, AiError> { |
no test coverage detected