File size: 2,193 Bytes
cbfd993
cae214c
 
90d9239
cbfd993
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cae214c
 
 
90d9239
cbfd993
 
 
 
90d9239
cae214c
 
 
 
 
 
 
 
90d9239
cae214c
 
 
 
 
 
 
95bc6ed
cbfd993
 
 
 
 
 
 
 
 
 
 
 
90d9239
cbfd993
 
cae214c
e5c2552
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import argparse
import streamlit as st
from streamlit_option_menu import option_menu

from openfactcheck.core.base import OpenFactCheck, OpenFactCheckConfig
from openfactcheck.app.evaluate_response import evaluate_response

def parse_args():
    parser = argparse.ArgumentParser(description='Initialize OpenFactCheck with custom configuration.')
    
    # Add arguments here, example:
    parser.add_argument("--config-path", 
                        type=str, 
                        help="Config File Path",
                        default="config.json")
    
    # Parse arguments from command line
    args = parser.parse_args()
    return args

class App:
    def __init__(self):
        pass

    def run(self, config_path: str = "config.json"):
        # Initialize OpenFactCheck
        config = OpenFactCheckConfig(config_path)
        ofc = OpenFactCheck(config)

        # Set up Dashboard
        st.set_page_config(page_title="OpenFactCheck Dashboard", 
                        page_icon=":bar_chart:", 
                        layout="wide")
                        
        # Title
        st.markdown("<h1 style='text-align: center;'>OpenFactCheck Dashboard</h1>", unsafe_allow_html=True)
        st.markdown("<h5 style='text-align: center;'>An Open-source Factuality Evaluation Demo for LLMs</h3>", unsafe_allow_html=True)

        # Selection Menu
        selected = option_menu(None, ["Evaluate LLM Response", "Evaluate LLM", "Evaluate FactChecker", "Leaderboards", "About"], 
            icons=['card-checklist', 'check-square', "check2-all", "trophy", "info-circle"],
            menu_icon="cast", 
            default_index=0, 
            orientation="horizontal"
        )

        # Load the selected page
        if selected == "Evaluate LLM Response":
            evaluate_response(ofc)
        # elif selected == "Evaluate LLM":
        #     evaluate_llm()
        # elif selected == "Evaluate FactChecker":
        #     evaluate_factchecker()
        # elif selected == "Leaderboards":
        #     leaderboards()
        # else:
        #     about()

if __name__ == "__main__":
    args = parse_args()

    app = App()
    app.run("configs/production.json")