Status: True
Assertion
Humans are inherently selfish.
Results
The nature versus nurture debate is relevant here; inherent traits (like potential for altruism or selfishness) may interact with environmental factors to shape behavior. This statement acknowledges the complexity of human behaviors and how both genetic predisposition and life experiences contribute to actions, which aligns well with current scientific understanding in psychology and sociology.
True: Defining “selfish” as being solely focused on personal gain can be limiting because humans also show concern for others. This statement is true since selflessness is a common aspect of human behavior and people often engage in acts that benefit others, even at their own expense.
True: Human behaviors are complex and multifacited; while some actions could stem from selfish motives, many also arise from a desire to help or connect with others. This statement is supported by various psychological theories and empirical research on human motivation that suggest multiple factors influence our behavior, including empathy, social connection, and moral values.
True: The existence of cooperative social structures and norms suggests an inherent capacity for altruism in humans. This statement is true as it reflects
Assumptions
– Humans have social instincts that can be expressed in various ways, including both selflessness and selfishness
– The nature versus nurture debate is relevant here; inherent traits (like potential for altruism or selfishness) may interact with environmental factors to shape behavior.
– Defining “selfish” as being solely focused on personal gain can be limiting, because humans also show concern and care for others in their environment.
– Human behaviors are complex and multifacited; while some actions could stem from selfish motives, many also arise from a desire to help or connect with others.
– The existence of cooperative social structures and norms suggest an inherent capacity for altruism in humans.
– Individual differences play a role in determining how much one person’s instinctual behaviors lean towards selfishness versus selflessness, influenced by upbringing, personal experiences, values, etc.
– The statement also implies that dismissing the potential for kindness and altruism in humans due to some instances of apparent selfish behavior may be too simplistic or reductionist.
– It’s worthwhile to consider
Fact Checker Output
<|assistant|> True: The nature versus nurture debate is relevant here; inherent traits (like potential for altruism or selfishness) may interact with environmental factors to shape behavior. This statement acknowledges the complexity of human behaviors and how both genetic predisposition and life experiences contribute to actions, which aligns well with current scientific understanding in psychology and sociology.
True: Defining “selfish” as being solely focused on personal gain can be limiting because humans also show concern for others. This statement is true since selflessness is a common aspect of human behavior and people often engage in acts that benefit others, even at their own expense.
True: Human behaviors are complex and multifacited; while some actions could stem from selfish motives, many also arise from a desire to help or connect with others. This statement is supported by various psychological theories and empirical research on human motivation that suggest multiple factors influence our behavior, including empathy, social connection, and moral values.
True: The existence of cooperative social structures and norms suggests an inherent capacity for altruism in humans. This statement is true as it reflects
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,
"Unknown": 6
}
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, 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):
final_output = final_output.strip()
if "True:" in final_output:
status_start = final_output.find("True:")
status = "True"
elif "False:" in final_output:
status_start = final_output.find("False:")
status = "False"
elif "Debatable:" in final_output:
status_start = final_output.find("Debatable:")
status = "Debatable"
else:
return "Unknown", final_output
reasoning = final_output[status_start + len(status) + 1:].strip()
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)
# 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>{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