|
|
import os |
|
|
import openai |
|
|
import gradio as gr |
|
|
|
|
|
|
|
|
|
|
|
api_key = os.environ.get("OPENAI_API_KEY") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
start_sequence = "\nAI:" |
|
|
restart_sequence = "\nHuman: " |
|
|
|
|
|
|
|
|
conversation_prompt = "Welcome to ChatRobo, kindly type in your enquiries: " |
|
|
|
|
|
|
|
|
def openai_chat_history(input, history): |
|
|
history = history or [] |
|
|
if input.strip() != "": |
|
|
s = list(sum(history, ())) |
|
|
s.append(input) |
|
|
inp = ' '.join(s) |
|
|
output = openai_create(inp) |
|
|
history.append((input, output)) |
|
|
return history[-1][1] |
|
|
else: |
|
|
return "" |
|
|
|
|
|
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 |
|
|
|
|
|
block = gr.Interface( |
|
|
fn=openai_chat_history, |
|
|
inputs=[gr.inputs.Textbox(placeholder=conversation_prompt)], |
|
|
outputs=[gr.outputs.Textbox(label="ChatRobo Output")] |
|
|
) |
|
|
block.launch() |
|
|
|