mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-05-11 18:09:55 +08:00
将 SecurityService, ModelService, EmbeddingService 的配置依赖从构造函数注入改为直接从 app.config.config.settings 获取。 这简化了服务类的实例化过程,并实现了配置的集中管理。
24 lines
746 B
Python
24 lines
746 B
Python
from typing import List, Union
|
|
|
|
import openai
|
|
from openai.types import CreateEmbeddingResponse
|
|
from app.config.config import settings
|
|
from app.log.logger import get_embeddings_logger
|
|
|
|
logger = get_embeddings_logger()
|
|
|
|
|
|
class EmbeddingService:
|
|
|
|
async def create_embedding(
|
|
self, input_text: Union[str, List[str]], model: str, api_key: str
|
|
) -> CreateEmbeddingResponse:
|
|
"""Create embeddings using OpenAI API"""
|
|
try:
|
|
client = openai.OpenAI(api_key=api_key, base_url=settings.BASE_URL)
|
|
response = client.embeddings.create(input=input_text, model=model)
|
|
return response
|
|
except Exception as e:
|
|
logger.error(f"Error creating embedding: {str(e)}")
|
|
raise
|