File size: 1,209 Bytes
30e0742 |
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 |
import httpx
import json
def safe_json_parse(text: str):
try:
return json.loads(text)
except:
return {"error": "Invalid JSON", "raw_output": text}
def grade_answer_image(student_answer: str, model: str = "grader"):
url = "http://localhost:11434/api/generate" # Ollama API
payload = {
"model": model,
"prompt": f"Student Answer:\n{student_answer}",
"stream": False
}
with httpx.Client() as client:
response = client.post(url, json=payload, timeout=None)
output = response.json().get("response", "")
return safe_json_parse(output)
from google import genai
def extract_ans(image_path):
client = genai.Client(api_key="AIzaSyCMdx_XOa_u6VqatyFTenwaaUg5VEJ3cDE")
myfile = client.files.upload(file=image_path)
response = client.models.generate_content(
model="gemini-2.5-flash", contents=["Extract text from this image", myfile]
)
return grade_answer_image(response.text)
import gradio as gr
interface=gr.Interface(
fn=extract_ans,
inputs=gr.Image(type="filepath", label="Upload Image"),
outputs=gr.JSON(label="Grading Result (JSON Output from Model)"),
)
interface.launch(debug=True) |