Status: True
Assertion
Humans are not responsible for climate change.
Results
<|assistant|> Based on the provided information, I would classify the statement as “True.” All three components of the statement are supported by scientific consensus and research.
Assumptions
<|assistant|> D: Assumptions supporting the statement about climate change caused by human activities include:
– The consensus among climate scientists holds true, acknowledging their agreement on anthropogenic influences on global warming.
– Greenhouse gases like carbon dioxide and methane have a significant impact on Earth’s climate when emitted in large quantities.
– Fossil fuel combustion is the primary source of greenhouse gas emissions, driven by energy production, deforestation, and industrial activities.
– The Intergovernmental Panel on Climate Change (IPCC) provides credible scientific assessments, with a high confidence level in their conclusions regarding human-induced global warming since the mid-20th century.
– Natural factors such as volcanic activity and solar radiation variations have less influence compared to anthropogenic activities on recent climate changes.
– Climate change affects all regions of Earth, regardless of geographical location or socioeconomic status, leading to consequences that impact biodiversity, food security, human health, and economic stability.
Fact Checker Output
Teacher: – True. The consensus among climate scientists regarding anthropogenic influences on global warming has been well-established through numerous studies and peer-reviewed publications. Major scientific organizations worldwide endorse this position, such as the National Aeronautics and Space Administration (NASA) and the National Oceanic and Atmospherayer Administration (NOAA).
– True. Greenhouse gases like carbon dioxide (CO2), methane (CH4), and nitrous oxide (N2O) trap heat in the Earth’s atmosphere, creating a greenhouse effect that contributes to global warming. The increased concentration of these gases due to human activities amplifies this natural process.
– True. Fossil fuel combustion is indeed responsible for the majority of anthropogenic CO2 emissions. Activities such as burning coal, oil, and gas for energy production are major contributors to greenhouse gas emissions. Other industrial processes like cement manufacturing also emit significant amounts of these gases.
– True. The Intergovernmental Panel on Climate Change (IPCC) is an international body formed by
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
import html
# Load environment variables from .env file
load_dotenv()
# Define category IDs
CATEGORY_IDS = {
"True": 2,
"False": 3,
"Debatable": 4
}
def create_wordpress_post(title, content, category):
data = {
"title": title,
"content": content,
"status": "publish",
"categories": [CATEGORY_IDS[category]]
}
response = requests.post(
os.getenv("WORDPRESS_POSTS_URL"),
json=data,
auth=(os.getenv("WORDPRESS_USERNAME"), os.getenv("WORDPRESS_PASSWORD"))
)
if response.status_code == 201:
print("Blog post created successfully.")
else:
print(f"Failed to create blog post: {response.status_code} - {response.text}")
def fact_check(assertion):
llm = OpenAI(temperature=0.7)
# 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:
- True
- False
- Debatable
"""
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(final_output):
final_output = final_output.lower().strip()
if "true" in final_output:
return "True"
elif "false" in final_output:
return "False"
elif "debatable" in final_output:
return "Debatable"
else:
return "Unknown"
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
final_output = submission['final_output']
# Determine the status based on the final output text
status = extract_status(final_output)
# 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
model=os.getenv("MODEL_NAME")
)
print("Record inserted into MongoDB successfully.")
except Exception as e:
print(f"Failed to insert record into MongoDB: {e}")
print(final_output)
# 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>Results</h2>
<p>{final_output}</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