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}