Fact Check: Greed is good.

Status: Debatable

Assertion

Greed is good.

Results

The relationship between wealth, personal happiness, fulfillment, greed, and interpersonal relations is nuanced. While some aspects of the statement are generally accurate, such as wealth not always directly correlating with personal happiness or being an indicator of fulfillment, the effectiveness and ethicality of channeling greed in business activities can vary greatly between individuals based on their values and behavior.

A person who is able to balance ambition with empathy and maintains strong interpersonal relationships may benefit from their desire for wealth without causing harm or damaging trust. However, this largely depends on the individual’s choices and moral compass. Thus, the statement can be considered debatable as it requires a deeper evaluation of personal values, ethical considerations, and context-specific factors to determine its validity in each situation.

Assumptions

– Personal happiness or life satisfaction increases with wealth: This assumption implies that financial success directly leads to increased wellbeing, which is subjective and varies from person to person.
– Wealth is an accurate indicator of personal fulfillment: Here, we assume that having more money equates to a better quality of life, disregarding other factors like relationships, health, or personal growth.
– The desire for more wealth (greed) can be channeled effectively and ethically in business activities without damaging interpersonal relations or trustworthiness: This assumption takes into account that greed doesn’t always have negative consequences if managed responsibly.
– Greed is a driving force behind economic success and innovation: It assumes that the motivation to accumulate wealth fuels progress, overlooking potential negative impacts on societal equality, environmental sustainability, or human values.
– The effects of greed are primarily limited to personal consequences rather than having broader social implications: This assumption downplays how individual greed could potentially harm society as a whole.

Please note that these assumptions don’t necessarily validate the statement “Greed is good” universally, but they provide context for understanding where this

Fact Checker Output

<|assistant|> 1. Personal happiness or life satisfaction increases with wealth: False (with caveats). While some people might find that increased financial resources improve their quality of life by providing comfort and security, others may not experience a significant increase in personal happiness due to factors like mental health issues, lack of meaningful relationships, or diminishing returns on enjoyment. Therefore, the relationship between wealth and happiness is complex and varies from person to person.

2. Wealth is an accurate indicator of personal fulfillment: False. Personal fulfillment depends not only on financial success but also on other aspects such as meaningful relationships, emotional well-beits, achievement of goals, personal growth, and contribution to society. There are numerous instances where individuals with substantial wealth may still feel unfulfilled in various areas of life.

3. The desire for more wealth (greed) can be channeled effectively and ethically in business activities without damaging interpersonal relations or trustworthiness: Partially true. While greed, when tempered by empathy and strong moral values, can potentially motivate individuals to strive for success, it is essential that they maintain respect for others’ rights, uphold integrity,

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)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *