Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
14 |
-
|
15 |
-
start_index = torch.argmax(
|
16 |
-
end_index = torch.argmax(
|
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%, басқа
|
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()
|