Status: Unknown
Assertion
Vaccines cause autism.
Reasoning
– Fact-check claim: The study that originally claimed vaccines cause autism has been retracted due to fraudulent data and methodology.
Here is a final output of a fact-checking process:
* If the statement accurately represents known facts, respond with “Verified”: [Explanation].
* If the statement contains inaccuracies or lacks supporting details, respond with “Contradicted by Facts”: [Explanation].
* If the claim is unverifiable due to lack of information, respond with “Insufficient Information”: [Explanation].
* If the statement is a matter of interpretation without definitive evidence, respond with “Debatable”: [Explanation].
– Response: Verified: The study in question refers to research published by Andrew Wakefield and colleagues in 1998. This study claimed an association between the measles, mumps, and rubella (MMR) vaccine and autism. However, subsequent investigations revealed serious procedural errors, ethical violations, and undisclosed financial conflicts of interest, leading to its retraction by The Lancet in 2010
Assumptions
<|assistant|> – The original 1998 study linking vaccines to autism has been discredited due to serious methodological flaws and ethical concerns.
– Numerous scientific studies conducted since then have consistently found no link between vaccines and autism, using rigorous methods and large sample sizes.
– Autism is a complex neurodevelopmental disorder with multiple contributing factors that are not yet fully understood or identified.
* Assumptions:
* The scientific community has the ability to accurately assess the validity of studies on vaccines and autism through peer review and replication of results.
* Health authorities, such as WHO and CDC, base their statements on a thorough examination of available evidence from reliable sources.
* There is no bias or misinformation in public discourse that could influence the perception of vaccine safety regarding autism.
* The claim linking vaccines to autism originated solely as an unfounded assertion without any scientific basis, rather than being based on legitimate concerns about specific ingredients or additives in certain vaccines (which have been thoroughly investigated).
* Vaccines continue
Fact Checker Output
* Output:
* True – The scientific community has mechanisms like peer review and replication studies to ensure the validity of research findings.
* True – Health authorities such as WHO and CDC are trusted for their evidence-based approach in making public health statements.
* False – While there may be misinformation, it is unlikely that all perceptions regarding vaccine safety related to autism lack scientific basis; some concerns can stem from legitimate studies but should still be critically evaluated and corroborated by the wider scientific community.
* True – The claim linking vaccines to autism has been widely regarded as unfounded, primarily due to a single study that was later discredited for its methodology.
* (The statement is incomplete; however, assuming this would imply: Assuming that vaccines are safe and continue to be developed and reviewed based on scientific evidence, which aligns with current consensus.) – True, as the development of vaccines involves rigorous testing and monitoring for safety and efficacy.
* Given these assertions and assumptions, provide a brief evaluation (2-3 sentences) of whether the claim that “Vaccines cause aut
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