Spaces:
Sleeping
Sleeping
File size: 5,072 Bytes
2300b9a 765f19b 2300b9a 765f19b 2300b9a 765f19b 2300b9a 765f19b 2300b9a 765f19b 2300b9a 765f19b 2300b9a 765f19b |
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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
import gradio as gr
import json
import time
# Hardkodede spørsmål direkte i app.py
QUIZ_DATABASE = {
"oslo": [
{
"spørsmål": "Hva heter Oslos hovedflyplass?",
"alternativer": ["Fornebu", "Gardermoen", "Torp", "Rygge"],
"korrekt_svar": 1,
"forklaring": "Oslo lufthavn Gardermoen er Oslos hovedflyplass, åpnet i 1998."
},
{
"spørsmål": "Hvilken fjord ligger Oslo ved?",
"alternativer": ["Trondheimsfjorden", "Oslofjorden", "Hardangerfjorden", "Sognefjorden"],
"korrekt_svar": 1,
"forklaring": "Oslo ligger innerst i Oslofjorden."
},
{
"spørsmål": "Hva heter Oslos berømte operahus?",
"alternativer": ["Operaen", "Den Norske Opera", "Oslo Opera House", "Operahuset"],
"korrekt_svar": 3,
"forklaring": "Operahuset i Oslo åpnet i 2008."
}
],
"bergen": [
{
"spørsmål": "Hva kalles det fargerike kaiområdet i Bergen?",
"alternativer": ["Bryggen", "Fisketorget", "Torgallmenningen", "Nordnes"],
"korrekt_svar": 0,
"forklaring": "Bryggen er UNESCOs verdensarvsted."
},
{
"spørsmål": "Hvilket fjell kan man ta Fløibanen opp til?",
"alternativer": ["Ulriken", "Fløyen", "Løvstakken", "Sandviksfjellet"],
"korrekt_svar": 1,
"forklaring": "Fløibanen går opp til Fløyen, 320 meter over havet."
}
],
"norsk historie": [
{
"spørsmål": "Hvilket år ble Norge selvstendig fra Danmark?",
"alternativer": ["1814", "1905", "1821", "1830"],
"korrekt_svar": 0,
"forklaring": "Norge ble selvstendig fra Danmark i 1814."
}
]
}
def generate_quiz_for_soacti(tema, språk, antall, type_val, vanskelighet):
"""Quiz-generering som SoActi kan bruke"""
try:
# Normaliser tema
tema_lower = tema.lower().strip()
# Finn spørsmål
if tema_lower in QUIZ_DATABASE:
questions = QUIZ_DATABASE[tema_lower]
elif "oslo" in tema_lower:
questions = QUIZ_DATABASE["oslo"]
elif "bergen" in tema_lower:
questions = QUIZ_DATABASE["bergen"]
elif "historie" in tema_lower:
questions = QUIZ_DATABASE["norsk historie"]
else:
questions = QUIZ_DATABASE["oslo"] # Default
# Begrens antall
selected = questions[:antall]
# Format output for visning
output = f"✅ **Genererte {len(selected)} spørsmål om '{tema}'**\n\n"
output += f"🤖 **Modell:** Fallback (forhåndsdefinerte spørsmål)\n"
output += f"🌐 **Språk:** {språk}\n"
output += f"⏱️ **Tid:** 0.1s\n\n"
for i, q in enumerate(selected, 1):
output += f"📝 **Spørsmål {i}:** {q['spørsmål']}\n"
for j, alt in enumerate(q['alternativer']):
marker = "✅" if j == q['korrekt_svar'] else "❌"
output += f" {chr(65+j)}) {alt} {marker}\n"
output += f"💡 **Forklaring:** {q['forklaring']}\n\n"
return output
except Exception as e:
return f"❌ **Feil:** {str(e)}"
# Gradio interface
with gr.Blocks(title="SoActi AI Quiz API") as demo:
gr.Markdown("# 🧠 SoActi AI Quiz API")
gr.Markdown("**Fungerende quiz-generering for SoActi**")
with gr.Row():
with gr.Column():
tema_input = gr.Textbox(
label="Tema",
value="Oslo",
placeholder="Oslo, Bergen, Norsk historie"
)
språk_input = gr.Dropdown(
choices=["no", "en"],
label="Språk",
value="no"
)
antall_input = gr.Slider(
minimum=1,
maximum=5,
step=1,
label="Antall spørsmål",
value=3
)
type_input = gr.Dropdown(
choices=["sted", "rute"],
label="Type",
value="sted"
)
vanskelighet_input = gr.Slider(
minimum=1,
maximum=5,
step=1,
label="Vanskelighetsgrad",
value=3
)
generate_btn = gr.Button("🚀 Generer Quiz", variant="primary")
with gr.Column():
output = gr.Textbox(
label="Generert Quiz",
lines=20,
placeholder="Klikk 'Generer Quiz' for å starte..."
)
generate_btn.click(
fn=generate_quiz_for_soacti,
inputs=[tema_input, språk_input, antall_input, type_input, vanskelighet_input],
outputs=output
)
gr.Markdown("## 🔗 API URL for SoActi")
gr.Markdown("`https://Soacti-soacti-ai-quiz-api.hf.space`")
demo.launch() |