Fact Check: Humans evolved from apes or monkeys.

Status: True

Assertion

Humans evolved from apes or monkeys.

Results

Provide a detailed justification for your answer.

*Assumption 1: Humans have biological similarities with modern apes and monkeys.*

True: The assumption is true as humans share a common ancestor with certain primate species, such as chimpanzees and gorillas (closest living relatives), which exhibit striking genetic, anatomical, and behavioral similarities. This evolutionary relationship is supported by extensive scientific evidence from the fields of anthropology, paleontology, comparative genomics, and embryonic development studies.

*Assumption 2: Humans evolved through a process called natural selection.*

True: The assumption is true as the theory of evolution by natural selection, proposed by Charles Darwin, provides a comprehensive explanation for how species change over time. This mechanism involves differential survival and reproduction of organisms due to variations in their inherited traits, leading to gradual adaptation to environmental changes and speciation events.

*Assumption 3: Evolutionary processes have operated on the human lineage.*

True: The assumption is true as humans are part of a long evolutionary history that encompinas millions of years

Assumptions

# Answer
To support the hypothetical statement “Kai will want to do next,” one would need to consider various factors or assumptions about Kai’s preferences, motivations, and current situation. Here is a bullet point list that outlines potential assumptions:

– **Kai has reached a decision**: There should be some context indicating why Kai needs to decide on what to do next, such as encountering an opportunity or facing a challenge.

– **Kai values active engagement**: The assumption here is that Kai prefers being involved and participating in conversations rather than passively observing.

– **Kai has something important to communicate**: This could imply that the conversation contains information or emotions Kai feels compelled to express.

– **There are no external constraints preventing communication**: Assumptions include a lack of barriers such as time limitations, location restrictions, or other people’s interrurances.

– **Kai is comfortable with the current social context**: This assumption implies that Kai feels at ease speaking to the present company and in the given environment.

– **Kai has a strong interest in sharing thoughts or feelings

Fact Checker Output

*Assumption 1: Kai values active engagement.*

False (or True): If there were evidence suggesting that Kai prefers to listen more than speak or tends to avoid conversation when not directly involved in the topic at hand, then this assumption would be false. However, if observations indicate that Kai actively seeks opportunities for dialogue and enjoys engaging with others, the assertion could be considered true.

*Assumption 2: There are no external constraints preventing communication.*

False (or True): If there were indications of time constraints (e.g., an impending deadline), location limitations (e.g., Kai is in a remote area with poor connectivity), or other people’s interruptions (e.g., the group members are preoccupied with another task), this assumption would be false. However, if there were no apparent obstacles hindering communication at that moment, then the assertion could be considered true.

*Assumption 3: Kai has a strong interest in sharing thoughts or feelings.*

False (or True): Evidence of Kai’s eagerness to share insights and emotions would support this assumption

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 = """In light of the above information, how would you classify the statement? (True / False) '{}'""".format(assertion)
    answer_template = """{facts}\n""" + answer_template
    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,
    }

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 = "True" if "true" in final_output.lower() else "False" if "false" in final_output.lower() else "Debatable"
    
    # 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)

Comments

Leave a Reply

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