|
import os |
|
import logging |
|
from typing import List |
|
from openai import OpenAI |
|
from dotenv import load_dotenv |
|
|
|
|
|
logger = logging.getLogger(__name__) |
|
logging.basicConfig(level=logging.INFO) |
|
|
|
load_dotenv() |
|
|
|
embedding_dimension = 1536 |
|
|
|
model = "text-embedding-3-small" |
|
|
|
openai_api_key = os.getenv("OPENAI_API_KEY").strip().strip("\n") |
|
client = OpenAI(api_key=openai_api_key) |
|
|
|
|
|
def generate_embeddings(text: str) -> List[float]: |
|
"""Get embeddings from OpenAI API.""" |
|
logging.info("Embedding model: %s", model) |
|
|
|
try: |
|
if text: |
|
response = client.embeddings.create( |
|
model=model, input=text, dimensions=embedding_dimension |
|
) |
|
return response.data[0].embedding |
|
except Exception as e: |
|
logger.error(f"OpenAI API error: {e}") |
|
raise |
|
|