dappyx commited on
Commit
7756b77
·
verified ·
1 Parent(s): cfd9f7e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -53
app.py CHANGED
@@ -1,53 +1,53 @@
1
- import gradio as gr
2
- from main import tokenizer, model, device
3
- import torch
4
-
5
- def qa_pipeline(text,question):
6
- inputs = tokenizer(question, text, return_tensors="pt")
7
- input_ids = inputs['input_ids'].to(device)
8
- attention_mask = inputs['attention_mask'].to(device)
9
- batch = {
10
- "input_ids": input_ids,
11
- "attention_mask": attention_mask
12
- }
13
- outputs = model(batch)
14
-
15
- start_index = torch.argmax(outputs.start_logits, dim=-1).item()
16
- end_index = torch.argmax(outputs.end_logits, dim=-1).item()
17
-
18
- predict_answer_tokens = inputs.input_ids[0, start_index : end_index + 1]
19
- return tokenizer.decode(predict_answer_tokens)
20
-
21
- def answer_question(context, question):
22
- result = qa_pipeline(context, question)
23
- return result
24
-
25
- example_contexts = [
26
- "Қазақстанның ұлттық құрамы алуан түрлі. Халықтың басым бөлігін тұрғылықты қазақ халқы құрайды, пайыздық үлесі — 70,18%[10], орыстар — 18,42%, өзбектер — 3,29%, украиндар — 1,36%, ұйғырлар — 1,48%, татарлар — 1,06%, басқа халықтар 5,38%.[11] Халықтың 75% астамын мұсылмандар құрайды, православты христиандар — 21%, қалғаны басқа да дін өкілдері.[12]",
27
- "Қазақстан бес мемлекетпен шекаралас, соның ішінде әлемдегі құрлықтағы ең ұзын шекара, солтүстігінде және батысында Ресеймен — 7591 км құрайды. Оңтүстігінде: Түрікменстан — 426 км, Өзбекстан — 2354 км және Қырғызстан — 1241 км, ал шығысында: Қытаймен — 1782 км шектеседі. Жалпы құрлық шекарасының ұзындығы — 13394 км. Батыста Каспий көлімен (2000 км), оңтүстік батыста Арал теңізімен шайылады.[9] 2024 жылдың 1 наурыздағы елдегі тұрғындар саны — 20 075 271[4], бұл әлем бойынша 64-орын. Жер көлемі жағынан әлем елдерінің ішінде 9-орын алады (2 724 902 км²).",
28
- "Қазақстан — 1995 жылғы 30 тамыздағы республикалық референдумда қабылданған Конституция бойынша — өзін демократиялы, зайырлы, құқықты және әлеуметті мемлекет ретінде орнықтырды. Қазақстан Республикасы – президенттік басқару формасындағы біртұтас мемлекет. Республиканың ең жоғарғы өкілді органы — Парламент. Ол республиканың заң шығару құзіретін жүзеге асырады."
29
- ]
30
- example_questions = [
31
- "Қазақстанның халқы неше пайызды қазақтар құрайды?",
32
- "Қазақстан нешеу мемлекетпен шекаралас?",
33
- "Қазақстандағы басқару формасы қандай?",
34
- ]
35
-
36
-
37
- examples = [[context, question] for context, question in zip(example_contexts, example_questions)]
38
-
39
- # Создаем интерфейс
40
- iface = gr.Interface(
41
- fn=answer_question,
42
- inputs=[
43
- gr.Textbox(lines=10, label="Context"),
44
- gr.Textbox(lines=2, label="Question")
45
- ],
46
- outputs="text",
47
- title="Question Answering Model",
48
- description="Введите контекст и задайте вопрос, чтобы получить ответ.",
49
- examples=examples
50
- )
51
-
52
- # Запускаем интерфейс
53
- iface.launch()
 
1
+ import gradio as gr
2
+ from main import tokenizer, model, device
3
+ import torch
4
+
5
+ def qa_pipeline(text,question):
6
+ inputs = tokenizer(question, text, return_tensors="pt")
7
+ input_ids = inputs['input_ids'].to(device)
8
+ attention_mask = inputs['attention_mask'].to(device)
9
+ batch = {
10
+ "input_ids": input_ids,
11
+ "attention_mask": attention_mask
12
+ }
13
+ start_logits, end_logits, loss = model(batch)
14
+
15
+ start_index = torch.argmax(start_logits, dim=-1).item()
16
+ end_index = torch.argmax(end_logits, dim=-1).item()
17
+
18
+ predict_answer_tokens = inputs.input_ids[0, start_index : end_index + 1]
19
+ return tokenizer.decode(predict_answer_tokens)
20
+
21
+ def answer_question(context, question):
22
+ result = qa_pipeline(context, question)
23
+ return result
24
+
25
+ example_contexts = [
26
+ "Қазақстанның ұлттық құрамы алуан түрлі. Халықтың басым бөлігін тұрғылықты қазақ халқы құрайды, пайыздық үлесі — 70,18%[10], орыстар — 18,42%, өзбектер — 3,29%, украиндар — 1,36%, ұйғырлар — 1,48%, татарлар — 1,06%, басқа хал��қтар 5,38%.[11] Халықтың 75% астамын мұсылмандар құрайды, православты христиандар — 21%, қалғаны басқа да дін өкілдері.[12]",
27
+ "Қазақстан бес мемлекетпен шекаралас, соның ішінде әлемдегі құрлықтағы ең ұзын шекара, солтүстігінде және батысында Ресеймен — 7591 км құрайды. Оңтүстігінде: Түрікменстан — 426 км, Өзбекстан — 2354 км және Қырғызстан — 1241 км, ал шығысында: Қытаймен — 1782 км шектеседі. Жалпы құрлық шекарасының ұзындығы — 13394 км. Батыста Каспий көлімен (2000 км), оңтүстік батыста Арал теңізімен шайылады.[9] 2024 жылдың 1 наурыздағы елдегі тұрғындар саны — 20 075 271[4], бұл әлем бойынша 64-орын. Жер көлемі жағынан әлем елдерінің ішінде 9-орын алады (2 724 902 км²).",
28
+ "Қазақстан — 1995 жылғы 30 тамыздағы республикалық референдумда қабылданған Конституция бойынша — өзін демократиялы, зайырлы, құқықты және әлеуметті мемлекет ретінде орнықтырды. Қазақстан Республикасы – президенттік басқару формасындағы біртұтас мемлекет. Республиканың ең жоғарғы өкілді органы — Парламент. Ол республиканың заң шығару құзіретін жүзеге асырады."
29
+ ]
30
+ example_questions = [
31
+ "Қазақстанның халқы неше пайызды қазақтар құрайды?",
32
+ "Қазақстан нешеу мемлекетпен шекаралас?",
33
+ "Қазақстандағы басқару формасы қандай?",
34
+ ]
35
+
36
+
37
+ examples = [[context, question] for context, question in zip(example_contexts, example_questions)]
38
+
39
+ # Создаем интерфейс
40
+ iface = gr.Interface(
41
+ fn=answer_question,
42
+ inputs=[
43
+ gr.Textbox(lines=10, label="Context"),
44
+ gr.Textbox(lines=2, label="Question")
45
+ ],
46
+ outputs="text",
47
+ title="Question Answering Model",
48
+ description="Введите контекст и задайте вопрос, чтобы получить ответ.",
49
+ examples=examples
50
+ )
51
+
52
+ # Запускаем интерфейс
53
+ iface.launch()