Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -4,8 +4,6 @@ from datetime import datetime
|
|
4 |
|
5 |
import gradio as gr
|
6 |
import openai
|
7 |
-
import gspread
|
8 |
-
from oauth2client.service_account import ServiceAccountCredentials
|
9 |
|
10 |
# Set OpenAI API key from an environment variable.
|
11 |
openai.api_key = os.environ["OPENAI_API_KEY"]
|
@@ -31,26 +29,6 @@ def get_evaluation_questions():
|
|
31 |
# Load the evaluation questions once at startup.
|
32 |
EVALUATION_QUESTIONS = get_evaluation_questions()
|
33 |
|
34 |
-
def init_sheet():
|
35 |
-
"""
|
36 |
-
Initializes and returns the Google Sheet.
|
37 |
-
The sheet name is taken from the SHEET_NAME environment variable,
|
38 |
-
defaulting to "Prompt Evaluations" if not set.
|
39 |
-
|
40 |
-
Ensure that your service account credentials (credentials.json)
|
41 |
-
are available and that the sheet is shared with the service account's email.
|
42 |
-
"""
|
43 |
-
scopes = [
|
44 |
-
"https://spreadsheets.google.com/feeds",
|
45 |
-
"https://www.googleapis.com/auth/spreadsheets",
|
46 |
-
"https://www.googleapis.com/auth/drive"
|
47 |
-
]
|
48 |
-
creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scopes)
|
49 |
-
client = gspread.authorize(creds)
|
50 |
-
sheet_name = os.environ.get("SHEET_NAME", "Prompt Evaluations")
|
51 |
-
sheet = client.open(sheet_name).sheet1
|
52 |
-
return sheet
|
53 |
-
|
54 |
def sanitize_input(text):
|
55 |
"""
|
56 |
Sanitizes input to prevent harmful content and limits its length.
|
@@ -65,7 +43,7 @@ def evaluate_prompt(email, name, system_prompt):
|
|
65 |
- Uses the provided system prompt to generate a response with GPT-4o Mini.
|
66 |
- Checks if the expected substring is present.
|
67 |
- Computes an aggregate score.
|
68 |
-
|
69 |
"""
|
70 |
# Sanitize the inputs.
|
71 |
email = sanitize_input(email)
|
@@ -105,14 +83,6 @@ def evaluate_prompt(email, name, system_prompt):
|
|
105 |
|
106 |
result_details = "\n".join(responses)
|
107 |
|
108 |
-
try:
|
109 |
-
sheet = init_sheet()
|
110 |
-
timestamp = datetime.now().isoformat()
|
111 |
-
row = [timestamp, email, name, score, system_prompt]
|
112 |
-
sheet.append_row(row)
|
113 |
-
except Exception as err:
|
114 |
-
print("Error writing to Google Sheet:", err)
|
115 |
-
|
116 |
return f"Your evaluation score is {score} out of {len(EVALUATION_QUESTIONS)}.\n\nDetails:\n{result_details}"
|
117 |
|
118 |
def build_interface():
|
|
|
4 |
|
5 |
import gradio as gr
|
6 |
import openai
|
|
|
|
|
7 |
|
8 |
# Set OpenAI API key from an environment variable.
|
9 |
openai.api_key = os.environ["OPENAI_API_KEY"]
|
|
|
29 |
# Load the evaluation questions once at startup.
|
30 |
EVALUATION_QUESTIONS = get_evaluation_questions()
|
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
def sanitize_input(text):
|
33 |
"""
|
34 |
Sanitizes input to prevent harmful content and limits its length.
|
|
|
43 |
- Uses the provided system prompt to generate a response with GPT-4o Mini.
|
44 |
- Checks if the expected substring is present.
|
45 |
- Computes an aggregate score.
|
46 |
+
Returns the evaluation results as a string.
|
47 |
"""
|
48 |
# Sanitize the inputs.
|
49 |
email = sanitize_input(email)
|
|
|
83 |
|
84 |
result_details = "\n".join(responses)
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
return f"Your evaluation score is {score} out of {len(EVALUATION_QUESTIONS)}.\n\nDetails:\n{result_details}"
|
87 |
|
88 |
def build_interface():
|