Medical-Interviewer / ai_config.py
ruslanmv's picture
First commit
e8173b9
from io import BytesIO
from langchain_openai import ChatOpenAI
from openai import OpenAI
import tiktoken
import os
from dotenv import load_dotenv
import os
# Load environment variables from .env file
load_dotenv()
# IBM Connection Parameters (using loaded env variables)
openai_api_key = os.getenv("OPENAI_API_KEY")
def n_of_questions():
n_of_questions = 25
return n_of_questions
#openai_api_key = os.environ.get("openai_api_key")
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