Spaces:
Running
Running
File size: 1,826 Bytes
7d95632 5fc8a20 dee6c4d 7d95632 5fc8a20 7d95632 5fc8a20 7d95632 5fc8a20 7d95632 5fc8a20 7d95632 5fc8a20 7d95632 ac9ee5b 5fc8a20 7d95632 f6a32f7 ac9ee5b 7d95632 5fc8a20 f6a32f7 649399f 5fc8a20 649399f ac9ee5b 649399f | 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 64 65 66 67 68 69 70 71 72 | import sqlite3
import json
from datetime import datetime
import os
DB_PATH = "data/evaluations.db"
def init_db():
# Create data folder first, then connect
os.makedirs(os.path.dirname(DB_PATH), exist_ok=True)
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS evaluations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
context TEXT,
question TEXT,
llm_response TEXT,
final_verdict TEXT,
cosine_score REAL,
bert_score REAL,
nli_label TEXT,
nli_score REAL,
fluency_verdict TEXT,
full_result TEXT,
created_at TEXT
)
""")
conn.commit()
conn.close()
def save_evaluation(context, question, llm_response, result):
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("""
INSERT INTO evaluations (
context, question, llm_response,
final_verdict, cosine_score, bert_score,
nli_label, nli_score, fluency_verdict,
full_result, created_at
)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
""", (
context,
question,
llm_response,
result["final_verdict"],
result["cosine"]["score"],
result["bert_score"]["score"],
result["nli"]["label"],
result["nli"]["score"],
result["fluency"]["verdict"],
json.dumps(result),
datetime.now().isoformat()
))
conn.commit()
conn.close()
def get_all_evaluations():
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("SELECT * FROM evaluations ORDER BY created_at DESC")
rows = cursor.fetchall()
conn.close()
return rows |