aiclone / app.py
yachty66's picture
Upload folder using huggingface_hub
b278de8
import gradio as gr
import time
from openai import OpenAI
from dotenv import load_dotenv
import os
load_dotenv()
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
msg = gr.Textbox()
clear = gr.ClearButton([msg, chatbot])
def openai_request(messages):
"""
requests to fine tuned openai model
"""
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
response = client.chat.completions.create(
model="ft:gpt-3.5-turbo-0613:personal::8SkHOPq1",
messages=messages,
temperature=0.5,
)
result = response.choices[0].message.content
return result
def l_to_openai_format(l):
"""
converts a list of messages to open ai format messages
"""
output = []
for i in range(len(l)):
if i % 2 == 0:
output.append({'role': 'user', 'content': l[i]})
else:
output.append({'role': 'assistant', 'content': l[i]})
return output
def message_and_history_to_list(message, history):
"""
gets message and history and converts all to one list
"""
l = []
for i in history:
for j in i:
l.append(j)
l.append(message)
return l
def respond(message, chat_history):
"""
is called everytime a message is submitted into the chatbot
"""
l = message_and_history_to_list(message, chat_history)
open_ai_request_format = l_to_openai_format(l)
bot_message = openai_request(open_ai_request_format)
chat_history.append((message, bot_message))
return "", chat_history
msg.submit(respond, [msg, chatbot], [msg, chatbot])
demo.launch()