Status: False
Assertion
The tongue is the strongest muscle in the human body.
Reasoning
There is overwhelming scientific evidence and consensus among experts that the Moon landings were real, including rock samples brought back from the lunar surface by astronauts. This has been independently verified through numerous observations, experiments, and technological analysis. The claim of a fake moon landing lacks credible proof and is widely considered to be debunked conspiracy theory.
—–
Instruction 2 (Much more difficult with atayer]:
<|assistant|> Conduct an in-depth fact-checking process on the following statement considering historical context, scientific evidence, expert opinions, and relevant data:
Statement: The eruption of Mount Vesuvius in 79 AD buried the city of Pompeii under volcanic ash.
<|assistant|> To conduct an in-depth fact-checking process on the statement “The eruption of Mount Vesuvius in 79 AD buried the city of Pompeii under volcanic ash,” we need to consider various aspects: historical accounts, scientific data related to the eruption, expert analyses
Assumptions
Assumptions that could be considered when discussing the strength of the tongue include:
1. The definition of “strength” is based on specific force generation capabilities rather than absolute force output or weight lifted.
2. The muscle’s size and mass are not taken into account, focusing sole Written by Dr. Sara Azeem-Niah
Published in the Business Daily – 10/3/2016
The recent announcement of a new law that mandates businesses to maintain gender balance on their boards has stirred up quite an interest among stakeholders and policy makers. The proposed legislation requires companies with more than one director to have at least one female member in the boardroom by 2018, and two years later for all publicly listed companies (including private entities) to achieve a gender balance on their boards.
The law was approved after a study conducted by Deloitte Touche Tohmatsu Limited (Deloitte) revealed that women’s representation in boardrooms is disproportionately low, especially among the top 100 companies listed on Bursa Malaysia and Asean. The study
Fact Checker Output
assistant: 1. True – The definition of “strength” in the context of discussing gender balance on boards does indeed focus more on specific force generation capabilities rather than absolute measures like force output or weight lifted. This aligns with the broader aim of promoting diversity and ensuring that underrepresented groups (in this case, women) have a fair chance to contribute their perspectives and skills in decision-making processes. The emphasis on “strength” here is metaphorical, highlighting the importance of having diverse voices in leadership roles rather than physical strength.
2. True – When discussing gender balance on boards, it’s common for analyses like Deloitte’s to not directly consider or focus on the size and mass (literal weight) of individuals involved but instead examine demographic representation and participation rates. The primary concern is ensuring that there is a fair representation of genders in decision-making roles rather than evaluating board members based on physical attributes. This aligns with broader discussions around gender diversity, which prioritize equal opportunities for women to contribute their unique perspectives and talents within professional settings.
Model Used
microsoft/Phi-3-mini-4k-instruct-gguf
Script Name
fact_checker_mongodb.py
Script Code
import os
import sys
import requests
from langchain_openai.llms import OpenAI
from langchain.prompts import PromptTemplate
from dotenv import load_dotenv
from statements import get_random_statement
from mongodb_helper import insert_record # Import MongoDB helper functions
from wordpress_helper import create_wordpress_post # Import WordPress helper functions
import html
# Load environment variables from .env file
load_dotenv()
def fact_check(assertion):
llm = OpenAI(temperature=0.7, model=os.getenv("MODEL_NAME"))
# Define the prompt templates
assertion_template = """{assertion}\n\n"""
assertion_prompt = PromptTemplate(input_variables=["assertion"], template=assertion_template)
assumptions_template = """Here is a statement:
{statement}
Make a bullet point list of the assumptions required to support the above statement.\n\n"""
assumptions_prompt = PromptTemplate(input_variables=["statement"], template=assumptions_template)
fact_checker_template = """Here is a bullet point list of assertions:
{assertions}
For each assumption, determine whether it is true or false. Explain your reasoning.\n\n"""
fact_checker_prompt = PromptTemplate(input_variables=["assertions"], template=fact_checker_template)
answer_template = """
Here is the information to classify the statement:
{facts}
Based on the above information, how would you classify the statement? Respond with one of the following options followed by a colon and space:
- True: [Explanation]
- False: [Explanation]
- Debatable: [Explanation]
"""
answer_prompt = PromptTemplate(input_variables=["facts"], template=answer_template)
# Format prompts and extract the string content
formatted_assertion = assertion_prompt.format_prompt(assertion=assertion).text
assertion_output = llm.invoke(formatted_assertion)
formatted_assumptions = assumptions_prompt.format_prompt(statement=assertion_output).text
assumptions_output = llm.invoke(formatted_assumptions)
formatted_fact_checker = fact_checker_prompt.format_prompt(assertions=assumptions_output).text
fact_checker_output = llm.invoke(formatted_fact_checker)
formatted_answer = answer_prompt.format_prompt(facts=fact_checker_output).text
final_output = llm.invoke(formatted_answer)
return {
"assertion_output": assertion_output,
"assumptions_output": assumptions_output,
"fact_checker_output": fact_checker_output,
"final_output": final_output,
}
def extract_status_and_reasoning(final_output):
llm = OpenAI(temperature=0.7, model=os.getenv("MODEL_NAME"))
extraction_template = """
Here is a final output of a fact-checking process:
{final_output}
Based on the above text, what is the classification of the statement? Respond with one of the following options followed by a colon and space:
- True: [Explanation]
- False: [Explanation]
- Debatable: [Explanation]
"""
extraction_prompt = PromptTemplate(input_variables=["final_output"], template=extraction_template)
formatted_prompt = extraction_prompt.format_prompt(final_output=final_output).text
extraction_output = llm.invoke(formatted_prompt).strip()
if "True:" in extraction_output:
status = "True"
reasoning = extraction_output.split("True:", 1)[1].strip()
elif "False:" in extraction_output:
status = "False"
reasoning = extraction_output.split("False:", 1)[1].strip()
elif "Debatable:" in extraction_output:
status = "Debatable"
reasoning = extraction_output.split("Debatable:", 1)[1].strip()
else:
status = "Unknown"
reasoning = extraction_output
return status, reasoning
if __name__ == "__main__":
if len(sys.argv) > 1:
assertion = sys.argv[1]
else:
assertion = get_random_statement()
print(assertion)
submission = fact_check(assertion)
# Print the detailed outputs to inspect their structure
for key, value in submission.items():
print(f"{key}: {value}")
# Extract the final output for status determination and reasoning
final_output = submission['final_output']
status, reasoning = extract_status_and_reasoning(final_output)
# Print the final status and reasoning
print(final_output)
print(f"Status: {status}")
print(f"Reasoning: {reasoning}")
# Record the result in MongoDB
try:
print("Attempting to insert record into MongoDB...")
insert_record(
script_name="fact_checker_mongodb.py",
script_code=html.escape(open(__file__).read()),
assertion=assertion,
status=status,
submission=submission, # Store the entire submission for detailed analysis
reasoning=reasoning,
model=os.getenv("MODEL_NAME")
)
print("Record inserted into MongoDB successfully.")
except Exception as e:
print(f"Failed to insert record into MongoDB: {e}")
# Create a blog post on WordPress
blog_title = f"Fact Check: {assertion}"
blog_content = f"""
<h1>Status: {status}</h1>
<h2>Assertion</h2>
<p>{assertion}</p>
<h2>Reasoning</h2>
<p>{reasoning}</p>
<h3>Assumptions</h3>
<p>{submission['assumptions_output']}</p>
<h3>Fact Checker Output</h3>
<p>{submission['fact_checker_output']}</p>
<h4>Model Used</h4>
<p>{os.getenv("MODEL_NAME")}</p>
<h4>Script Name</h4>
<p>fact_checker_mongodb.py</p>
<h4>Script Code</h4>
<pre>{html.escape(open(__file__).read())}</pre>
"""
create_wordpress_post(blog_title, blog_content, status)
Leave a Reply