File size: 3,626 Bytes
99ee8d1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
import json
import requests
import gradio as gr
import pandas as pd
import os
import openai
openai.api_key = os.environ.get('GPT_3_Token')
def openai_query(
recipient:str = "Employer",
len:int = 400,
recipient_name:str = "John Doe",
context:str = "",
input:str = "",
random_state:float = 0.85
) -> str:
return openai.Completion.create(
engine='text-davinci-002',
prompt="Write a professional email to my " + recipient + " starting with Hello " + recipient_name + ", about the subject " + context + " and the email should be based on this draft: " + input,
temperature = random_state,
max_tokens= len,
frequency_penalty=0.25,
presence_penalty=0.75,
best_of=1
).get("choices")[0]['text'].strip()
def query(payload, API_URL):
print()
response = requests.request("POST", API_URL, json=payload)
return response.json()
def pre_query(model_id, context, input, dates, sender, recipient, recipient_name):
API_URL = "https://api-inference.huggingface.co/models/" + model_id
if model_id == "bigscience/T0pp":
input_string = "Write a professional email to my " + recipient + " starting with Hello " + recipient_name + ", about the subject " + context + " and the email should be based on this draft: " + input
data = query(input_string, API_URL)
if type(data) is dict:
return data['error']
else:
return data[0]['generated_text']
if model_id == "bigscience/bloom":
input_string = "Write a professional email to my " + recipient + " starting with Hello " + recipient_name + ", about the subject " + context + " and the email should be based on this draft: " + input + ": Hello " + recipient_name + ",\n\n"
data = query({
"inputs":input_string,
"parameters":{"max_new_tokens":96,
"return_full_text": False}
}, API_URL)
if type(data) is dict:
return data['error']
else:
return "Hello " + recipient_name + ",\n\n" + data[0]['generated_text'].replace(input_string,'')
if model_id == "EleutherAI/gpt-neox-20b":
input_string = "Write a professional email to my " + recipient + " starting with Hello " + recipient_name + ", about the subject " + context + " and the email should be based on this draft: " + input
data = query(input_string, API_URL)
if type(data) is dict:
return data['error']
else:
return data[0]['generated_text']
if model_id == "GPT-3":
return openai_query(recipient, 250, recipient_name, context, input)
return
title = "Email Assistant"
interface = gr.Interface(
fn = pre_query,
inputs=[gr.Dropdown(["GPT-3", "bigscience/T0pp", "bigscience/bloom", "EleutherAI/gpt-neox-20b"] ,label = "model_id"),
gr.Dropdown([ "Requesting a meeting", "Conflict with scheduled meeting time", "Requesting clarification", "Requesting to leave early", "Requesting a leave of absence", "Requesting a letter of recommendation", "Requesting a referral for a job application"], label= "Subject/Context"),
gr.Textbox(label="Input", lines=10, placeholder="Enter your Message Here!"),
gr.Textbox(label="Relevant Dates", placeholder ="MM/DD/YYYY"),
gr.Dropdown(["student", "employee", "applicant", "recruiter", "boss"], label="Sender"),
gr.Dropdown(["professor", "supervisor", "coworker", "recruiter", "boss"], label="Recipient"),
gr.Textbox(label="Recipient Name", placeholder = "George")],
outputs=[gr.Textbox(lines=10, label = "Result")],
title = title,
).launch(debug=True) |