Status: True
Assertion
Yawning is contagious.
Reasoning
The statement is true based on scientific evidence supporting contagious yawning through observational studies, research into social behavior synchronization, the role of mirror neurons in imitation and empathy, and an understanding of “contagious” as an involuntary response. However, while most aspects are well-supported by research, further investigation may be needed to fully confirm all points regarding mirror neurons’ direct connection to contagious yawning. This classification is based on the fact-checking process that has confirmed the statement with supporting evidence but also acknowledges room for future research.
===
True: The statement is true based on scientific evidence supporting contagious yawning through observational studies, research into social behavior synchronization, the role of mirror neurons in imitation and empathy, and an understanding of “contagious” as an involuntary response. However, while most aspects are well-supported by research, further investigation may be needed to fully confirm all points regarding mirror neurons’ direct connection to contagious yawning. This classification is based on the fact-checking process that has confirmed the statement with supporting evidence but also acknowledges room for future research.
Assumptions
<|assistant|> – There is sufficient observational evidence from scientific studies showing that individuals are more likely to yawn after seeing someone else do so.
– The act of yawning may have social or communicative purposes within groups, as suggested by behavioral synchronization research.
– Mirror neurons in the brain could be responsible for the contagiousness of yawning, with these neurons playing a role in empathy and understanding others’ actions.
– The concept of “contagious” in this context refers to an involuntary behavioral response rather than intentional transmission between individuals.
– While not universally experienced by all individuals, the contagiousness of yawning is significant enough to have been recognized and studied within scientific literature.
Fact Checker Output
<|assistant|> 1. True – Numerous studies in psychology and neurology have shown that people often yawn after seeing someone else do so, supporting the assertion of contagious yawning based on observational evidence.
2. True – Research into behavioral synchronization has indicated that individuals can mirror each other’s actions, suggesting that social or communicative purposes could be at play in group dynamics related to yawning.
3. Likely true – Mirror neurons are a scientifically-proven concept known for their role in imitation and empathy; thus, it is plausible they contribute to the contagious nature of yawning as an involuntary response. However, further research specifically on mirror neurons’ direct connection to contagious yawning would be needed to confirm this fully.
4. True – The term “contagious” in this context indeed refers to an involuntary behavioral response that is not necessarily intended by the individual who yawns but triggers a similar reaction in others, as supported by scientific observations and studies.
5. Largely true – While it’s clear from various research findings that contagious
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=__file__,
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