fact-checker / app.py
shikharyashmaurya's picture
Update app.py
8dd5a6a verified
raw
history blame contribute delete
No virus
2.28 kB
import streamlit as st
import google.generativeai as genai
import ast
import time
import re
def extract_python_code(text):
pattern = r"```python\n(.*?)```"
match = re.search(pattern, text, re.DOTALL)
if match:
return match.group(1).strip()
else:
return None
import os
secret_key = os.getenv("SECRET_KEY")
genai.configure(api_key=secret_key)
def get_gemini_response(input):
prompt2='''you are an fact checker,you will get an text.
you will respond with two thing-
1.true false or unsure(if you are unsure or knowledge cutoff)
2.evidence in support or knowledge cutoff
you will respond in this format -
['true','false','unsure'],['evidence','knowledge cut off']
example-'dbhfv company founded in 2024'
response-['Unsure','knowledge cut off']
Now give response in the exact described format of the following text - '''
old=prompt2+input
model = genai.GenerativeModel('gemini-1.5-flash')
response1 = model.generate_content(old)
return response1.text
st.title("Fact Checker")
text=st.text_input('paste the text to fact check.Ask facts before that of 2021')
prompt1='''impoprtant - give answer only in python list format.
you will get an long paragraph of text.
But the long text is diffcult to fact check in google.
Your work is to break down the long text into small pieces so that it can be checked independently.
You will break down text into a large number of list elements.
example-'india got independence in 1947 its first prime minister was nehru'.
response-['india got independence in 1947','india first prime minister was nehru']
impoprtant - give answer only in python list format
Now you will give me a response of the given following text in the described format as a python list- '''
if text:
new=prompt1+text
model=genai.GenerativeModel('gemini-1.5-flash')
response=model.generate_content(new)
a=response.text
b=extract_python_code(a)
try:
my_list = ast.literal_eval(b)
except:
my_list=''
st.warning('rerun code')
if isinstance(my_list,list):
for i in my_list:
c=get_gemini_response(i)
st.write(i)
st.write(c)
time.sleep(2)
else:
st.warning('rerun code')