|
import gradio as gr |
|
from gradio_calendar import Calendar |
|
|
|
from langchain.embeddings.huggingface import HuggingFaceEmbeddings |
|
from langchain_community.vectorstores import Chroma |
|
from langchain_core.output_parsers import StrOutputParser |
|
import torch |
|
from transformers import ( |
|
AutoModelForCausalLM, |
|
AutoTokenizer, |
|
BitsAndBytesConfig, |
|
pipeline, |
|
StoppingCriteria, StoppingCriteriaList |
|
) |
|
|
|
from langchain.prompts import PromptTemplate |
|
from langchain_community.llms import HuggingFacePipeline |
|
from langchain.chains import LLMChain |
|
from langchain_core.runnables import RunnablePassthrough, RunnableParallel |
|
|
|
|
|
|
|
|
|
|
|
model_name='SherlockAssistant/Mistral-7B-Instruct-Ukrainian' |
|
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
tokenizer.pad_token = tokenizer.unk_token |
|
tokenizer.padding_side = "right" |
|
|
|
|
|
|
|
use_4bit = True |
|
|
|
|
|
bnb_4bit_compute_dtype = "float16" |
|
|
|
|
|
bnb_4bit_quant_type = "nf4" |
|
|
|
|
|
use_nested_quant = False |
|
|
|
|
|
|
|
|
|
compute_dtype = getattr(torch, bnb_4bit_compute_dtype) |
|
|
|
bnb_config = BitsAndBytesConfig( |
|
load_in_4bit=use_4bit, |
|
bnb_4bit_quant_type=bnb_4bit_quant_type, |
|
bnb_4bit_compute_dtype=compute_dtype, |
|
bnb_4bit_use_double_quant=use_nested_quant, |
|
) |
|
|
|
|
|
if compute_dtype == torch.float16 and use_4bit: |
|
major, _ = torch.cuda.get_device_capability() |
|
if major >= 8: |
|
print("=" * 80) |
|
print("Your GPU supports bfloat16: accelerate training with bf16=True") |
|
print("=" * 80) |
|
|
|
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
model_name, quantization_config=bnb_config) |
|
|
|
stop_list = [" \n\nAnswer:", "\n", " \n\n"] |
|
stop_token_ids = [tokenizer(x, return_tensors='pt', add_special_tokens=False)['input_ids'] for x in stop_list] |
|
stop_token_ids = [torch.LongTensor(x).to("cuda") for x in stop_token_ids] |
|
|
|
class StopOnTokens(StoppingCriteria): |
|
def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool: |
|
for stop_ids in stop_token_ids: |
|
if torch.eq(input_ids[0][-len(stop_ids[0])+1:], stop_ids[0][1:]).all(): |
|
return True |
|
return False |
|
|
|
stopping_criteria = StoppingCriteriaList([StopOnTokens()]) |
|
|
|
|
|
text_generation_pipeline = pipeline( |
|
model=model, |
|
tokenizer=tokenizer, |
|
task="text-generation", |
|
temperature=0.01, |
|
repetition_penalty=1.2, |
|
return_full_text=True, |
|
max_new_tokens=750, do_sample=True, |
|
top_k=50, top_p=0.95, |
|
stopping_criteria=stopping_criteria |
|
) |
|
mistral_llm = HuggingFacePipeline(pipeline=text_generation_pipeline) |
|
|
|
instructor_embeddings = HuggingFaceEmbeddings(model_name="intfloat/multilingual-e5-large") |
|
db3 = Chroma(persist_directory="chroma/", embedding_function=instructor_embeddings) |
|
|
|
|
|
|
|
|
|
retriever = db3.as_retriever( |
|
search_kwargs={ |
|
"k": 5}) |
|
|
|
|
|
def format_docs(docs): |
|
return "\n\n".join(doc.page_content for doc in docs) |
|
|
|
|
|
template ="""" [INST] Ти асистент для надання відповідей з законодавства України. Використовуй лише вказаний нижче Context максимально точно. Описуй лише події простими словами без формальностей. Якщо питання не стосується законодавства України - пиши "Я не маю релевантної інформації. Спробуйте ще". Ось приклади використання: |
|
Context: |
|
'9) доручити Міністерству освіти і науки України:\r\nпередбачити у стандартах вищої освіти для першого (бакалаврського) рівня в межах кожної спеціальності наявність компетентності випускника щодо здатності використовувати різні види та форми рухової активності для активного відпочинку та ведення здорового способу життя, а також відповідних результатів навчання, зокрема щодо виконання встановлених нормативів фізичної підготовленості;\r\nрекомендувати ректорам вищих навчальних закладів з метою формування зазначеної компетентності та досягнення відповідних результатів навчання передбачити для студентів заняття з фізичного виховання не менш як протягом двох років навчання в обсязі 4 години на тиждень, враховуючи, що заняття з фізичного виховання мають відновлювальне та рекреаційне значення;\r\nв установленому порядку до 1 вересня 2016 року доповнити технологічні вимоги щодо забезпечення провадження освітньої діяльності у сфері вищої освіти (Ліцензійні умови провадження освітньої діяльності закладів освіти, затверджені постановою Кабінету Міністрів України від 30 грудня 2015 року № 1187) в частині забезпеченості здобувачів вищої освіти спортивними залами, стадіонами та спортивними майданчиками (у квадратних метрах на одного студента);' |
|
|
|
Частину другу статті 55 доповнено абзацом дев'ятим згідно із Законом № 2657-VIII від 18.12.2018\r\nвимагати повного та неупередженого розслідування випадків булінгу (цькування) стосовно дитини або будь-якого іншого учасника освітнього процесу.\r\nЧастину другу статті 55 доповнено абзацом десятим згідно із Законом № 2657-VIII від 18.12.2018\r\n3. Батьки здобувачів освіти зобов'язані:\r\nвиховувати у дітей повагу до гідності, прав, свобод і законних інтересів людини, законів та етичних норм, відповідальне ставлення до власного здоров'я, здоров'я оточуючих і довкілля;\r\nсприяти виконанню дитиною освітньої програми та досягненню дитиною передбачених нею результатів навчання;\r\nповажати гідність, права, свободи і законні інтереси дитини та інших учасників освітнього процесу;\r\nдбати про фізичне і психічне здоров'я дитини, сприяти розвитку її здібностей, формувати навички здорового способу життя;\r\nформувати у дитини культуру діалогу, культуру життя у взаєморозумінні, мирі та злагоді між усіма народами, етнічними, національними, релігійними групами, представниками різних політичних і релігійних поглядів та культурних традицій, різного соціального походження, сімейного та майнового стану;\r\nнастановленням і особистим прикладом утверджувати повагу до суспільної моралі та суспільних цінностей, зокрема правди, справедливості, патріотизму, гуманізму, толерантності, працелюбства;" |
|
|
|
|
|
|
|
ANSWER: регуляції для вищих навчальних закладів передбачають обов'язкове фізичне виховання студентів та забезпечення їх доступом до спортивних залів і майданчиків. Також вони спрямовані на покращення боротьби з булінгом в освітніх установах та підвищення відповідальності батьків за виховання дітей. |
|
Context: {context} |
|
QUESTION: |
|
{question} |
|
|
|
Напиши три речення. Описуй отримані документи просто, доступно для підлітка. Вказуй лише найголовніші події. Якщо питання не стосується законів - пиши "Я не маю релевантної інформації. Спробуйте ще". На вхід ти отримав декілька законів, підсумуй їх простими словами, викинь формальності та стандартні фрази. Опиши найголовніші зміни у трьох реченнях. |
|
|
|
[/INST] |
|
|
|
""" |
|
prompt = PromptTemplate( |
|
input_variables=["context", "question"], |
|
template=template, |
|
) |
|
|
|
rag_chain_from_docs = ( |
|
RunnablePassthrough.assign(context=(lambda x: format_docs(x["context"]))) |
|
| prompt |
|
| mistral_llm |
|
| StrOutputParser() |
|
) |
|
|
|
rag_chain_with_source = RunnableParallel( |
|
{"context": retriever, "question": RunnablePassthrough()} |
|
).assign(answer=rag_chain_from_docs) |
|
|
|
|
|
|
|
def format_result(result): |
|
unique_videos = set((doc.metadata['title'], doc.metadata['act_url']) for doc in result['context']) |
|
|
|
|
|
titles_with_links = [ |
|
f"{title}: {act_url}" for title, act_url in unique_videos |
|
] |
|
|
|
|
|
titles_string = '\n'.join(titles_with_links) |
|
titles_formatted = f"Використані закони:\n{titles_string}" |
|
|
|
|
|
answer = result['answer'] |
|
response = f"{answer}\n\n{titles_formatted}" |
|
|
|
return response |
|
|
|
|
|
|
|
def generate_with_filters(message, subject_input, rubric, date_beg, date_end): |
|
if date_beg == "2010-01-01" and date_end == "2025-01-01": |
|
ret = db3.as_retriever( search_kwargs={"k": 10, |
|
"filter": {'$and': [{'subject': { |
|
'$in': subject_input}}, { |
|
'rubric': { |
|
'$in': rubric}}]}}) |
|
rag_chain_with_filters = RunnableParallel( |
|
{"context": ret, |
|
"question": RunnablePassthrough()} |
|
).assign(answer=rag_chain_from_docs) |
|
else: |
|
rag_chain_with_filters = RunnableParallel( |
|
{"context": db3.as_retriever( search_kwargs={"k": 10, |
|
"filter": {'$and': [{'subject': { |
|
'$in': subject_input}}, { |
|
'rubric': { |
|
'$in': rubric}},{"act_date": {"$gte": date_beg}}, {"act_date": {"$lte": date_end}}] }}), "question": RunnablePassthrough()} |
|
).assign(answer=rag_chain_from_docs) |
|
context = ret.get_relevant_documents(message) |
|
|
|
result = rag_chain_with_filters.invoke(message) |
|
return result |
|
|
|
def summarize_act(message, act_number): |
|
template = """" [INST] Ти асистент для надання відповідей з законодавства України. Ти описуєш зміни в законодавстві просто, доступно, як для дитини. На вхід ти отримав один закон, підсумуй його простими словами, викинь формальності та стандартні фрази. Дай відповіь п'ятьма реченнями. Якщо наданий контекст не містить потрібної інформації - пиши "Я не маю релевантної інформації. Спробуйте ще". Ось приклад: |
|
Context: |
|
|
|
ПОРЯДОК |
|
надання комплексної електронної публічної послуги “е-Підприємець” |
|
|
|
1. Цей Порядок визначає процедуру надання комплексної електронної публічної послуги “е-Підприємець” (далі - послуга “е-Підприємець”), що забезпечує спрощення умов для започаткування та/або провадження підприємницької діяльності та складається з таких електронних публічних послуг: |
|
|
|
державна реєстрація фізичної особи підприємцем; |
|
|
|
державна реєстрація змін до відомостей про фізичну особу - підприємця, що містяться в Єдиному державному реєстрі юридичних осіб, фізичних осіб - підприємців та громадських формувань; |
|
|
|
подання повідомлення про використання або про відмову від використання єдиного рахунка; |
|
|
|
реєстрація платником єдиного податку; |
|
|
|
реєстрація платником податку на додану вартість; |
|
|
|
реєстрація реєстратора розрахункових операцій та програмного реєстратора розрахункових операцій, а також пошук фіскального чека; |
|
|
|
реєстрація декларації відповідності матеріально-технічної бази суб’єкта господарювання вимогам законодавства з питань пожежної безпеки; |
|
|
|
подання інформації про попит на робочу силу (вакансії); |
|
|
|
державна реєстрація потужностей операторів ринку харчових продуктів; |
|
|
|
видача дозволу на виконання робіт підвищеної небезпеки та початок експлуатації (застосування) машин, механізмів, устаткування підвищеної небезпеки; |
|
|
|
реєстрація декларації відповідності матеріально-технічної бази вимогам законодавства з питань охорони праці; |
|
|
|
відкриття банківського рахунка. |
|
|
|
2. У цьому Порядку терміни вживаються у значенні, наведеному в Законах України “Про адміністративні послуги”, “Про електронні документи та електронний документообіг”, “Про захист інформації в інформаційно-комунікаційних системах”, “Про особливості надання публічних (електронних публічних) послуг”, “Про електронні довірчі послуги”, Положенні про систему електронної взаємодії державних електронних інформаційних ресурсів “Трембіта”, затвердженому постановою Кабінету Міністрів України від 8 вересня 2016 р. № 606 “Деякі питання електронної взаємодії електронних інформаційних ресурсів” (Офіційний вісник України, 2016 р., № 73, ст. 2455; 2021 р., № 52, ст. 3216; 2023 р., № 11, ст. 721). |
|
|
|
3. Послуга “е-Підприємець” надається за бажанням фізичної особи, яка має намір започаткувати та/або провадити підприємницьку діяльність (далі - заявник). |
|
|
|
Надання електронних публічних послуг, які входять до складу послуги “е-Підприємець”, засобами Єдиного державного вебпорталу електронних послуг є альтернативним способом їх отримання та не виключає можливості отримання цих послуг у визначеному законодавством порядку. |
|
|
|
4. Електронні публічні послуги, які входять до складу послуги “е-Підприємець”, можуть надаватися з урахуванням технічних можливостей їх надання засобами Єдиного державного вебпорталу електронних послуг та інформаційно-комунікаційних систем державних органів, органів місцевого самоврядування, підприємств, установ та організацій, що можуть бути задіяні для надання послуги “е-Підприємець”, про що повідомляється власником Єдиного державного вебпорталу електронних послуг. |
|
|
|
5. Надання послуги “е-Підприємець” здійснюється на підставі єдиної заяви, сформованої засобами Єдиного державного вебпорталу електронних послуг, що містить відомості, передбачені законодавством для надання електронних публічних послуг, які входять до складу послуги “е-Підприємець”, і документів та/або відомостей, необхідних для надання відповідних електронних публічних послуг, що містяться в інформаційно-комунікаційних системах, за умови накладення кваліфікованого електронного підпису або удосконаленого електронного підпису, що базується на кваліфікованому сертифікаті електронного підпису заявника. |
|
|
|
Єдиний державний вебпортал електронних послуг забезпечує можливість вибору заявником електронних публічних послуг, які він бажає отримати у складі послуги “е-Підприємець”. |
|
|
|
6. Заявник забезпечує достовірність відомостей, що містяться в заяві. |
|
|
|
7. У разі отримання заявником електронних публічних послуг, які входять до складу послуги “е-Підприємець”, на підставі фактичних обставин, що зазнали істотних змін, адміністративні акти за результатами їх надання можуть бути відкликані відповідно до Закону України “Про адміністративну процедуру”. |
|
|
|
8. У разі коли отриманню електронних публічних послуг, які входять до складу послуги “е-Підприємець”, відповідно до законодавства повинно передувати отримання іншої електронної публічної послуги, такі послуги надаються в порядку черговості їх надання. |
|
|
|
Для кожної наступної електронної публічної послуги Єдиний державний вебпортал електронних послуг використовує подані заявником заяву та відомості з державних електронних інформаційних ресурсів державних органів, які є суб’єктами надання електронних публічних послуг, які входять до складу послуги “е-Підприємець”, а також результати попередніх наданих електронних публічних послуг. У разі коли для надання наступної електронної публічної послуги не вистачає поданих заявником заяви та відомостей, Єдиний державний вебпортал електронних послуг використовує результати попередніх наданих електронних публічних послуг. |
|
|
|
9. Складення та/або подання будь-яких додаткових заяв та документів для отримання електронних публічних послуг, які входять до складу послуги “е-Підприємець”, не допускається, крім послуги, пов’язаної з відкриттям банківського рахунка. |
|
|
|
Оплата адміністративного збору за отримання електронних публічних послуг здійснюється засобами Єдиного державного вебпорталу електронних послуг під час формування заяви. |
|
|
|
Для надання послуги “е-Підприємець” забезпечується електронна інформаційна взаємодія між такими інформаційно-комунікаційними системами та державними електронними інформаційними ресурсами державних органів: |
|
|
|
Єдиним державним вебпорталом електронних послуг; |
|
|
|
Єдиним державним реєстром юридичних осіб, фізичних осіб - підприємців та громадських формувань; |
|
|
|
Реєстром рахунків для сплати єдиного внеску; |
|
|
|
електронним кабінетом платника податків, держателем якого є ДПС; |
|
|
|
Єдиним банком даних про платників податків - юридичних осіб; |
|
|
|
Державним реєстром фізичних осіб - платників податків; |
|
|
|
Реєстром платників податку на додану вартість; |
|
|
|
Державним реєстром реєстраторів розрахункових операцій; |
|
|
|
Реєстром дозволів на виконання робіт підвищеної небезпеки; |
|
|
|
Державним електронним реєстром об’єктів підвищеної небезпеки; |
|
|
|
Реєстром декларацій відповідності матеріально-технічної бази суб’єкта господарювання вимогам законодавства з питань охорони праці; |
|
|
|
Єдиною інформаційно-аналітичною системою державної служби зайнятості; |
|
|
|
Реєстром програмних реєстраторів розрахункових операцій; |
|
|
|
Державним реєстром потужностей операторів ринку. |
|
|
|
10. Електронна інформаційна взаємодія між державними електронними інформаційними ресурсами державних органів здійснюється засобами системи електронної взаємодії державних електронних інформаційних ресурсів “Трембіта”. |
|
|
|
У разі відсутності технічної можливості передачі даних засобами системи електронної взаємодії державних електронних інформаційних ресурсів “Трембіта” електронна інформаційна взаємодія може здійснюватися з використанням інших інформаційно-комунікаційних систем із застосуванням у них відповідних комплексних систем захисту інформації з підтвердженою відповідністю за результатами державної експертизи в порядку, встановленому законодавством. |
|
|
|
Обсяг та структура даних, якими обмінюються суб’єкти електронної інформаційної взаємодії, визначаються договорами про інформаційну взаємодію, укладеними відповідно до Порядку електронної (технічної та інформаційної) взаємодії, затвердженого постановою Кабінету Міністрів України від 8 вересня 2016 р. № 606. |
|
|
|
Електронна інформаційна взаємодія здійснюється з дотриманням вимог Законів України “Про публічні електронні реєстри”, “Про електронні довірчі послуги”, “Про захист персональних даних”, “Про захист інформації в інформаційно-комунікаційних системах”, інших нормативно-правових актів у сфері захисту інформації. |
|
|
|
11. Інформування заявника про результати надання електронних публічних послуг, які входять до складу послуги “е-Підприємець”, здійснюється відповідним державним органом, який надав таку електронну публічну послугу, зокрема засобами Єдиного державного вебпорталу електронних послуг. |
|
|
|
12. Електронна публічна послуга з відкриття банківського рахунка, яка входить до складу послуги “е-Підприємець”, надається банками, що мають укладений з Мінцифри та технічним адміністратором Єдиного державного вебпорталу електронних послуг договір про інформаційну взаємодію з використанням Єдиного вебпорталу. Відкриття банківського рахунка здійснюється банком у порядку, визначеному нормативно-правовими актами Національного банку. |
|
|
|
Договір про інформаційну взаємодію з банком укладається за умови проходження ним успішного тестування на відповідність технічним вимогам щодо підключення банків та порядку надання банківської послуги, визначених технічним адміністратором Єдиного державного вебпорталу електронних послуг. |
|
|
|
Тестування проводиться у порядку, визначеному технічним адміністратором Єдиного державного вебпорталу електронних послуг. |
|
|
|
13. Обробка персональних даних заявників здійснюється відповідно до законодавства про захист персональних даних. |
|
|
|
QUESTION:"підсумуй контент" |
|
|
|
ANSWER:У листопаді Кабмін затвердив постанову про перехід комплексної онлайн послуги е-Підприємець на постійні «рейки». Затверджений порядок її надання передбачає, що послуга включатиме в себе держреєстрацію ФОПів, реєстрацію змін в ЄДР (Єдиному державному реєстрі юридичних осіб, фізичних осіб – підприємців та громадських формувань), реєстрацію платником єдиного податку та податку на додану вартість, відкриття рахунку та інші можливості. |
|
|
|
Весь пакет послуг можна буде отримати за однією заявкою через портал «Дія». Для зменшення «паперового» навантаження для заявника, у постанові передбачений обмін інформацією між 14 державними реєстрами та системами, серед яких ЄДР, Державний реєстр фізичних осіб – платників податків, Єдиний банк даних про платників податків – юридичних осіб, Єдина інформаційно-аналітична система державної служби зайнятості та інші. |
|
Context:КАБІНЕТ МІНІСТРІВ УКРАЇНИ |
|
ПОСТАНОВА |
|
|
|
від 5 січня 2024 р. № 7 |
|
Київ |
|
|
|
Про внесення змін до Порядку формування фондів житла, призначеного для тимчасового проживання, обліку та надання такого житла для тимчасового проживання внутрішньо переміщених осіб |
|
|
|
Кабінет Міністрів України постановляє: |
|
|
|
Внести до Порядку формування фондів житла, призначеного для тимчасового проживання, обліку та надання такого житла для тимчасового проживання внутрішньо переміщених осіб, затвердженого постановою Кабінету Міністрів України від 29 квітня 2022 р. № 495 “Деякі заходи з формування фондів житла, призначеного для тимчасового проживання внутрішньо переміщених осіб” (Офіційний вісник України, 2022 р., № 39, ст. 2083; 2023 р., № 48, ст. 2649), зміни, що додаються. |
|
|
|
|
|
ЗМІНИ, |
|
що вносяться до Порядку формування фондів житла, призначеного для тимчасового проживання, обліку та надання такого житла для тимчасового проживання внутрішньо переміщених осіб |
|
|
|
1. Пункт 3 викласти в такій редакції: |
|
|
|
“3. Уповноважений орган веде облік житлових приміщень фонду за формою, встановленою наказом Держжитлокомунгоспу від 14 травня 2004 р. № 98 “Про затвердження форм щодо житлових приміщень з фондів житла для тимчасового проживання.”. |
|
|
|
2. Пункт 7 після абзацу першого доповнити новим абзацом такого змісту: |
|
|
|
“Житлове приміщення з фонду не надається, якщо внутрішньо переміщена особа або будь-хто із членів її сім’ї має у власності житлове приміщення/частину житлового приміщення, придатне для проживання, розміром не менше ніж 13,65 кв. метра на одну особу, що розташоване на територіях, не включених до переліку територій, на яких ведуться (велися) бойові дії або тимчасово окупованих Російською Федерацією, затвердженого Мінреінтеграції, або на територіях, включених до зазначеного переліку, для яких визначено дату завершення бойових дій (припинення можливості бойових дій) або тимчасової окупації.”. |
|
|
|
У зв’язку з цим абзаци другий - четвертий вважати відповідно абзацами третім - п’ятим. |
|
|
|
3. Пункт 18 після абзацу третього доповнити новим абзацом такого змісту: |
|
|
|
“Не може бути підставою для відмови у взятті внутрішньо переміщених осіб на облік громадян, що потребують житла для тимчасового проживання, відсутність на момент їх звернення фонду.”. |
|
|
|
У зв’язку з цим абзаци четвертий - дев’ятий вважати відповідно абзацами п’ятим - десятим. |
|
|
|
4. Пункт 19 після абзацу першого доповнити новим абзацом такого змісту: |
|
|
|
“У разі фінансування органами місцевого самоврядування (військовими адміністраціями населених пунктів - у разі їх утворення), місцевими держадміністраціями (відповідними військовими адміністраціями - у разі їх утворення) формування фонду житла, призначеного для тимчасового проживання внутрішньо переміщених осіб за межами території, в межах якої вони здійснюють повноваження, або залучення ними з цією метою коштів відповідний уповноважений орган приймає рішення про надання внутрішньо переміщеним особам житла з фонду, сформованого за рахунок таких коштів, відповідно до угод (договорів, меморандумів тощо), укладених між такими органами.”. |
|
|
|
У зв’язку з цим абзац другий вважати абзацом третім. |
|
|
|
5. У пункті 20: |
|
|
|
1) у підпункті 1: |
|
|
|
абзац перший викласти в такій редакції: |
|
|
|
“1) пріоритетні критерії (нараховуються на сім’ю/внутрішньо переміщену особу за найвищим показником):”; |
|
|
|
доповнити підпункт після абзацу першого новими абзацами такого змісту: |
|
|
|
“сім’ї військовослужбовців з числа внутрішньо переміщених осіб, які беруть/брали участь у бойових діях або забезпечують/забезпечували здійснення заходів з національної безпеки і оборони, відсічі і стримування збройної агресії, перебуваючи безпосередньо в районах ведення бойових дій у період здійснення зазначених заходів, - 50 балів; |
|
|
|
внутрішньо переміщені особи, які зазнали повторного внутрішнього переміщення через повномасштабну збройну агресію Російської Федерації, - 27 балів; |
|
|
|
внутрішньо переміщені особи з числа мешканців відповідної територіальної громади, яка здійснює забезпечення житловими приміщеннями з фонду, житло яких було зруйноване або стало непридатним для проживання внаслідок збройної агресії Російської Федерації, - 27 балів;”. |
|
|
|
У зв’язку з цим абзаци другий - сьомий вважати відповідно абзацами п’ятим - десятим; |
|
|
|
абзаци восьмий - десятий викласти в такій редакції: |
|
|
|
“сім’ї, у складі яких є вагітні жінки/одинокі вагітні жінки, - 24 бали; |
|
|
|
сім’ї, у складі яких є особи, які втратили працездатність/одинокі особи, які втратили працездатність, - 23 бали; |
|
|
|
сім’ї, у складі яких є особи пенсійного віку/одинокі особи пенсійного віку, - 22 бали;”; |
|
|
|
2) абзац тринадцятий підпункту 2 викласти в такій редакції: |
|
|
|
“сім’ї, у яких середньомісячний сукупний дохід за попередні шість місяців, розрахований уповноваженим органом відповідно до Порядку обчислення середньомісячного сукупного доходу сім’ї (домогосподарства) для усіх видів державної соціальної допомоги, затвердженого постановою Кабінету Міністрів України від 22 липня 2020 р. № 632 “Деякі питання виплати державної соціальної допомоги” (Офіційний вісник України, 2020 р., № 61, ст. 1981), менший від прожиткового мінімуму на сім’ю в розрахунку на місяць та величини регіонального показника опосередкованої вартості наймання житла, - 3 бали на сім’ю;”. |
|
|
|
6. Абзац перший додатка 1 до Порядку викласти в такій редакції: |
|
|
|
“Соціально незахищені верстви населення із числа внутрішньо переміщених осіб, які перемістилися з територій, включених до переліку територій, на яких ведуться (велися) бойові дії або тимчасово окупованих Російською Федерацією, затвердженого Мінреінтеграції, для яких не визначено дату завершення бойових дій (припинення можливості бойових дій) або тимчасової окупації, житло яких, що було для них єдиним місцем проживання, зруйноване або непридатне для проживання внаслідок пошкодження у зв’язку з воєнними (бойовими) діями:”. |
|
|
|
7. Додаток 2 до Порядку викласти в такій редакції: |
|
QUESTION:"підсумуй контент" |
|
|
|
ANSWER: На початку року Кабінет Міністрів ухвалив постанову, яка розширює перелік пріоритетних для надання житла категорій ВПО. Цією постановою уряд заборонив місцевій владі не брати ВПО на облік громадян, що потребують тимчасового житла, з причини відсутності вільного житлового фонду. Новий підхід дозволить порахувати, скільки ВПО потребують тимчасового соціального житла від держави, та спробувати задовольнити цю потребу. |
|
|
|
Context: "" |
|
QUESTION: "підсумуй контекст" |
|
Answer: "Я не маю релевантної інформації. Спробуйте ще" |
|
|
|
Ти асистент для надання відповідей з законодавства України. Ти описуєш зміни в законодавстві просто, доступно для підлітка. Якщо Context не містить потрібної інформації (пустий) - пиши "Я не маю релевантної інформації. Спробуйте ще". На вхід ти отримав один закон, підсумуй його простими словами, викинь формальності та стандартні фрази. |
|
|
|
Context: {context} |
|
QUESTION: |
|
{question} |
|
Answer: |
|
[/INST] |
|
""" |
|
prompt = PromptTemplate( |
|
input_variables=["context", "question"], |
|
template=template, |
|
) |
|
|
|
rag_chain_from_docs = ( |
|
RunnablePassthrough.assign(context=(lambda x: format_docs(x["context"]))) |
|
| prompt |
|
| mistral_llm |
|
| StrOutputParser() |
|
) |
|
ret2 =db3.as_retriever( search_kwargs={"k": 15, "filter": {'act_number': { |
|
'$eq': act_number}}}) |
|
rag_chain_summarize = RunnableParallel( |
|
{"context": ret2 , "question": RunnablePassthrough()} |
|
).assign(answer=rag_chain_from_docs) |
|
|
|
return rag_chain_summarize.invoke("підсумуй контекст") |
|
|
|
|
|
def generate_answer(message, history, checkbox, subject_input, rubric, date_beg, date_end, act_number): |
|
result = "" |
|
if checkbox: |
|
if act_number == "": |
|
return "Будь ласка, введіть номер акту для отримання основної інформації з нього, або зніміть відповідний прапорець." |
|
result = summarize_act(message, act_number) |
|
else: |
|
if subject_input is None and rubric is None and date_beg == "2010-01-01" and date_end == "2025-01-01": |
|
result = rag_chain_with_source.invoke(message) |
|
else: |
|
if subject_input is None or subject_input == []: |
|
subject_input = ["Президент України", "Кабінет міністрів України", "Народний депутат України"] |
|
if rubric is None or rubric == []: |
|
rubric = ['Двосторонні міжнародні угоди', 'Багатосторонні міжнародні угоди', |
|
'Галузевий розвиток', 'Економічна політика', |
|
'Державне будівництво', 'Соціальна політика', 'Правова політика', |
|
'Безпека і оборона', 'Гуманітарна політика'] |
|
result = generate_with_filters(message, subject_input, rubric, date_beg, date_end) |
|
|
|
|
|
result['answer'] =result['answer'].split("[/INST]")[-1].strip() |
|
formatted_results = format_result(result) |
|
return formatted_results |
|
|
|
|
|
def change_group(check_value): |
|
if check_value : |
|
return [gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False), gr.update(visible=True)] |
|
else: |
|
return [gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), gr.update(visible=True), |
|
gr.update(visible=False)] |
|
|
|
|
|
with gr.Blocks(theme=gr.themes.Soft()) as demo : |
|
|
|
with gr.Group() as group_components : |
|
date_beg =Calendar(type="string", label="Почакова дата пошуку", info="Натисніть на значок календаря для вибору дати", render = False, value="2010-01-01") |
|
date_end = Calendar(type="string", label="Кінцева дата пошуку", info="Натисніть на значок календаря для вибору дати", render = False, value="2025-01-01") |
|
|
|
subject_input = gr.Dropdown( |
|
["Президент України", "Кабінет міністрів України", "Народний депутат України"], multiselect=True, label="Ініціатор", info="Виберіть ініціатора законопроєкту", render=False) |
|
rubric = gr.Dropdown(['Двосторонні міжнародні угоди', 'Багатосторонні міжнародні угоди', |
|
'Галузевий розвиток', 'Економічна політика', |
|
'Державне будівництво', 'Соціальна політика', 'Правова політика', |
|
'Безпека і оборона', 'Гуманітарна політика'], multiselect=True, label='Тематика', info="Оберіть, яких галузей стосується законопроєкт", render=False) |
|
|
|
|
|
act_number = gr.Textbox(label='Номер законодавчого акту', placeholder="Наприклад: 861-20 ",visible= False, render=False) |
|
|
|
|
|
action_checkbox = gr.Checkbox(label="Хочу отримати підсумок одного документу", value=False, render=False) |
|
action_checkbox.input(fn=change_group, inputs= [action_checkbox], outputs = [subject_input, date_beg, date_end, rubric, act_number]) |
|
gr.ChatInterface( |
|
|
|
generate_answer, |
|
chatbot=gr.Chatbot(height=400, render = False), |
|
textbox = gr.Textbox(placeholder="Ввести питання", container=False, scale=7, render = False), |
|
title="Законодавчий Помічник", |
|
description="Спитай мене про будь-які регуляції в чинних законах України, прийнятих VIII та IX скликанням ВРУ.", |
|
|
|
|
|
cache_examples=False, |
|
retry_btn=None, |
|
undo_btn=None, |
|
clear_btn=None, |
|
submit_btn="Спитати", |
|
stop_btn=None, |
|
additional_inputs=[ |
|
action_checkbox, |
|
subject_input, |
|
rubric, |
|
date_beg, |
|
date_end, |
|
act_number ], |
|
additional_inputs_accordion=gr.Accordion(open=False, label="Додаткові фільтри", render = False) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
demo.launch(share = True, debug = True) |
|
|
|
|
|
|