Soacti commited on
Commit
1777223
·
verified ·
1 Parent(s): 38c298d

Create fallback_questions.py

Browse files
Files changed (1) hide show
  1. fallback_questions.py +199 -0
fallback_questions.py ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Fallback quiz-spørsmål for når AI-modeller ikke er tilgjengelige
3
+ Organisert etter tema og språk
4
+ """
5
+
6
+ FALLBACK_QUESTIONS = {
7
+ "no": { # Norske spørsmål
8
+ "norsk historie": [
9
+ {
10
+ "spørsmål": "Hvilket år ble Norge selvstendig fra Danmark?",
11
+ "alternativer": ["1814", "1815", "1813", "1816"],
12
+ "korrekt_svar": 0,
13
+ "forklaring": "Norge ble selvstendig fra Danmark i 1814 etter Napoleonskrigene."
14
+ },
15
+ {
16
+ "spørsmål": "Hvem var Norges første konge etter selvstendigheten i 1814?",
17
+ "alternativer": ["Christian Frederik", "Karl Johan", "Oscar I", "Haakon VII"],
18
+ "korrekt_svar": 0,
19
+ "forklaring": "Christian Frederik ble valgt til konge av den norske riksforsamlingen på Eidsvoll i 1814."
20
+ },
21
+ {
22
+ "spørsmål": "Hvilket år fikk kvinner stemmerett i Norge?",
23
+ "alternativer": ["1913", "1915", "1910", "1920"],
24
+ "korrekt_svar": 0,
25
+ "forklaring": "Kvinner fikk stemmerett i Norge i 1913, som et av de første landene i verden."
26
+ }
27
+ ],
28
+ "oslo": [
29
+ {
30
+ "spørsmål": "Hva heter Oslo kommunes rådhus?",
31
+ "alternativer": ["Oslo rådhus", "Akershus festning", "Stortinget", "Slottet"],
32
+ "korrekt_svar": 0,
33
+ "forklaring": "Oslo rådhus er kjent for sin karakteristiske arkitektur og er stedet hvor Nobels fredspris deles ut."
34
+ },
35
+ {
36
+ "spørsmål": "Hvilken øy i Oslofjorden er mest kjent for sine museer?",
37
+ "alternativer": ["Bygdøy", "Hovedøya", "Gressholmen", "Langøyene"],
38
+ "korrekt_svar": 0,
39
+ "forklaring": "Bygdøy har flere av Norges viktigste museer, inkludert Vikingskipshuset og Kon-Tiki museet."
40
+ },
41
+ {
42
+ "spørsmål": "Hva heter Oslos hovedgate for shopping?",
43
+ "alternativer": ["Karl Johans gate", "Storgata", "Grensen", "Torggata"],
44
+ "korrekt_svar": 0,
45
+ "forklaring": "Karl Johans gate strekker seg fra Jernbanetorget til Det kongelige slott og er Oslos hovedstrøk."
46
+ }
47
+ ],
48
+ "bergen": [
49
+ {
50
+ "spørsmål": "Hva kalles det fargerike kaiområdet i Bergen?",
51
+ "alternativer": ["Bryggen", "Fisketorget", "Torgallmenningen", "Nordnes"],
52
+ "korrekt_svar": 0,
53
+ "forklaring": "Bryggen er UNESCOs verdensarvsted og består av fargerike trebygninger fra hansatiden."
54
+ },
55
+ {
56
+ "spørsmål": "Hvilket fjell kan du ta Fløibanen opp til?",
57
+ "alternativer": ["Fløyen", "Ulriken", "Løvstakken", "Sandviksfjellet"],
58
+ "korrekt_svar": 0,
59
+ "forklaring": "Fløibanen er en av Norges mest populære turistattraksjoner og tar deg opp til Fløyen."
60
+ },
61
+ {
62
+ "spørsmål": "Bergen er kjent som 'Porten til' hva?",
63
+ "alternativer": ["Fjordene", "Vestlandet", "Hardanger", "Sognefjorden"],
64
+ "korrekt_svar": 0,
65
+ "forklaring": "Bergen kalles 'Porten til fjordene' fordi den er utgangspunkt for mange fjordturer."
66
+ }
67
+ ]
68
+ },
69
+ "en": { # English questions
70
+ "norwegian history": [
71
+ {
72
+ "spørsmål": "When did Norway gain independence from Denmark?",
73
+ "alternativer": ["1814", "1815", "1813", "1816"],
74
+ "korrekt_svar": 0,
75
+ "forklaring": "Norway gained independence from Denmark in 1814 after the Napoleonic Wars."
76
+ },
77
+ {
78
+ "spørsmål": "Who was Norway's first king after independence in 1814?",
79
+ "alternativer": ["Christian Frederik", "Karl Johan", "Oscar I", "Haakon VII"],
80
+ "korrekt_svar": 0,
81
+ "forklaring": "Christian Frederik was elected king by the Norwegian constituent assembly at Eidsvoll in 1814."
82
+ }
83
+ ],
84
+ "oslo": [
85
+ {
86
+ "spørsmål": "What is the name of Oslo's city hall?",
87
+ "alternativer": ["Oslo City Hall", "Akershus Fortress", "Parliament", "Royal Palace"],
88
+ "korrekt_svar": 0,
89
+ "forklaring": "Oslo City Hall is known for its distinctive architecture and hosts the Nobel Peace Prize ceremony."
90
+ },
91
+ {
92
+ "spørsmål": "Which island in the Oslo fjord is most famous for its museums?",
93
+ "alternativer": ["Bygdøy", "Hovedøya", "Gressholmen", "Langøyene"],
94
+ "korrekt_svar": 0,
95
+ "forklaring": "Bygdøy houses several of Norway's most important museums, including the Viking Ship Museum."
96
+ }
97
+ ],
98
+ "bergen": [
99
+ {
100
+ "spørsmål": "What is the colorful wharf area in Bergen called?",
101
+ "alternativer": ["Bryggen", "Fish Market", "Torgallmenningen", "Nordnes"],
102
+ "korrekt_svar": 0,
103
+ "forklaring": "Bryggen is a UNESCO World Heritage site consisting of colorful wooden buildings from the Hanseatic period."
104
+ }
105
+ ]
106
+ }
107
+ }
108
+
109
+ def get_fallback_questions(tema: str, språk: str = "no", antall: int = 5):
110
+ """
111
+ Hent fallback-spørsmål for et gitt tema og språk
112
+
113
+ Args:
114
+ tema: Tema for spørsmålene (f.eks. "oslo", "bergen", "norsk historie")
115
+ språk: Språkkode ("no" eller "en")
116
+ antall: Antall spørsmål å returnere
117
+
118
+ Returns:
119
+ Liste med quiz-spørsmål
120
+ """
121
+ # Normaliser tema til lowercase
122
+ tema_key = tema.lower().strip()
123
+
124
+ # Sjekk om språk finnes
125
+ if språk not in FALLBACK_QUESTIONS:
126
+ språk = "no" # Default til norsk
127
+
128
+ # Sjekk om tema finnes for språket
129
+ if tema_key not in FALLBACK_QUESTIONS[språk]:
130
+ # Prøv å finne lignende tema
131
+ available_topics = list(FALLBACK_QUESTIONS[språk].keys())
132
+
133
+ # Enkel matching for vanlige varianter
134
+ tema_mapping = {
135
+ "oslo": ["oslo", "oslo kommune", "hovedstad"],
136
+ "bergen": ["bergen", "bergen kommune"],
137
+ "norsk historie": ["norsk historie", "historie", "norway history", "norwegian history"]
138
+ }
139
+
140
+ for standard_tema, variants in tema_mapping.items():
141
+ if any(variant in tema_key for variant in variants):
142
+ tema_key = standard_tema
143
+ break
144
+
145
+ # Hvis fortsatt ikke funnet, bruk første tilgjengelige tema
146
+ if tema_key not in FALLBACK_QUESTIONS[språk]:
147
+ tema_key = available_topics[0] if available_topics else "oslo"
148
+
149
+ # Hent spørsmål
150
+ questions = FALLBACK_QUESTIONS[språk].get(tema_key, [])
151
+
152
+ # Begrens antall spørsmål
153
+ if len(questions) > antall:
154
+ questions = questions[:antall]
155
+
156
+ return questions
157
+
158
+ def get_available_topics(språk: str = "no"):
159
+ """
160
+ Hent liste over tilgjengelige temaer for et språk
161
+
162
+ Args:
163
+ språk: Språkkode ("no" eller "en")
164
+
165
+ Returns:
166
+ Liste med tilgjengelige temaer
167
+ """
168
+ if språk not in FALLBACK_QUESTIONS:
169
+ språk = "no"
170
+
171
+ return list(FALLBACK_QUESTIONS[språk].keys())
172
+
173
+ def get_topic_info(tema: str, språk: str = "no"):
174
+ """
175
+ Hent informasjon om et tema
176
+
177
+ Args:
178
+ tema: Tema å få info om
179
+ språk: Språkkode
180
+
181
+ Returns:
182
+ Dict med tema-informasjon
183
+ """
184
+ tema_key = tema.lower().strip()
185
+
186
+ if språk not in FALLBACK_QUESTIONS:
187
+ språk = "no"
188
+
189
+ if tema_key not in FALLBACK_QUESTIONS[språk]:
190
+ return None
191
+
192
+ questions = FALLBACK_QUESTIONS[språk][tema_key]
193
+
194
+ return {
195
+ "tema": tema_key,
196
+ "språk": språk,
197
+ "antall_spørsmål": len(questions),
198
+ "tilgjengelig": True
199
+ }