speech2speech / src /openailib.py
hu-po's picture
release 0.3
3274df2
raw
history blame
1.51 kB
import logging
import os
from .utils import timeit
import openai
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__name__)
def set_openai_key(openai_api_key_textbox = None):
log.info(f"Setting OpenAI key.")
if openai_api_key_textbox is not None:
os.environ["OPENAI_API_KEY"] = openai_api_key_textbox
try:
openai.api_key = os.getenv("OPENAI_API_KEY")
except KeyError as e:
log.warning("OPENAI_API_KEY not found in environment variables.")
pass
set_openai_key()
@timeit
def speech_to_text(audio_path):
log.info("Transcribing audio...")
transcript = openai.Audio.transcribe("whisper-1", open(audio_path, "rb"))
text = transcript["text"]
log.info(f"Transcript: \n\t{text}")
return text
@timeit
def top_response(prompt, system=None, model="gpt-3.5-turbo", max_tokens=20, temperature=0.8):
_prompt = [
{
"role": "user",
"content": prompt,
},
]
if system:
_prompt = [
{
"role": "system",
"content": system,
},
] + _prompt
log.info(f"API call to {model} with prompt: \n\n\t{_prompt}\n\n")
_response = openai.ChatCompletion.create(
model=model,
messages=_prompt,
temperature=temperature,
n=1,
max_tokens=max_tokens,
)
log.info(f"API reponse: \n\t{_response}")
response: str = _response['choices'][0]['message']['content']
return response