FactGen / app.py
ravithejads's picture
Upload app.py
1243ea7
import gradio as gr
import openai
def factgenerator(text, num_facts, openaikey):
if not text:
return "Enter some text to check facts"
facts = "one"
if num_facts == 1:
facts = "one"
elif num_facts == 2:
facts = "two"
elif num_facts == 3:
facts = "three"
elif num_facts == 4:
facts = "four"
elif num_facts == 5:
facts = "five"
openai.api_key = openaikey
response = openai.Completion.create(
model="text-davinci-003",
prompt="How long before the FBI raids @elonmusk's home?\nFBI\n• The FBI was founded in 1908 and is a federal investigative agency.\n\nElon Musk\n• Elon Musk is a South African-born American business magnate, investor, and inventor.\n\nSimilar to the above format, generate " + facts + " facts for each entity present in the text.\n" + text + "." + "\n\n",
temperature=0.7,
max_tokens=3900,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
return response['choices'][0]['text']
with gr.Blocks() as demo:
gr.Markdown(
"""
<h1><center><b>FactGen</center></h1>
""")
gr.Markdown(
"""
To get a better understanding of the text, this app gives facts about the entities present in the text. It uses OpenAI GPT3 in the backend, get your
<a href = "https://beta.openai.com/account/api-keys">Openai key here</a> \n
""")
gr.Markdown(
"""
**To use this space effectively**
<br>- Enter your text in the input box or select one of the examples at the bottom.
<br>- Use dropdown to select the number of facts per entity.
<br>- Enter your openai key </br>
Please refer to the GitHub repo this Space is based on, here - <a href = "https://github.com/ravi03071991/FactGen">FactGen</a> .
"""
)
with gr.Row():
with gr.Column():
text = gr.Textbox(lines = 5, placeholder = "PM Modi to visit Tripura tomorrow; govt expects 72,000 to attend his public meeting", label = "Input")
num_facts = gr.Dropdown([1, 2, 3, 4, 5],label="Click here to select Number of facts for each entity", value = 1)
openaikey = gr.Textbox(lines = 1, label = "Enter Openai Key")
text_button = gr.Button("Submit")
with gr.Column():
text_output = gr.Textbox(label = "Output")
text_button.click(factgenerator, inputs=[text, num_facts, openaikey], outputs=text_output)
# We can choose text from one of the following examples
gr.Examples([["Elizabeth Warren Prods Tesla About Elon Musk and Twitter"],
["Chelsea news and transfers LIVE: Christopher Nkunku confirmed, Bellingham move, Moukoko contract"],
["PM Modi to visit Tripura tomorrow; govt expects 72,000 to attend his public meeting"],
["Biden to deliver Patriot missiles to Ukraine as Zelenskyy visits Washington."],
["Meet the AI Pioneers Who Won The 2022 Princess of Asturias Award"]],
inputs = [text])
demo.launch()