File size: 992 Bytes
348f7b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import os
import openai
import numpy as np
from typing import List, Union
import asyncio

class EmbeddingModel:
    def __init__(self, model_name: str = "text-embedding-3-small"):
        self.model_name = model_name
        self.openai_api_key = os.getenv("OPENAI_API_KEY")
        if self.openai_api_key is None:
            raise ValueError("OPENAI_API_KEY is not set")

    def get_embedding(self, text: str) -> np.ndarray:
        openai.api_key = self.openai_api_key
        response = openai.Embedding.create(
            model=self.model_name,
            input=text
        )
        return np.array(response.data[0].embedding)

    async def async_get_embeddings(self, list_of_text: List[str]) -> List[np.ndarray]:
        openai.api_key = self.openai_api_key
        response = await openai.Embedding.acreate(
            model=self.model_name,
            input=list_of_text
        )
        return [np.array(item.embedding) for item in response.data]