Skip to content

Commit

Permalink
adaptation to new data structure
Browse files Browse the repository at this point in the history
  • Loading branch information
HanXudong committed May 25, 2024
1 parent 1aed5c1 commit 152bf16
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 50 deletions.
45 changes: 21 additions & 24 deletions templates/LibrAI_fc.html
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@
<div class="card-body">
<div>
<!-- for statement -->
{% for claim_detail in responses['claim_details'] %}
{% for claim_detail in responses['claim_detail'] %}
<sup>{{ loop.index }}</sup>
{% if claim_detail['factuality'] == 0 %}
<span class="refutes-span" onclick="switchClaim({{ loop.index }})">
Expand All @@ -79,7 +79,7 @@
<span class="controversial-span" onclick="switchClaim({{ loop.index }})">
{% endif %}
<span class="fs-4">
{{claim_detail['origin']['text']}}
{{claim_detail['origin_text']}}
</span>
</span>
{% endfor %}
Expand All @@ -97,34 +97,34 @@
<div class="card">
<div class="card-header">
<h6>
<strong>Claim:&nbsp;</strong>: {{ responses['claim_details'][shown_claim]["claim"] }}
<strong>Claim:&nbsp;</strong>: {{ responses['claim_detail'][shown_claim]["claim"] }}
</h6>
<h6 class="card-title">
Evidences <span class="badge bg-danger">{{ responses['claim_details'][shown_claim]["evidence"] | length }}</span>
Evidences <span class="badge bg-danger">{{ responses['claim_detail'][shown_claim]["evidences"] | length }}</span>
</h6>
</div>
<div class="card-body">
<ul class="nav nav-pills mb-3" id="pills-tab">
<li class="nav-item">
<a class="nav-link active" id="pills-refutes-tab" data-bs-toggle="pill" href="#pills-refutes">
<p class="text-danger">REFUTES ({{ responses['claim_details'][shown_claim]["evidence"] | count_occurrences("REFUTES", "relationship") }})</p>
<p class="text-danger">REFUTES ({{ responses['claim_detail'][shown_claim]["evidences"] | count_occurrences("REFUTES", "relationship") }})</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-contextualizes-tab" data-bs-toggle="pill" href="#pills-contextualizes">
<p class="text-warning">CONTEXTUALIZES ({{ responses['claim_details'][shown_claim]["evidence"] | count_occurrences("IRRELEVANT", "relationship") }})</p>
<p class="text-warning">CONTEXTUALIZES ({{ responses['claim_detail'][shown_claim]["evidences"] | count_occurrences("IRRELEVANT", "relationship") }})</p>
</a>
</li>
<li class="nav-item">
<a class="nav-link" id="pills-supports-tab" data-bs-toggle="pill" href="#pills-supports">
<p class="text-success">Supports ({{ responses['claim_details'][shown_claim]["evidence"] | count_occurrences("SUPPORTS", "relationship") }})</p>
<p class="text-success">Supports ({{ responses['claim_detail'][shown_claim]["evidences"] | count_occurrences("SUPPORTS", "relationship") }})</p>
</a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-refutes">
<div class="accordion" id="accordionRefutes">
{% for evi in responses['claim_details'][shown_claim]["evidence"] | filter_evidences("REFUTES", "relationship") %}
{% for evi in responses['claim_detail'][shown_claim]["evidences"] | filter_evidences("REFUTES", "relationship") %}
<div class="accordion-item">
<h2 class="accordion-header" id="headingRef{{ loop.index }}">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseRefutes{{ loop.index }}">
Expand All @@ -135,10 +135,9 @@ <h2 class="accordion-header" id="headingRef{{ loop.index }}">
</h2>
<div id="collapseRefutes{{ loop.index }}" class="accordion-collapse collapse" data-bs-parent="#accordionRefutes">
<div class="accordion-body">
<!-- <p><strong>Evidence:&nbsp;</strong><a href="#">{{evi.evidence.relationship}}</a></p> -->
<p><strong>Evidence:&nbsp;</strong>{{ evi["evidence"]["text"] }}</p>
<p><strong>Evidence:&nbsp;</strong>{{ evi["text"] }}</p>
<p><strong>Source:&nbsp;</strong>
<span class="evidence-text pre-wrap">{{evi.evidence.url}}</span>
<span class="evidence-text pre-wrap">{{evi.url}}</span>
</p>
<p><strong>Reasoning:&nbsp;</strong>{{evi.reasoning}}</p>
</div>
Expand All @@ -149,7 +148,7 @@ <h2 class="accordion-header" id="headingRef{{ loop.index }}">
</div>
<div class="tab-pane fade" id="pills-contextualizes">
<div class="accordion" id="accordionContextualizes">
{% for evi in responses['claim_details'][shown_claim]["evidence"] | filter_evidences("IRRELEVANT", "relationship") %}
{% for evi in responses['claim_detail'][shown_claim]["evidences"] | filter_evidences("IRRELEVANT", "relationship") %}
<div class="accordion-item">
<h2 class="accordion-header" id="headingContext{{ loop.index }}">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseContextualizes{{ loop.index }}">
Expand All @@ -160,10 +159,9 @@ <h2 class="accordion-header" id="headingContext{{ loop.index }}">
</h2>
<div id="collapseContextualizes{{ loop.index }}" class="accordion-collapse collapse" data-bs-parent="#accordionContextualizes">
<div class="accordion-body">
<!-- <p><strong>Evidence:&nbsp;</strong><a href="#">{{evi.evidence.relationship}}</a></p> -->
<p><strong>Evidence:&nbsp;</strong>{{ evi["evidence"]["text"] }}</p>
<p><strong>Evidence:&nbsp;</strong>{{ evi["text"] }}</p>
<p><strong>Source:&nbsp;</strong>
<span class="evidence-text pre-wrap">{{evi.evidence.url}}</span>
<span class="evidence-text pre-wrap">{{evi.url}}</span>
</p>
<p><strong>Reasoning:&nbsp;</strong>{{evi.reasoning}}</p>
</div>
Expand All @@ -174,7 +172,7 @@ <h2 class="accordion-header" id="headingContext{{ loop.index }}">
</div>
<div class="tab-pane fade" id="pills-supports">
<div class="accordion" id="accordionSupports">
{% for evi in responses['claim_details'][shown_claim]["evidence"] | filter_evidences("SUPPORTS", "relationship") %}
{% for evi in responses['claim_detail'][shown_claim]["evidences"] | filter_evidences("SUPPORTS", "relationship") %}
<div class="accordion-item">
<h2 class="accordion-header" id="headingSupport{{ loop.index }}">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseSupports{{ loop.index }}">
Expand All @@ -185,10 +183,9 @@ <h2 class="accordion-header" id="headingSupport{{ loop.index }}">
</h2>
<div id="collapseSupports{{ loop.index }}" class="accordion-collapse collapse" data-bs-parent="#accordionSupports">
<div class="accordion-body">
<!-- <p><strong>Evidence:&nbsp;</strong><a href="#">{{evi.evidence.relationship}}</a></p> -->
<p><strong>Evidence:&nbsp;</strong>{{ evi["evidence"]["text"] }}</p>
<p><strong>Evidence:&nbsp;</strong>{{ evi["text"] }}</p>
<p><strong>Source:&nbsp;</strong>
<span class="evidence-text pre-wrap">{{evi.evidence.url}}</span>
<span class="evidence-text pre-wrap">{{evi.url}}</span>
</p>
<p><strong>Reasoning:&nbsp;</strong>{{evi.reasoning}}</p>
</div>
Expand Down Expand Up @@ -217,7 +214,7 @@ <h6 class="card-title">
</h6>
</div>
<div class="card-body">
{{ 100 * responses["summary"]["overall_factuality"] }}%
{{ 100 * responses["summary"]["factuality"] }}%
</div>
<div class="card-arrow">
<div class="card-arrow-top-left"></div>
Expand All @@ -232,31 +229,31 @@ <h6 class="card-title">
<li class="list-group-item">
<div>
<h6>
{{responses["summary"]["num_claims"]}}
{{ responses["summary"]["num_claims"] }}
</h6>
</div>
<div><h7>Detected claims</h7></div>
</li>
<li class="list-group-item">
<div>
<h6>
<p class="text-success-emphasis">{{ claim_statistic["well_supported_claims"] }}</p>
<p class="text-success-emphasis">{{ responses["summary"]["num_supported_claims"] }}</p>
</h6>
</div>
<div><h7>Well Supported</h7></div>
</li>
<li class="list-group-item">
<div>
<h6>
<p class="text-danger-emphasis">{{ claim_statistic["conflicted_claims"] }}</p>
<p class="text-danger-emphasis">{{ responses["summary"]["num_refuted_claims"] }}</p>
</h6>
</div>
<div><h7>Conflict</h7></div>
</li>
<li class="list-group-item">
<div>
<h6>
<p class="text-warning">{{ claim_statistic["controversial_claims"] }}</p>
<p class="text-warning">{{ responses["summary"]["num_controversial_claims"] }}</p>
</h6>
</div>
<div><h7>Controversial</h7></div>
Expand Down
34 changes: 8 additions & 26 deletions webapp.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from flask import Flask, request, render_template, jsonify
from factcheck.utils.llmclient import CLIENTS
import argparse
import json

Expand Down Expand Up @@ -34,44 +35,23 @@ def filter_evidences(input_dict, target_string, key):
app.jinja_env.filters["filter_evidences"] = filter_evidences


# Claim statistics
def claim_statistic(response):
return {
"total_claims": len(response["claim_details"]),
"well_supported_claims": len([claim for claim in response["claim_details"] if (claim["factuality"] == 1)]),
"controversial_claims": len([claim for claim in response["claim_details"] if (0 < claim["factuality"] < 1)]),
"conflicted_claims": len([claim for claim in response["claim_details"] if (claim["factuality"] == 0)]),
}


@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
response = request.form["response"]
if response == "":
return render_template("input.html")
response = factcheck_instance.check_response(response)
response = factcheck_instance.check_text(response)

# save the response json file
with open("assets/response.json", "w") as f:
json.dump(response, f)

claim_sta = claim_statistic(response)
return render_template("LibrAI_fc.html", responses=response, shown_claim=0, claim_statistic=claim_sta)
return render_template("LibrAI_fc.html", responses=response, shown_claim=0)

return render_template("input.html")


# @app.route("/", methods=["GET", "POST"])
# def index():
# # load the response json file
# import json
# with open('response.json') as f:
# response = json.load(f)
# claim_sta=claim_statistic(response)
# return render_template("LibrAI_fc.html", responses=response, shown_claim=0, claim_statistic=claim_sta)


@app.route("/shownClaim/<content_id>")
def get_content(content_id):
# load the response json file
Expand All @@ -80,15 +60,17 @@ def get_content(content_id):
with open("assets/response.json") as f:
response = json.load(f)

claim_sta = claim_statistic(response)
return render_template("LibrAI_fc.html", responses=response, shown_claim=(int(content_id) - 1), claim_statistic=claim_sta)
return render_template("LibrAI_fc.html", responses=response, shown_claim=(int(content_id) - 1))


if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--model", type=str, default="gpt-4-0125-preview")
parser.add_argument("--model", type=str, default="gpt-4o")
parser.add_argument("--client", type=str, default=None, choices=CLIENTS.keys())
parser.add_argument("--prompt", type=str, default="chatgpt_prompt")
parser.add_argument("--retriever", type=str, default="serper")
parser.add_argument("--modal", type=str, default="text")
parser.add_argument("--input", type=str, default="demo_data/text.txt")
parser.add_argument("--api_config", type=str, default="factcheck/config/api_config.yaml")
args = parser.parse_args()

Expand Down

0 comments on commit 152bf16

Please sign in to comment.