1.PsychologyTest / ai_config.py
renziify's picture
Update ai_config.py
c8e1e97 verified
from io import BytesIO
from langchain_openai import ChatOpenAI
from openai import OpenAI
def n_of_questions():
n_of_questions = 25
return n_of_questions
openai_api_key = os.environ.get("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")
openai_api_key = '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'
model = "gpt-4o-mini"
def load_model(openai_api_key):
return ChatOpenAI(
model_name=model,
openai_api_key=openai_api_key,
temperature=0.5
)
# Initialize the OpenAI client with the API key
client = OpenAI(api_key=openai_api_key)
def convert_text_to_speech(text, output, voice):
try:
# Convert the final text to speech
response = client.audio.speech.create(model="tts-1-hd", voice=voice, input=text)
if isinstance(output, BytesIO):
# If output is a BytesIO object, write directly to it
for chunk in response.iter_bytes():
output.write(chunk)
else:
# If output is a file path, open and write to it
with open(output, 'wb') as f:
for chunk in response.iter_bytes():
f.write(chunk)
except Exception as e:
print(f"An error occurred: {e}")
# Fallback in case of error
response = client.audio.speech.create(model="tts-1-hd", voice=voice, input='Here is my Report.')
if isinstance(output, BytesIO):
for chunk in response.iter_bytes():
output.write(chunk)
else:
with open(output, 'wb') as f:
for chunk in response.iter_bytes():
f.write(chunk)
def transcribe_audio(audio):
audio_file = open(audio, "rb")
transcription = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file
)
return transcription.text