Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from bs4 import BeautifulSoup | |
| import requests | |
| from acogsphere import acf | |
| from bcogsphere import bcf | |
| import math | |
| import glob | |
| #from python_actr import * | |
| #from cogscidighum import * | |
| #class myCelSci(Model): | |
| # pass | |
| #def main(link): | |
| # response=getviews(link)+getresult("hello world")[0]["label"] + str(math.trunc(getresult("hello world")[0]["score"])*100/100) | |
| # return response #result #soup.prettify() | |
| import sqlite3 | |
| import huggingface_hub | |
| import pandas as pd | |
| import shutil | |
| import os | |
| import datetime | |
| from apscheduler.schedulers.background import BackgroundScheduler | |
| import random | |
| import time | |
| DB_FILE = "./reviews.db" | |
| TOKEN = os.environ.get('HF_KEY') | |
| repo = huggingface_hub.Repository( | |
| local_dir="data", | |
| repo_type="dataset", | |
| clone_from="CognitiveScience/csdhdata", | |
| use_auth_token=TOKEN | |
| ) | |
| repo.git_pull() | |
| # Set db to latest | |
| shutil.copyfile("./data/reviews.db", DB_FILE) | |
| # Create table if it doesn't already exist | |
| db = sqlite3.connect(DB_FILE) | |
| try: | |
| db.execute("SELECT * FROM reviews").fetchall() | |
| db.close() | |
| except sqlite3.OperationalError: | |
| db.execute( | |
| ''' | |
| CREATE TABLE reviews (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, | |
| created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| name TEXT, review INTEGER, comments TEXT) | |
| ''') | |
| db.commit() | |
| db.close() | |
| def get_latest_reviews(db: sqlite3.Connection): | |
| reviews = db.execute("SELECT * FROM reviews ORDER BY id DESC limit 10").fetchall() | |
| total_reviews = db.execute("Select COUNT(id) from reviews").fetchone()[0] | |
| reviews = pd.DataFrame(reviews, columns=["id", "date_created", "name", "review", "comments"]) | |
| return reviews, total_reviews | |
| def add_review(name: str, review: int, comments: str): | |
| db = sqlite3.connect(DB_FILE) | |
| cursor = db.cursor() | |
| cursor.execute("INSERT INTO reviews(name, review, comments) VALUES(?,?,?)", [name, review, comments]) | |
| db.commit() | |
| reviews, total_reviews = get_latest_reviews(db) | |
| db.close() | |
| return reviews, total_reviews | |
| def load_data(): | |
| db = sqlite3.connect(DB_FILE) | |
| reviews, total_reviews = get_latest_reviews(db) | |
| db.close() | |
| return reviews, total_reviews | |
| def delete_review(id: int): | |
| db = sqlite3.connect(DB_FILE) | |
| cursor = db.cursor() | |
| cursor.execute("DELETE FROM reviews WHERE id = ?", [id]) | |
| db.commit() | |
| reviews, total_reviews = get_latest_reviews(db) | |
| db.close() | |
| return reviews, total_reviews | |
| def delete_all_reviews(): | |
| db = sqlite3.connect(DB_FILE) | |
| cursor = db.cursor() | |
| cursor.execute("DELETE FROM reviews") | |
| db.commit() | |
| reviews, total_reviews = get_latest_reviews(db) | |
| db.close() | |
| return reviews, total_reviews | |
| #def cs(link): | |
| # response="Hi " + "bcf" #(link) #acf("hello world")[0]["label"] + str(math.trunc(acf("hello world")[0]["score"])*100/100)+bcf(link) | |
| # return response #result #soup.prettify() | |
| def respond3(message, chat_history): | |
| bot_message = random.choice(["How are you3?", "I love you3", "I'm very hungry3"]) | |
| chat_history.append((message, bot_message)) | |
| time.sleep(2) | |
| return "", chat_history | |
| with gr.Blocks() as demo: | |
| with gr.Row(): | |
| with gr.Column(): | |
| with gr.Box(): | |
| gr.Markdown("Based on dataset [here](https://huggingface.co/datasets/freddyaboulton/gradio-reviews)") | |
| #data = gr.Dataframe() | |
| count = gr.Number(label="Total number of reviews") | |
| name = gr.Textbox(label="Name", placeholder="ur name?") | |
| review = gr.Radio(label="How satisfied are you with your pick?", choices=[1, 2, 3, 4, 5, 6]) | |
| comments = gr.Textbox(label="Comments0", lines=10, placeholder="comm?") | |
| cssubmit = gr.Button(value="Submit Choice") | |
| #cschatbot = gr.Chatbot() | |
| #csinp = gr.Textbox() | |
| #csout=cs(csinp) | |
| #csclear = gr.ClearButton([csinp, cschatbot]) | |
| #csinp.submit(cs, [csinp, cschatbot], [csinp, cschatbot]) | |
| def cs(link): | |
| response="Hi " + link #(link) #acf("hello world")[0]["label"] + str(math.trunc(acf("hello world")[0]["score"])*100/100)+bcf(link) | |
| return response,1 #result #soup.prettify() | |
| cssubmit.click(cs, name, [comments,count]) | |
| with gr.Row(): | |
| with gr.Column(): | |
| name = gr.Textbox(label="Name", placeholder="What is your name?") | |
| review = gr.Radio(label="How satisfied are you with using gradio?", choices=[1, 2, 3, 4, 5]) | |
| comments = gr.Textbox(label="Comments", lines=10, placeholder="Do you have any feedback on gradio?") | |
| submit = gr.Button(value="Submit Feedback") | |
| with gr.Column(): | |
| gr.FileExplorer(label="Working directory") | |
| gr.FileExplorer(root="./data", label="Persistent storage") | |
| with gr.Column(): | |
| chatbot = gr.Chatbot() | |
| msg = gr.Textbox() | |
| clear = gr.ClearButton([msg, chatbot]) | |
| def respond(message, chat_history): | |
| bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"]) | |
| chat_history.append((message, bot_message)) | |
| time.sleep(2) | |
| return "", chat_history | |
| msg.submit(respond, [msg, chatbot], [msg, chatbot]) | |
| with gr.Column(): | |
| submitsave = gr.Button(value="Save") | |
| def backup_db2(): | |
| shutil.copyfile(DB_FILE, "./data/reviews.db") | |
| db = sqlite3.connect(DB_FILE) | |
| reviews = db.execute("SELECT * FROM reviews").fetchall() | |
| pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False) | |
| print("updating db") | |
| repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}") | |
| submit.click(backup_db2) | |
| with gr.Column(): | |
| with gr.Box(): | |
| gr.Code( | |
| value="""def hello_world(): | |
| return "Hello, world!" | |
| print(hello_world())""", | |
| language="python", | |
| interactive=True, | |
| show_label=False, | |
| ) | |
| gr.Markdown("Based on dataset [here](https://huggingface.co/datasets/freddyaboulton/gradio-reviews)") | |
| data = gr.Dataframe() | |
| count = gr.Number(label="Total number of reviews") | |
| submit.click(add_review, [name, review, comments], [data, count]) | |
| #cssubmit.click(add_review, [name, review, comments], [data, count]) | |
| record2del = gr.Textbox(label="Id: ", lines=1, placeholder="to delete?") | |
| submit2 = gr.Button(value="Delete Review") | |
| id_input = gr.Number(value=202, visible=False) | |
| submit2.click(delete_review, id_input) | |
| submit3 = gr.Button(value="Delete All Reviews") | |
| submit3.click(delete_all_reviews) | |
| demo.load(load_data, None, [data, count]) | |
| def backup_db(): | |
| shutil.copyfile(DB_FILE, "./data/reviews.db") | |
| db = sqlite3.connect(DB_FILE) | |
| reviews = db.execute("SELECT * FROM reviews").fetchall() | |
| pd.DataFrame(reviews).to_csv("./data/reviews.csv", index=False) | |
| print("updating db") | |
| repo.push_to_hub(blocking=False, commit_message=f"Updating data at {datetime.datetime.now()}") | |
| scheduler = BackgroundScheduler() | |
| scheduler.add_job(func=backup_db, trigger="interval", seconds=60) | |
| scheduler.start() | |
| demo.launch() |