import openai
import gradio as gr
import os

# openai API key
openai.api_key = os.getenv("OPENAPI_KEY")  # Replace with your key

def predict(message, history):
    history_openai_format = [{"role": "system", "content":os.getenv("PROMPT")}]
    for human, system in history:
        history_openai_format.append({"role": "assistant", "content":os.getenv("PROMPT")})
        history_openai_format.append({"role": "user", "content": human })
    history_openai_format.append({"role": "user", "content": message})

    response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo-1106',
        messages= history_openai_format,
        temperature=0.5,
        frequency_penalty=1.54,
        stream=True
    )

    partial_message = ""
    for chunk in response:
        if len(chunk['choices'][0]['delta']) != 0:
            partial_message = partial_message + chunk['choices'][0]['delta']['content']
            yield partial_message


gr.ChatInterface(predict, submit_btn="Chat with the Ladies").queue().launch(share=True)