async_openai/types/embeddings/impls.rs
1use base64::engine::{general_purpose, Engine};
2
3use crate::types::embeddings::Base64EmbeddingVector;
4
5impl From<Base64EmbeddingVector> for Vec<f32> {
6 fn from(value: Base64EmbeddingVector) -> Self {
7 let bytes = general_purpose::STANDARD
8 .decode(value.0)
9 .expect("openai base64 encoding to be valid");
10 let chunks = bytes.chunks_exact(4);
11 chunks
12 .map(|chunk| f32::from_le_bytes([chunk[0], chunk[1], chunk[2], chunk[3]]))
13 .collect()
14 }
15}