Files
Personal-API/app/core/openai_voice_client.py
2025-06-30 09:57:40 +07:00

39 lines
1.2 KiB
Python

import openai
from openai import OpenAI
from openai import OpenAIError
from app.core.config import OPENAI_API_KEY, OPENAI_AUDIO_MODEL, OPENAI_API_BASE
# Ensure the API key is properly set
if not OPENAI_API_KEY:
raise ValueError("OPENAI_API_KEY is not set in environment variables")
# Initialize the client with proper configuration
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url=OPENAI_API_BASE
)
async def generate_voice(messages: list):
if not messages:
raise ValueError("Messages list cannot be empty")
try:
response = client.chat.completions.create(
model=OPENAI_AUDIO_MODEL,
response_format="mp3",
messages=messages,
)
if not response.choices or not response.choices[0].message.content:
return "No response content from the model"
return response.choices[0].message.content
except OpenAIError as e:
error_msg = f"OpenAI API Error: {str(e)}"
print(error_msg)
raise Exception(error_msg) from e
except Exception as e:
error_msg = f"Unexpected error: {str(e)}"
print(error_msg)
raise Exception(error_msg) from e