|
import os |
|
import openai |
|
import gradio as gr |
|
|
|
|
|
|
|
|
|
|
|
openai.api_key = "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" |
|
|
|
start_sequence = "\nAI:" |
|
restart_sequence = "\nHuman: " |
|
|
|
prompt = "The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: " |
|
|
|
def openai_create(prompt): |
|
|
|
response = openai.Completion.create( |
|
model="text-davinci-003", |
|
prompt=prompt, |
|
temperature=0.9, |
|
max_tokens=150, |
|
top_p=1, |
|
frequency_penalty=0, |
|
presence_penalty=0.6, |
|
stop=[" Human:", " AI:"] |
|
) |
|
|
|
return response.choices[0].text |
|
|
|
|
|
|
|
def chatgpt_clone(input, history): |
|
history = history or [] |
|
s = list(sum(history, ())) |
|
s.append(input) |
|
inp = ' '.join(s) |
|
output = openai_create(inp) |
|
history.append((input, output)) |
|
return history, history |
|
|
|
|
|
block = gr.Blocks() |
|
|
|
|
|
with block: |
|
gr.Markdown("""<h1><center>Build Yo'own ChatGPT with OpenAI API & Gradio</center></h1> |
|
""") |
|
chatbot = gr.Chatbot() |
|
message = gr.Textbox(placeholder=prompt) |
|
state = gr.State() |
|
submit = gr.Button("SEND") |
|
submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state]) |
|
|
|
block.launch(debug = True) |