diff --git a/bale_qabot.py b/bale_qabot.py index cd9b2b7..e2ec54c 100644 --- a/bale_qabot.py +++ b/bale_qabot.py @@ -131,7 +131,7 @@ class BaleBot: async def bale_main(): - print(f'bale-qabot is Readey!!!!') + print(f'bale-qabot is Readey!!!') while True: last_req_id = bale_bot.get_latest_req_id() update = bale_bot.get_updates(last_req_id) diff --git a/chatbot.py b/chatbot.py index 6df3660..9a18d8c 100755 --- a/chatbot.py +++ b/chatbot.py @@ -53,11 +53,20 @@ async def ping(): return "ai rag caht qanon OK" +@chatbot.post("/emergency_call") +async def emergency_call(query: Query): + print('emergency generate answer ...') + chat_id = await chat.create_chat_id() + answer = await chat.ask_chatbot_avalai(query.query, chat_id) + await chat.credit_refresh() + + return {"answer": answer} + @chatbot.post("/run_chat") async def run_chat(query: Query): - print('generate answer ...') + print('regular generate answer ...') chat_id = await chat.create_chat_id() - answer = await chat.run_chatbot(query.query, chat_id) + answer = await chat.ask_chatbot(query.query, chat_id) await chat.credit_refresh() return {"answer": answer} diff --git a/chatbot_handler.py b/chatbot_handler.py index 711c79f..dc9eb66 100755 --- a/chatbot_handler.py +++ b/chatbot_handler.py @@ -45,16 +45,16 @@ FAISS_METADATA_PATH = "/src/app/qavanin-faiss/faiss_index_qavanin_285k_metadata. RERANK_BATCH = int(os.environ.get("RERANK_BATCH", 256)) # print(f'RERANK_BATCH: {RERANK_BATCH}') -determine_refrence = """شناسه هر ماده قانون در ابتدای آن و با فرمت "id: {idvalue}" آمده است که id-value همان شناسه ماده است. بازای هربخش از پاسخی که تولید می شود، ضروری است شناسه ماده ای که در تدوین پاسخ از آن استفاده شده در انتهای پاراگراف یا جمله مربوطه با فرمت {idvalue} اضافه شود. همیشه idvalue با رشته "qs" شروع می شود""" +determine_refrence = '''شناسه هر ماده قانونی در ابتدای آن و با فرمت "id: {idvalue}" آمده است که id-value همان شناسه ماده است. بازای هربخش از پاسخی که تولید می شود، ضروری است شناسه ماده ای که در ایجاد پاسخ از آن استفاده شده، در انتهای پاراگراف یا جمله مربوطه با فرمت {idvalue} اضافه شود. همیشه idvalue با رشته "qs" شروع می شود''' messages = [ - { - "role": "system", - "content": "تو یک دستیار خبره در زمینه حقوق و قوانین مرتبط به آن هستی و می توانی متون حقوقی را به صورت دقیق توضیح بدهی . پاسخ ها باید الزاما به زبان فارسی باشد. پاسخ ها فقط از متون قانونی که در پرامپت وجود دارد استخراج شود.", - }, + # { + # "role": "system", + # "content": "تو یک دستیار خبره در زمینه حقوق و قوانین مرتبط به آن هستی و می توانی متون حقوقی را به صورت دقیق توضیح بدهی . پاسخ ها باید الزاما به زبان فارسی باشد. پاسخ ها فقط از متون قانونی که در پرامپت وجود دارد استخراج شود. پاسخ تولید شده باید کاملا ساده و بدون هیچ مارک داون یا علائم افزوده ای باشد. لحن متن باید رسمی باشد.", + # }, {"role": "developer", "content": determine_refrence}, ] -models = ["gpt-4o-mini", "gemini-2.5-flash-lite", "deepseek-chat"] +models = ["gpt-4o-mini" ,"gemini-2.5-flash-lite", "deepseek-chat"] normalizer_obj = PersianVectorAnalyzer() pipe = None content_list, ids, prefix_list, faiss_index = [], [], [], [] @@ -174,7 +174,7 @@ async def oss_base_request(sys_prompt, user_prompt): # برای مدیریت خطاها، میتوانید فایلنویسی را به صورت async انجام دهید (در صورت نیاز) async with aiofiles.open('./llm-answer/error-in-llm.txt', mode='a+', encoding='utf-8') as file: error_message = f'\n\nquery: {user_prompt.strip()}\nerror:{error} \n------------------------------\n' - await file.write(error_message) # فایلنویسی async + await file.write(error_message) # فایلنویسی async return '', 0 @@ -187,8 +187,8 @@ async def oss_request(query): try: messages.append({"role": "user", "content": query}) - print(f'final prompt request attmpt') - response = await oss.process_item(messages= messages) # reasoning_effort='high' + print(f'final prompt request attempt') + response = await oss.process_item(messages= messages, reasoning_effort='low') # reasoning_effort='high' print(response) if response[0]: answer = response[1] @@ -196,7 +196,7 @@ async def oss_request(query): answer = 'متاسفانه پاسخی دریافت نشد' cost_prompt = 0 # پاسخ را هم به سابقه اضافه میکنیم - messages.append({"role": "assistant", "content": answer}) + # messages.append({"role": "assistant", "content": answer}) response_dict = {} response_dict['output'] = str(response) @@ -230,7 +230,7 @@ async def llm_request(query, model): response = client.chat.completions.create( messages = messages, model = model, - temperature = 0.1) # "gpt-4o", "gpt-4o-mini", "deepseek-chat" , "gemini-2.0-flash", gemini-2.5-flash-lite + temperature = 0.3) # "gpt-4o", "gpt-4o-mini", "deepseek-chat" , "gemini-2.0-flash", gemini-2.5-flash-lite # gpt-4o : 500 # gpt-4o-mini : 34 # deepseek-chat: : 150 @@ -239,11 +239,17 @@ async def llm_request(query, model): # gemini-2.5-flash-lite : 35 خیلی خوب answer = response.choices[0].message.content + print('$'*50) + print(f'answer: {answer}') + print('$'*50) cost_prompt = response.estimated_cost['irt'] + print('$'*50) + print(f'answer: {cost_prompt}') + print('$'*50) # پاسخ را هم به سابقه اضافه میکنیم - messages.append({"role": "assistant", "content": answer}) - print(f'type(response): {type(response)}') - print(f'response: {response}') + # messages.append({"role": "assistant", "content": answer}) + # print(f'type(response): {type(response)}') + # print(f'response: {response}') response_dict = {} response_dict['output'] = str(response) async with aiofiles. open('./llm-answer/messages.json', mode='w', encoding='utf-8') as output: @@ -461,23 +467,27 @@ class HybridRetrieverReranker: def search(self, query: str, content_list, topk_dense=50, topk_sparse=50, pre_rerank_k=50, final_k=10): start_time = datetime.datetime.now() + + # form embedder model d_idx, d_scores = self.dense_retrieve(query, topk_dense) dense_retrieve_end = datetime.datetime.now() - print('@'*50) - print(f'dense_retrieve_duration: {(dense_retrieve_end - start_time).total_seconds()}') + # print('@'*50) + # print(f'dense_retrieve_duration: {(dense_retrieve_end - start_time).total_seconds()}') + + # from tfidf_matrix s_idx, s_scores = self.sparse_retrieve(query, topk_sparse) sparse_retrieve_end = datetime.datetime.now() - print(f'sparse_retrieve_duration: {(sparse_retrieve_end - dense_retrieve_end).total_seconds()}') + # print(f'sparse_retrieve_duration: {(sparse_retrieve_end - dense_retrieve_end).total_seconds()}') cand_idx = self.fuse(d_idx, d_scores, s_idx, s_scores, pre_rerank_k) fuse_end = datetime.datetime.now() - print(f'fuse_duration: {(fuse_end - sparse_retrieve_end).total_seconds()}') + # print(f'fuse_duration: {(fuse_end - sparse_retrieve_end).total_seconds()}') passages = self.get_passages(cand_idx, content_list) get_passages_end = datetime.datetime.now() - print(f'get_passages_duration: {(get_passages_end - fuse_end).total_seconds()}') + # print(f'get_passages_duration: {(get_passages_end - fuse_end).total_seconds()}') reranked = self.rerank(query, cand_idx, passages, final_k) # rerank2 rerank_end = datetime.datetime.now() - print(f'rerank_duration: {(rerank_end - get_passages_end).total_seconds()}') - print('@'*50) + # print(f'rerank_duration: {(rerank_end - get_passages_end).total_seconds()}') + # print('@'*50) return [{"idx": i, "content": self.content_list[i],"prefix": self.prefix_list[i], "rerank_score": score} for i, score in reranked] @@ -486,7 +496,7 @@ async def single_query(query: str): # query = cleaning(query) retrived_sections_ids = [] - retrived_sections = pipe.search(query, content_list, topk_dense=30, topk_sparse=30, pre_rerank_k=30, final_k=10) + retrived_sections = pipe.search(query, content_list, topk_dense=100, topk_sparse=100, pre_rerank_k=100, final_k=15) final_similars = '' for i, row in enumerate(retrived_sections, 1): id_value = '{' + str(ids[row['idx']]) + '}' @@ -507,9 +517,11 @@ async def find_refrences(llm_answer: str) -> List[str]: refrence_ids(List[str]): لیستی از شناسه های تشخیص داده شده """ pattern = r"\{[^\}]+\}" + # pattern = r"(?:\{([^\}]+)\}|【([^】]+)】)" refrence_ids = re.findall(pattern, llm_answer) new_refrences_ids = [] for itm in refrence_ids: + # print(itm) refrence = itm.lstrip('{') refrence = refrence.lstrip('}') new_refrences_ids.append(refrence) @@ -533,7 +545,7 @@ async def replace_refrences(llm_answer: str, refrences_list:List[str]) -> List[s # refrences = '' for index, ref in enumerate(refrences_list,1): new_ref = '{' + str(ref) + '}' - llm_answer = llm_answer.replace(new_ref, f'[{str(index)}]') + llm_answer = llm_answer.replace(new_ref, f'[«{str(index)}»](https://majles.tavasi.ir/entity/detail/view/qsection/{ref}) ') # id = ref.lstrip('{') # id = id.rstrip('}') # refrences += ''.join(f'[{index}] https://majles.tavasi.ir/entity/detail/view/qsection/{id}\n') @@ -570,7 +582,8 @@ async def get_title_system_prompt(): title_system_prompt = f'تو یک دستیار حقوقی هستی و می توانی متون و سوالات حقوقی را به زبان ساده و دقیق توضیح بدهی.' return title_system_prompt -async def run_chatbot(query:str, chat_id:str): + +async def ask_chatbot_avalai(query:str, chat_id:str): prompt_status = True llm_model = '' llm_answer = '' @@ -580,6 +593,154 @@ async def run_chatbot(query:str, chat_id:str): if query == '': prompt_status = False + # در صورتی که وضعیت پرامپت معتبر باشد، وارد فرایند شو + if prompt_status: + + before_title_time = datetime.datetime.now() + title_system_prompt = await get_title_system_prompt() + title_user_prompt = await get_title_user_prompt(query) + title, cost_title = await llm_base_request(title_system_prompt, title_user_prompt) + # title, cost_title = await oss_base_request(title_system_prompt, title_user_prompt) + if not title: + title = query + + title_prompt_duration = (datetime.datetime.now() - before_title_time).total_seconds() + + if title == '': + title = query.split()[0:10] + + start_time = (datetime.datetime.now()) + result_passages_text, result_passages_ids = await single_query(query) + end_retrive = datetime.datetime.now() + print('-'*40) + print(f'title_prompt_duration: {title_prompt_duration}') + retrive_duration = (end_retrive - start_time).total_seconds() + print(f'retrive duration: {str(retrive_duration)}') + + prompt = f'''برای پرسش "{query}" از میان متون قانونی زیر، پاسخ مناسب و دقیق را استخراج کن. + متون قانونی: + "{result_passages_text}" + ''' + + + try: + for model in models: + before_prompt_credit = await credit_refresh() + llm_model = model + print(f'using model: {model}') + try: + llm_answer, cost_prompt = await llm_request(prompt, model) + # llm_answer, cost_prompt = await oss_request(prompt) + except: + print(f'error in ask-chatbot-avalai model:{model}') + continue + break + except Exception as error: + after_prompt_credit = await credit_refresh() + prompt_cost = int(before_prompt_credit) - int(after_prompt_credit) + error = f'model: {model} \n{error}\n\n' + print('+++++++++++++++++') + print(f'llm-error.txt writing error: {error}') + print('+++++++++++++++++') + async with aiofiles.open('./llm-answer/llm-error.txt', mode='a+', encoding='utf-8') as file: + await file.write(error) + prompt_status = False + status_text = 'با عرض پوزش، سرویس موقتا در دسترس نیست. لطفا دقایقی دیگر دوباره تلاش نمائید!' + + # حالتی که وضعیت پرامپت، نامعتبر باشد، یک شی با مقادیر زیر برگردانده می شود + else: + chat_obj = { + 'id' : chat_id, # str + 'title' : '', # str + 'user_id' : '', + 'user_query' : query, # str + 'model_key' : llm_model, # str + 'retrived_passage' : '', # str + 'retrived_ref_ids' : '', # list[obj] + 'prompt_type' : 'question-answer', # str + 'retrived_duration' : '', # str + 'llm_duration' : '0', # str + 'full_duration' : '0', # str + 'cost_prompt' : str(cost_prompt), # str + 'cost_title' : str(cost_title), # str + 'cost_total' : str(cost_prompt + cost_title), # str + 'time_create' : str(start_time), # str + 'used_ref_ids' : [], # list[str] + 'prompt_answer' : '', # str + 'status_text' : status_text, + 'status' : prompt_status, # or False # bool + } + + # بازگرداندن آبجکت ایجاد شده + return chat_obj, status_text + + llm_answer_duration = (datetime.datetime.now() - end_retrive).total_seconds() + print(f'llm answer duration: {str(llm_answer_duration)}') + + used_refrences_in_answer = await find_refrences(llm_answer) + llm_answer = await replace_refrences(llm_answer, used_refrences_in_answer) + + full_prompt_duration = (datetime.datetime.now() - start_time).total_seconds() + print(f'full prompt duration: {full_prompt_duration}') + print('~'*40) + + status_text ='پاسخ با موفقیت ایجاد شد' + + print(f'cost_prompt: {cost_prompt}') + print(f'cost_title: {cost_title}') + chat_obj = { + 'id' : chat_id, # str + 'title' : title, # str + 'user_id' : '', # + 'user_query' : query, # str + 'model_key' : llm_model, # str + 'retrived_passage' : result_passages_text, # str + 'retrived_ref_ids' : result_passages_ids, # list[obj] + 'prompt_type' : 'question-answer', # str + 'retrived_duration' : retrive_duration, # str + 'llm_duration' : llm_answer_duration, # str + 'full_duration' : full_prompt_duration, # str + 'cost_prompt' : str(cost_prompt), # str + 'cost_title' : str(cost_title), # str + 'cost_total' : str(cost_prompt + cost_title), # str + 'time_create' : str(start_time), # str + 'used_ref_ids' : used_refrences_in_answer, # list[str] + 'prompt_answer' : llm_answer, # str + 'status_text' : status_text, # str + 'status' : True, # or False # bool + } + prev_chat_data = [] + try: + async with aiofiles.open('./llm-answer/chat-messages1.json', mode='r', encoding='utf-8') as file: + content = await file.read() + prev_chat_data = json.loads(content) + prev_chat_data.append(chat_obj) + except: + pass + prev_chat_data.append(chat_obj) + async with aiofiles. open('./llm-answer/chat-messages1.json', mode='w', encoding='utf-8') as output: + await output.write(json.dumps(prev_chat_data, ensure_ascii=False, indent=2)) + + # save_result(chat_obj) + + # ایجاد آبجکت بازگشتی به فرانت + # chat_obj.pop('retrived_passage') + # chat_obj.pop('prompt_type') + + print('~'*40) + + return chat_obj + +async def ask_chatbot(query:str, chat_id:str): + prompt_status = True + llm_model = 'gpt.oss.120b' + llm_answer = '' + cost_prompt = 0 + cost_title = 0 + status_text = 'لطفا متن سوال را وارد نمائید' + if query == '': + prompt_status = False + # در صورتی که وضعیت پرامپت معتبر باشد، وارد فرایند شو @@ -606,7 +767,10 @@ async def run_chatbot(query:str, chat_id:str): retrive_duration = (end_retrive - start_time).total_seconds() print(f'retrive duration: {str(retrive_duration)}') - prompt = f'''برای پرسش "{query}" از میان مواد قانونی "{result_passages_text}" .پاسخ مناسب و دقیق را استخراج کن. تعداد کلمات پاسخ را حداکثر در 300 کلمه تولید کن. درصورتی که مطلبی مرتبط با پرسش در متن پیدا نشد، فقط پاسخ بده: "متاسفانه در منابع، پاسخی پیدا نشد!"''' + prompt = f''' برای پرسش "{query}" از میان متون قانونی زیر، پاسخ مناسب و دقیق را استخراج کن. + متون قانونی: + "{result_passages_text}" + ''' # for model in models: # before_prompt_credit = credit_refresh() @@ -658,6 +822,8 @@ async def run_chatbot(query:str, chat_id:str): llm_answer_duration = (datetime.datetime.now() - end_retrive).total_seconds() print(f'llm answer duration: {str(llm_answer_duration)}') + llm_answer = llm_answer.replace('【','{') + llm_answer = llm_answer.replace('】','}') used_refrences_in_answer = await find_refrences(llm_answer) llm_answer = await replace_refrences(llm_answer, used_refrences_in_answer) @@ -691,12 +857,12 @@ async def run_chatbot(query:str, chat_id:str): 'status' : True, # or False # bool } prev_chat_data = [] - async with aiofiles.open('./llm-answer/chat-messages.json', mode='r', encoding='utf-8') as file: + async with aiofiles.open('./llm-answer/chat-messages1.json', mode='r', encoding='utf-8') as file: content = await file.read() prev_chat_data = json.loads(content) prev_chat_data.append(chat_obj) - async with aiofiles. open('./llm-answer/chat-messages.json', mode='w', encoding='utf-8') as output: + async with aiofiles. open('./llm-answer/chat-messages1.json', mode='w', encoding='utf-8') as output: await output.write(json.dumps(prev_chat_data, ensure_ascii=False, indent=2)) # save_result(chat_obj) @@ -764,8 +930,8 @@ if __name__ == "__main__": print(f'llm duration: {(datetime.datetime.now() - end_retrive).total_seconds()}') refrences = '' - recognized_refrences = find_refrences(llm_answer) - llm_answer = replace_refrences(llm_answer, recognized_refrences) + recognized_refrences = find_refrences(llm_answer) + llm_answer = replace_refrences(llm_answer, recognized_refrences) with open('./llm-answer/result.txt', mode='a+', encoding='utf-8') as file: result_message = f'متن پرامپت: {query.strip()}\n\nپاسخ: {llm_answer} \n----------------------------------------------------------\n' diff --git a/llm-answer/chat-messages1.json b/llm-answer/chat-messages1.json new file mode 100755 index 0000000..88617bb --- /dev/null +++ b/llm-answer/chat-messages1.json @@ -0,0 +1,45 @@ +[ + { + "id": "2025-11-13-083341-732863-685085", + "title": "اشکال مختلف حضانت کودک", + "user_id": "", + "user_query": "حضانت کودک چه صورت هایی دارد", + "model_key": "gpt-4o-mini", + "retrived_passage": "id: {qs870518} \nمحتوای ماده واحده قانون حق حضانت فرزندان صغیر یا محجور به مادران آنها عبارت است از: ماده واحده - حضانت فرزندان صغیر یا محجوری که پدرانشان به مقام والای شهادت رسیده و یا فوتشده باشند با مادران آنها خواهد بود و هزینه متعارف زندگی این فرزندان چنانچه از اموال خودشان باشد در اختیار ولی شرعی است و اگر از طریق بودجه دولت یا از بنیاد شهید پرداخت میشود در اختیار مادرانشان قرار میگیرد مگر آنکه دادگاه صالح در موارد ادعای عدم صلاحیت مادر حکم به عدم صلاحیت بکند.\nid: {qs927116} \nمحتوای ماده واحده قانون اصلاح ماده (۱۱۶۹) قانون مدنی مصوب ۱۳۱۴ عبارت است از: ماده واحده - ماده (۱۱۶۹) قانون مدنی مصوب ۲۰ / ۱ / ۱۳۱۴ به شرح زیر اصلاح میگردد: ماده ۱۱۶۹ - برای حضانت و نگهداری طفلی که ابوین او جدا از یکدیگر زندگی میکنند، مادر تا سن هفت سالگی اولویت دارد و پس از آن با پدر است. تبصره - بعد از هفت سالگی درصورت حدوث اختلاف، حضانت طفل با رعایت مصلحت کودک به تشخیص دادگاه میباشد.\nid: {qs1631293} \nمحتوای ماده 43 از فصل پنجم قانون حمایت خانواده عبارت است از: ماده ۴۳ حضانت فرزندانی که پدرشان فوتشده با مادر آنها است مگر آنکه دادگاه به تقاضای ولی قهری یا دادستان، اعطای حضانت به مادر را خلاف مصلحت فرزند تشخیص دهد.\nid: {qs1118336} \nمحتوای تبصره از ماده 1169 از باب دوم از کتاب هشتم از جلد دوم قانون مدنی عبارت است از: تبصره - بعد از هفت سالگی درصورت حدوث اختلاف، حضانت طفل با رعایت مصلحت کودک به تشخیص دادگاه میباشد.\nid: {qs1032552} \nمحتوای ماده 1169 از باب دوم از کتاب هشتم از جلد دوم قانون مدنی عبارت است از: ماده ۱۱۶۹ - برای حضانت و نگهداری طفلی که ابوین او جدا از یکدیگر زندگی میکنند، مادر تا سن هفت سالگی اولویت دارد و پس از آن با پدر است.\nid: {qs2734377} \nمحتوای ماده 1173 از باب دوم از کتاب هشتم قانون مدنی مصوبه ۱۹ فروردینماه ۱۳۱۴ عبارت است از: ماده ۱۱۷۳ - هرگاه در اثر عدم مواظبت یا انحطاط اخلاقی پدر یا مادری که طفل تحت حضانت اوست، صحت جسمانی و یا تربیت اخلاقی طفل در معرض خطر باشد، محکمه میتواند بتقاضای اقربای طفل یا بتقاضای قیم او یا بتقاضای مدعیالعموم هر تصمیمی را که برای حضانت طفل مقتضی بداند، اتخاذ کند.\nid: {qs1698019} \nمحتوای تبصره 1 از ماده 8 قانون حمایت از کودکان و نوجوانان بیسرپرست و بدسرپرست عبارت است از: تبصره ۱ چنانچه پدر یا مادر یا جد پدری کودک یا نوجوان و وصی منصوب از سوی ولی قهری مراجعه کنند، دادگاه در صورتی که آنان را واجد صلاحیت لازم ولو با ضم امین یا ناظر تشخیص دهد و مفسده مهمی نیز کودک یا نوجوان را تهدید نکند؛ با اخذ نظر سازمان با رعایت حق حضانت مادر و تقدم آن نسبت به استرداد آنان حکم صادر میکند در غیر این صورت حکم سرپرستی ابقاء میشود.\nid: {qs2734373} \nمحتوای ماده 1169 از باب دوم از کتاب هشتم قانون مدنی مصوبه ۱۹ فروردینماه ۱۳۱۴ عبارت است از: ماده ۱۱۶۹ - برای نگاهداری طفل مادر تا دو سال از ولادت او اولویت خواهد داشت پس از انقضاء این مدت حضانت با پدر است مکر نسبت باطفال اناث که تا سال هفتم حضانت آنها با مادر خواهد بود\nid: {qs791909} \nمحتوای ماده 13 قانون حمایت خانواده عبارت است از: ماده ۱۳ - در هر مورد که دادگاه حسب اعلام یکی از والدین یا اقربای اطفال و یا دادستان شهرستان تشخیص دهد که تجدید نظر راجع به حضانتطفل ضرورت دارد نسبت به تصمیم قبلی خود تجدید نظر خواهد کرد. در این موارد دادگاه میتواند حضانت طفل را به هر کس که مقتضی بداند محولکند ولی در هر حال هزینه حضانت به عهده کسی است که بموجب تصمیم دادگاه مکلف به پرداخت میشود.\nid: {qs2794319} \nمحتوای ماده 129 از باب اول از کتاب دوم مقررات احوال شخصیه مسیحیان پروتستان ایران عبارت است از: ماده ۱۲۹ هرگاه دادگاه تشخیص دهد که در اثر قصور یا تقصیر یا سوء رفتار و اخلاق و یا زوال صلاحیت پدر یا مادر یا شخص یا اشخاصی که حضانت فرزند یا فرزندان به عهده آنها سپرده شده، صحت و سلامت بدنی یا روانی یا بهداشتی یا روحانی فرزندان در معرض خطر قرار گرفته، دادگاه میتواند با نظر کلیسا حضانت فرزند یا فرزندان را به شخص یا اشخاص مسیحی واجد شرایط لازم واگذار نماید. شخص یا اشخاصی که برای حضانت و نگهداری فرزندان، صالح شناختهشده باشند، باید تعهد نمایند که فرزندان تحت حضانت خود را در محیط و خانواده مسیحی نگاه داشته و در تربیت روحانی آنها کوشا باشند.\nid: {qs920415} \nمحتوای ماده 13 قانون حمایت خانواده عبارت است از: ماده ۱۳ - در هر مورد حسب اعلام یکی از والدین یا اقربای طفل یا دادستان یا اشخاص دیگر تشخیص شود که تغییر در وضع حضانت طفل ضرورت دارد (اعم از اینکه قبلا تصمیمی در این مورد اتخاذ شده یا نشده باشد) و یا بطریق اطمینان بخشی ترتیب نگاهداری و حضانت طفل داده نشده باشد دادگاه پس از رسیدگی حضانت طفل بهر کسی که مقتضی بداند محول میکند و هزینه حضانت بعهده کسی است که بموجب تصمیم دادگاه مکلف بپرداخت آن میشود.\nid: {qs1032555} \nمحتوای ماده 1172 از باب دوم از کتاب هشتم از جلد دوم قانون مدنی عبارت است از: ماده ۱۱۷۲ - هیچیک از ابوین حق ندارند در مدتی که حضانت طفل بعهده آنها است از نگاهداری او امتناع کنند، در صورت امتناع یکی از ابوین حاکم باید بتقاضای دیگری یا به تقاضای قیم یا یکی از قرباء و یا بتقاضای مدعیالعموم نگاهداری طفل را بهر یک از ابوین که حضانت بعهده اوست الزام کند و در صورتیکه الزام ممکن یا موثر نباشد حضانت را بخرج پدر و هرگاه پدر فوتشده باشد بخرج مادر تامین کند.\nid: {qs2734376} \nمحتوای ماده 1172 از باب دوم از کتاب هشتم قانون مدنی مصوبه ۱۹ فروردینماه ۱۳۱۴ عبارت است از: ماده ۱۱۷۲ - هیچیک از ابوین حق ندارند در مدتی که حضانت طفل بعهده آنها است از نگاهداری او امتناع کند در صورت امتناع یکی از ابوین حاکم باید بتقاضای دیگری یا به تقاضای قیم یا یکی از قرباء و یا بتقاضای مدعیالعموم نگاهداری طفل را بهر یک از ابوین گه [که] حضانت بعهده اوست الزام گند [کند] و در صورتیگه [صورتیکه] الزام ممکن یا موثر نباشد حضانت را بخرج پدر و هر کاه [هرگاه] پدر فوتشده باشد بخرج مادر تامین کند.\nid: {qs143424} \nمحتوای بند 1 از ماده 22 از متن قانون موافقتنامه معاضدت حقوقی در امور مدنی و جزائی بین دولت جمهوری اسلامی ایران و دولت جمهوری قرقیزستان عبارت است از: ۱ – به فرزندی گرفتن و سرپرستی از کودکان بدون سرپرست تبعه یکی از طرفهای متعاهد توسط تبعه طرف متعاهد دیگر و فسخ آن، تابع قوانین و مقررات طرف متعاهدی است که کودکان مزبور تبعه آن میباشند.\nid: {qs1698006} \nمحتوای تبصره 2 از ماده 5 قانون حمایت از کودکان و نوجوانان بیسرپرست و بدسرپرست عبارت است از: تبصره ۲ چنانچه درخواست کنندگان سرپرستی از بستگان کودک یا نوجوان باشند، دادگاه با اخذ نظر سازمان و با رعایت مصلحت کودک و نوجوان میتواند آنان را از برخی شرایط مقرر در این ماده مستثنی نماید.\n", + "retrived_ref_ids": [ + "qs870518", + "qs927116", + "qs1631293", + "qs1118336", + "qs1032552", + "qs2734377", + "qs1698019", + "qs2734373", + "qs791909", + "qs2794319", + "qs920415", + "qs1032555", + "qs2734376", + "qs143424", + "qs1698006" + ], + "prompt_type": "question-answer", + "retrived_duration": 1.600483, + "llm_duration": 24.409471, + "full_duration": 26.010012, + "cost_prompt": "439.79", + "cost_title": "3.02", + "cost_total": "442.81", + "time_create": "2025-11-13 08:33:43.909672", + "used_ref_ids": [ + "qs927116", + "qs870518", + "qs1631293", + "qs791909", + "qs1173" + ], + "prompt_answer": "حضانت کودک در نظام حقوقی ایران به صورتهای مختلفی تعریف شده است که به شرح زیر میباشد:\n\n1. **حضانت مادر تا سن هفت سالگی**: طبق ماده 1169 قانون مدنی، برای حضانت و نگهداری طفلی که والدین او جدا از یکدیگر زندگی میکنند، مادر تا سن هفت سالگی اولویت دارد و پس از آن با پدر است. در صورت بروز اختلاف بعد از هفت سالگی، حضانت کودک با رعایت مصلحت کودک به تشخیص دادگاه میباشد [«1»](https://majles.tavasi.ir/entity/detail/view/qsection/qs927116) .\n\n2. **حضانت فرزندان صغیر یا محجور**: طبق ماده واحده قانون حق حضانت فرزندان صغیر یا محجور به مادران آنها، حضانت فرزندان صغیر یا محجوری که پدرانشان فوت شدهاند با مادران آنها خواهد بود، مگر آنکه دادگاه صلاحیت مادر را رد کند [«2»](https://majles.tavasi.ir/entity/detail/view/qsection/qs870518) .\n\n3. **حضانت فرزندانی که پدرشان فوت شده**: طبق ماده 43 قانون حمایت خانواده، حضانت فرزندانی که پدرشان فوت شده با مادر آنها است، مگر آنکه دادگاه به تقاضای ولی قهری یا دادستان، اعطای حضانت به مادر را خلاف مصلحت فرزند تشخیص دهد [«3»](https://majles.tavasi.ir/entity/detail/view/qsection/qs1631293) .\n\n4. **تغییر در حضانت**: طبق ماده 13 قانون حمایت خانواده، در هر مورد که دادگاه تشخیص دهد که تجدید نظر در حضانت کودک ضرورت دارد، میتواند حضانت کودک را به هر کس که مقتضی بداند محول کند [«4»](https://majles.tavasi.ir/entity/detail/view/qsection/qs791909) .\n\n5. **عدم مواظبت یا انحطاط اخلاقی**: طبق ماده 1173 قانون مدنی، اگر در اثر عدم مواظبت یا انحطاط اخلاقی پدر یا مادری که طفل تحت حضانت اوست، صحت جسمانی یا تربیت اخلاقی طفل در معرض خطر باشد، دادگاه میتواند حضانت را به شخص یا اشخاص دیگری واگذار کند [«5»](https://majles.tavasi.ir/entity/detail/view/qsection/qs1173) .\n\nاین موارد به وضوح نشاندهندهی تنوع و شرایط مختلف حضانت کودک در نظام حقوقی ایران است.", + "status_text": "پاسخ با موفقیت ایجاد شد", + "status": true + } +] \ No newline at end of file diff --git a/llm-answer/chat-objs.txt b/llm-answer/chat-objs.txt index 6b7a1e9..0c9391c 100755 --- a/llm-answer/chat-objs.txt +++ b/llm-answer/chat-objs.txt @@ -575,4 +575,169 @@ Choice(finish_reason='stop', index=0, logprobs=None, message=ChatCompletionMessa 235.45 ------------------------------- -0000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001239.35 +------------------------------- + +860.89 +------------------------------- + +2803.63 +------------------------------- + +01440.25 +------------------------------- + +411.56 +------------------------------- + +1213.3 +------------------------------- + +063.92 +------------------------------- + +99.39 +------------------------------- + +000000000084.84 +------------------------------- + +37.3 +------------------------------- + +75.81 +------------------------------- + +147.93 +------------------------------- + +144.36 +------------------------------- + +85.03 +------------------------------- + +217.33 +------------------------------- + +00000149.16 +------------------------------- + +0205.91 +------------------------------- + +0140.51 +------------------------------- + +0148.86 +------------------------------- + +0130.56 +------------------------------- + +0000000069.39 +------------------------------- + +0000000132.37 +------------------------------- + +0220.48 +------------------------------- + +0000000000336.06 +------------------------------- + +0414.51 +------------------------------- + +401.78 +------------------------------- + +00393.24 +------------------------------- + +457.39 +------------------------------- + +00879.57 +------------------------------- + +0859.83 +------------------------------- + +01311.88 +------------------------------- + +01576.05 +------------------------------- + +1619.78 +------------------------------- + +1524.98 +------------------------------- + +837.66 +------------------------------- + +1641.84 +------------------------------- + +890.8 +------------------------------- + +883.3 +------------------------------- + +1953.82 +------------------------------- + +1821.97 +------------------------------- + +1876.64 +------------------------------- + +1124.28 +------------------------------- + +1093.42 +------------------------------- + +1922.2 +------------------------------- + +0152.77 +------------------------------- + +57.82 +------------------------------- + +00200.13 +------------------------------- + +0202.76 +------------------------------- + +0405.73 +------------------------------- + +0357.92 +------------------------------- + +54.72 +------------------------------- + +00230.81 +------------------------------- + +147.45 +------------------------------- + +0295.99 +------------------------------- + +0439.79 +------------------------------- + +0 \ No newline at end of file diff --git a/llm-answer/credit.txt b/llm-answer/credit.txt index 648427a..182dc03 100755 --- a/llm-answer/credit.txt +++ b/llm-answer/credit.txt @@ -430,3 +430,296 @@ 42219.82 42219.82 42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +42219.82 +233219.82 +233219.82 +231116.5 +228275.02 +226390.3 +225658.78 +225658.78 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225490.08 +225402.31 +225402.31 +225362.36 +225362.36 +225362.36 +225283.85 +225283.85 +225143.68 +224999.32 +224999.32 +224912.5 +224907.85 +224907.85 +224903.2 +224721.37 +224721.37 +224721.37 +224721.37 +224721.37 +224582.94 +224374.03 +224230.2 +224091.97 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223958.58 +223886.16 +223886.16 +223886.16 +223886.16 +223886.16 +223886.16 +223886.16 +223886.16 +223886.16 +223751.03 +223751.03 +223751.03 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223527.8 +223188.5 +223188.5 +223188.5 +222771.05 +222768.48 +222768.48 +222366.71 +222363.93 +222363.93 +221970.69 +221970.69 +221970.69 +221510.58 +220625.24 +219765.41 +218447.93 +217015.15 +217015.15 +217015.15 +217009.55 +215537.02 +214006.44 +214003.7 +214003.7 +211518.61 +211518.61 +210632.26 +210632.26 +210632.26 +210632.26 +201231.56 +201231.56 +201231.56 +201231.56 +201231.56 +201231.56 +201231.56 +201231.56 +200138.15 +200138.15 +200138.15 +199996.16 +199996.16 +199993.39 +199935.57 +199935.57 +199935.57 +199732.61 +199729.61 +199729.61 +199526.85 +199523.93 +199155.08 +199152.27 +199152.27 +198791.4 +198791.4 +198791.4 +198741.66 +198738.93 +198738.93 +198736.29 +198736.29 +198736.29 +198379.02 +198379.02 +198379.02 +198080.2 +198077.46 diff --git a/llm-answer/error-in-llm.txt b/llm-answer/error-in-llm.txt index 2cec5fc..eb4ac28 100755 --- a/llm-answer/error-in-llm.txt +++ b/llm-answer/error-in-llm.txt @@ -1797,3 +1797,160 @@ id: {qs3030569} " .پاسخ مناسب و دقیق را استخراج کن. درصورتی که مطلبی مرتبط با پرسش در متن پیدا نشد، فقط پاسخ بده: "متاسفانه در منابع، پاسخی پیدا نشد!" error:Error code: 429 - {'error': {'message': 'Rate limit reached for requests. Check your quota and upgrade your account to higher levels at https://ava.al/limits or contact support at support@avalai.ir and include the request ID 019a63ac-fa29-71d1-9120-4dac12ff3e12 in your email if you believe this is an error.', 'type': 'rate_limit_exceeded', 'param': None, 'code': 'rate_limit_exceeded', 'solution': 'Pace your requests or upgrade to higher levels. Read the Rate limit guide at https://ava.al/limits or contact support at support@avalai.ir and include the request ID 019a63ac-fa29-71d1-9120-4dac12ff3e12 in your email if you believe this is an error.', 'request_id': '019a63ac-fa29-71d1-9120-4dac12ff3e12'}} ------------------------------- + + +query: برای پرسش "حق اولاد در سرانه حقوق" از میان متون قانونی زیر، پاسخ مناسب و دقیق را استخراج کن. + متون قانونی: + "id: {qs872698} +محتوای ماده 14 از فصل سوم قانون مقررات استخدامی نهضت سوادآموزی جمهوری اسلامی ایران عبارت است از: ماده ۱۴ - حق عائلهمندی عضو عبارتست از: حق همسر، حق اولاد، حق افراد تحت تکفل و ارقام آنها به ترتیب بقرار زیر است: حق همسر در صورتیکه شاغل نباشد، یکصد. حق اولاد و حق افراد تحت تکفل هر کدام ۲۰ میباشد (تحت تکفل حداکثر دو نفر از اقارب درجه ۱) ضریب حقوق عائلهمندی یکصد ریال تعیینشده و تغییرات بعدی آن بنا به پیشنهاد نهضت بتصویب شورای حقوق و دستمزد خواهد رسید. +id: {qs235426} +محتوای ماده 48 از فصل سوم از بخش دوم قانون مقررات مالی، اداری استخدامی و تشکیلات جهاد سازندگی [قانون مقررات مالی، اداری، استخدامی وزارت جهاد کشاورزی] عبارت است از: ماده ۴۸ - حق عائلهمندی عضو عبارت است از حق همسر، حق اولاد، حق افراد تحت تکفل و ارقام آنها به ترتیب به قرار زیر است: ۱۰۰، حق همسر در صورتی که شاغل نباشد حق اولاد و حق افراد تحت تکفل هر کدام ۲۰ میباشد (تحت تکفل حداکثر ۲ نفر از اقارب درجه ۱) ضریب حقوق عائلهمندی ۱۰۰ ریال تعیینشده و تغییرات بعدی آن بنا به پیشنهاد جهاد به تصویب شورای حقوق و دستمزد خواهد رسید. +id: {qs2766209} +محتوای تبصره 3 از ماده 9 قانون نظام هماهنگ پرداخت کارکنان دولت عبارت است از: تبصره ۳ - کمکهزینه عائلهمندی و اولاد برای بازنشستگان کشوری و لشگری که دارای شصت سال سن و بیشتر باشند و مستخدمین از کارافتاده (بدون شرط سنی) علاوه بر میزان مقرر دریافتی مطابق قانون، ماهانه کمکهزینه عائلهمندی معادل یکصد و بیست درصد (۳۶۰ ٪) حداقل حقوق مبنای جدول ماده (۱) قانون نظام هماهنگ پرداخت کارکنان دولت و حق اولاد به ازای هر فرزند (حداکثر تا سه فرزند) معادل سی و پنج درصد (۱۰۰ ٪) حداقل حقوق مبنای جدول مذکور، پرداخت میگردد. +id: {qs3328912} +محتوای جزء 3 از بند الف از تبصره 15 از ماده واحده قانون بودجه سال ۱۴۰۳ کل کشور (بخش اول) «سقف منابع عمومی دولت و مفروضات منابع و مصارف» عبارت است از: ۳ - امتیاز کمکهزینه عائلهمندی و حق اولاد موضوع بند (۴) ماده (۶۸) قانون مدیریت خدمات کشوری برای شاغلان مشمول ماده (۱۶) قانون حمایت از خانواده و جوانی جمعیت به ترتیب ۲۹۰۰ و ۱۷۸۰ و معادل ریالی امتیاز مذکور برای بازنشستگان و سایر مشمولان ماده مذکور تعیین میگردد. برای فرزند سوم و بیشتر به این ضرایب سی واحد درصد اضافه میشود. +id: {qs2521850} +محتوای ماده 8 قانون تنظیم بخشی از مقررات مالی دولت عبارت است از: ماده ۸ - متن زیر به عنوان تبصره (۳) به ماده (۹) قانون نظام هماهنگ پرداخت کارکنان دولت مصوب ۱۳ / ۶ / ۱۳۷۰ الحاق شود: تبصره ۳ - کمکهزینه عائلهمندی و اولاد برای بازنشستگان کشوری و لشگری که دارای شصت سال سن و بیشتر باشند و مستخدمین از کارافتاده (بدون شرط سنی) علاوه بر میزان مقرر دریافتی مطابق قانون، ماهانه کمکهزینه عائلهمندی معادل یکصد و بیست درصد (۱۲۰ ٪) حداقل حقوق مبنای جدول ماده (۱) قانون نظام هماهنگ پرداخت کارکنان دولت و حق اولاد به ازای هر فرزند (حداکثر تا سه فرزند) معادل سی و پنج درصد (۳۵ ٪) حداقل حقوق مبنای جدول مذکور، پرداخت میگردد. +id: {qs687143} +محتوای بند ب از ماده 32 از فصل نهم آئین نامه استخدامی کارکنان شرکت سهامی تلفن ایران (مصوب کمیسیونهای پست و تلگراف و تلفن و استخدام مجلس شورای ملی) عبارت است از: ب - فوقالعاده اولاد برای هر اولاد در مورد پسر تا ۱۸ و در مورد دختر مادام که شوهر اختیار نکرده و شغل دولتی نداشته باشد بقرار ماهیانه یکصد ریال مشروط بر اینکه تحت تکفل مستخدم باشند. +id: {qs922060} +محتوای بند 86 از ماده واحده قانون بودجه سال ۱۳۹۰ کل کشور عبارت است از: ۸۶ - بهمنظور ساماندهی و پرداخت به موقع کمک عائلهمندی، حق اولاد و عیدی بازنشستگان مشمول صندوق بازنشستگان کشوری اجازه داده میشود اعتبار مربوط به اقلام مذکور با تأیید معاونت برنامهریزی و نظارت راهبردی رییسجمهور از بودجه دستگاههای اجرایی ملی و استانی کسر و به اعتبارات هزینهای صندوق مذکور اضافه شود. +id: {qs2790928} +محتوای ماده 45 از مبحث 7 احوال شخصیه جمعیتهای کاتولیک ایران قوانین اصلی مذهبی و هویت جاریه نسبت به جمعیتهای کاتولیک ایران عبارت است از: ماده ۴۵ – فرزند خوانده و اولاد او نسبت بکسی که او را بفرزندی قبول کرده است همان حق وراثت اولاد قانونی را دارد ولی فرزند خواندگی حق وراثت به پدرخوانده و وراث او نسبت به اموال فرزندخوانده نمیدهد. +id: {qs3186974} +محتوای جزء 3 از بند الف از تبصره 12 از ماده واحده قانون بودجه سال ۱۴۰۲ کل کشور عبارت است از: ۳ - در اجرای ماده (۱۶) قانون حمایت از خانواده و جوانی جمعیت، امتیاز کمکهزینه عائلهمندی و حق اولاد، موضوع بند (۴) ماده (۶۸) قانون مدیریت خدمات کشوری شاغلان و بازنشستگان، به ترتیب ۲۲۸۰ و ۱۰۵۰ و معادل ریالی امتیاز مذکور مشمولان ماده (۱۶) قانون فوقالذکر تعیین میگردد. +id: {qs67a862ff4e15f_226} +محتوای 2 از ب از تبصره 12 از ماده واحده از عنوان قانون بودجه سال ۱۴۰۴ کل کشور (بخش اول) «سقف منابع عمومی دولت و مفروضات منابع و مصارف» عبارت است از: ۲ - کمکهزینه عائلهمندی و حق اولاد موضوع بند (۴) ماده (۶۸) قانون مدیریت خدمات کشوری برای بازنشستگان معادل ریالی امتیاز جزء (۵) بند «الف» این تبصره تعیین میگردد. +id: {qs235475} +محتوای بند ب از ماده 65 از فصل ششم از بخش دوم قانون مقررات مالی، اداری استخدامی و تشکیلات جهاد سازندگی [قانون مقررات مالی، اداری، استخدامی وزارت جهاد کشاورزی] عبارت است از: ب - حق عائلهمندی (حق همسر و اولاد و حق افراد تحت تکفل). +id: {qs67a862ff4e15f_223} +محتوای 5 از الف از تبصره 12 از ماده واحده از عنوان قانون بودجه سال ۱۴۰۴ کل کشور (بخش اول) «سقف منابع عمومی دولت و مفروضات منابع و مصارف» عبارت است از: ۵ - امتیاز کمکهزینه عائلهمندی و حق اولاد موضوع بند (۴) ماده (۶۸) قانون مدیریت خدمات کشوری برای شاغلان مشمول ماده (۱۶) قانون حمایت از خانواده و جوانی جمعیت به ترتیب ۳۶۲۵ و ۲۹۶۷ و معادل ریالی امتیاز مذکور برای سایر مشمولان ماده مذکور تعیین میگردد. +id: {qs235427} +محتوای تبصره از ماده 48 از فصل سوم از بخش دوم قانون مقررات مالی، اداری استخدامی و تشکیلات جهاد سازندگی [قانون مقررات مالی، اداری، استخدامی وزارت جهاد کشاورزی] عبارت است از: تبصره - ارقام مربوط به حق اولاد و حق افراد تحت تکفل تنها در صورت احراز شرایط مندرج در ماده ۶۸ پرداخت خواهد گردید. +id: {qs1698035} +محتوای ماده 21 قانون حمایت از کودکان و نوجوانان بیسرپرست و بدسرپرست عبارت است از: ماد ۲۱ - شخصی که سرپرستی افراد تحت حمایت این قانون را بر عهده میگیرد از مزایای حمایتی حق اولاد و مرخصی دوره مراقبت برای کودکان زیر سه سال (معادل مرخصی دوره زایمان) بهرهمند میباشد. کودک یا نوجوان تحت سرپرستی نیز از مجموعه مزایای بیمه و بیمههای تکمیلی وفق مقررات قانونی برخوردار خواهد شد. +id: {qs736468} +محتوای ماده واحده قانون الغاء مقررات مربوط بپرداخت حق اولاد در نیروهای مسلح شاهنشاهی عبارت است از: ماده واحده - از تاریخ تصویب این قانون مقررات مربوط بپرداخت حق اولاد در مورد فرزندان جدیدالولاده افسران و کارمندان نیروهای مسلح شاهنشاهی ملغی میگردد. +" +error: + + + + +
+ + +The web server reported a bad gateway error.
+Please try again in a few minutes.
+