Gateston Johns
add internet checker
a6e254b
raw
history blame contribute delete
No virus
2.77 kB
import gradio as gr
from typing import Dict, Union, List
import json
import uuid
from storage.neo4j_dao import Neo4jDomainDAO
from domain.chunk_d import DocumentD, ChunkD
from query_pipeline.thesis_extractor import ThesisExtractor
from query_pipeline.evaluation_engine import EvaluationEngine
from proto.chunk_pb2 import Chunk, ChunkType
from datetime import datetime
import os
import requests
os.environ['NEO4J_USER'] = "neo4j"
os.environ['NEO4J_PASSWORD'] = "dOIZwzF_GImgwjF-smChe60QGQgicq8ER8RUlZvornU"
os.environ['NEO4J_URI'] = "neo4j+s://2317ae21.databases.neo4j.io"
def check_internet_connection():
try:
response = requests.get('http://www.google.com', timeout=5)
if response.status_code == 200:
return "Internet connection is available."
else:
return f"Received a response but not a successful status code: {response.status_code}"
except requests.ConnectionError:
return "No internet connection available."
except requests.Timeout:
return "The request timed out."
def thesis_evaluation(thesis: str) -> str:
thesis_document_d = DocumentD(file_path="",
authors="user",
publish_date="2024-06-18")
thesis_chunk_d = ChunkD(chunk_text=thesis,
chunk_type=ChunkType.CHUNK_TYPE_PAGE,
chunk_index=0,
parent_reference=thesis_document_d)
thesis_entity_kg = ThesisExtractor().extract_relationships(thesis_chunk_d)
with Neo4jDomainDAO() as neo4j_dao:
full_db_kg = neo4j_dao.get_knowledge_graph()
return EvaluationEngine(full_db_kg).evaluate_and_display_thesis(thesis_entity_kg)
theme = gr.themes.Soft(
primary_hue="cyan",
secondary_hue="green",
neutral_hue="slate",
)
with gr.Blocks(theme=theme) as demo:
gr.HTML("""
<div style="background-color: rgb(171, 188, 251);">
<div style="background-color: rgb(151, 168, 231); padding-top: 2px; padding-bottom: 7px; text-align: center;">
<h1>AthenaAIC MetisLLM Thesis Evaluation Tool</h1>
</div>
</div>""")
with gr.Row():
inp = gr.Textbox(placeholder="What is your thesis?", scale=3, lines=3, show_label=False)
submit = gr.Button(scale=1, value="Evaluate")
with gr.Row():
out = gr.HTML()
with gr.Row():
checkInetButton = gr.Button(value="Check Internet Connection")
with gr.Row():
status = gr.Textbox(placeholder="", scale=1, lines=1, show_label=False)
submit.click(thesis_evaluation, inputs=inp, outputs=out)
checkInetButton.click(check_internet_connection, outputs=status)
demo.launch(
auth=('athena-admin', 'athena')
)