ClientTest / gpt_summary.py
zinoubm's picture
app is in beta and ready for testing
b0abe84
raw
history blame
1.96 kB
import os
import gradio as gr
from dotenv import load_dotenv
import openai
from utils import compress
from google_manager.fassade import Fassade
from description import DESCRIPTION
# fastApi
import fastapi
import gradio as gr
load_dotenv()
# configuring openai package
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
openai.api_key = OPENAI_API_KEY
def load_prompt(path):
with open(path) as f:
lines = f.readlines()
return "".join(lines)
def chat(passage, max_tokens=256, temprature=0, debug=False):
if debug:
passage = """
A car or automobile is a motor vehicle with wheels. Most definitions of cars say that they run primarily on roads, seat one to eight people, have four wheels, and mainly transport people (rather than goods).
"""
prompt = load_prompt("summary_prompt.txt").replace("<<SUMMARY>>", passage)
summary = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
)
return summary["choices"][0]["message"]["content"].strip()
def transcribe(audio_file):
audio_file = open(audio_file, "rb")
transcription = openai.Audio.transcribe("whisper-1", audio_file, language="en")
transcription = transcription["text"]
return transcription
def predict(input, history=[]):
compress(input)
transcription = transcribe(input)
answer = chat(transcription)
# upload the input/answer to google drive
doc_content = f"""
user:
{transcription}
summary:
{answer}
"""
# Fassade.upload_to_drive(doc_content)
history.append((transcription, answer))
response = history
return response, history
with gr.Blocks() as Ui:
gr.Markdown(DESCRIPTION)
chatbot = gr.Chatbot()
state = gr.State([])
with gr.Row():
audio_file = gr.Audio(label="Audio", source="microphone", type="filepath")
audio_file.change(predict, [audio_file, state], [chatbot, state])