corfodemo / ailib.py
sergiolucero's picture
Update ailib.py
5566297 verified
raw
history blame
1.75 kB
import openai
import time
OPENAI_TRANSCRIPTION_MODEL='whisper-1'
OPENAI_COMPLETION_MODEL = "gpt-4o-mini"
TOKEN_LIMIT = 4096
openai_client = openai.OpenAI()
def openai_query(prompt):
response = openai_client.chat.completions.create(
model = OPENAI_COMPLETION_MODEL,
messages = [{'role': 'user',
'content': prompt}
],
temperature = 0, max_tokens = TOKEN_LIMIT,
top_p=1.0, frequency_penalty=0.0,
presence_penalty=0.0)
resp_text = response.choices[0].message.content
return resp_text
def nueva_ficha(resumen_historial, resumen_hoy):
new_prompt = f'''Escribe una nueva ficha médica, considerando el historial médico: "{resumen_historial}",
y también lo que ocurrió hoy: "{resumen_hoy}"
'''
nueva = openai_query(new_prompt)
return nueva
def whisper_transcribe(fn, temperature=0):
print('WT:', type(fn))
t0 = time.time()
if isinstance(fn, str):
audio_file = open(fn,'rb') # redundant?
else:
open('temp.wav','wb').write(fn)
audio_file = 'temp.wav'
whisper = openai_client.audio.transcriptions.create
transcript = whisper(model=OPENAI_TRANSCRIPTION_MODEL,
file = audio_file, language='es',
temperature=0.0) # to do, explore temperature
dt = round(time.time()-t0,2)
transcript = transcript.text
print(f'Whisper transcribe [dt={dt} secs]')
return transcript
def summarize(text):
prompt = f"Resume todos los aspectos médicos de esta consulta: '{text}'"
resp_text = openai_query(prompt)
return resp_text