From 49b1d000c6e1f69522c1d3208f0ca6a704185fd4 Mon Sep 17 00:00:00 2001 From: mdorstkar Date: Sat, 16 May 2026 17:59:37 +0330 Subject: [PATCH] . --- nahj_get_metadata_v2.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/nahj_get_metadata_v2.py b/nahj_get_metadata_v2.py index 00ffdab..25106a6 100644 --- a/nahj_get_metadata_v2.py +++ b/nahj_get_metadata_v2.py @@ -25,7 +25,8 @@ today = f'{datetime.datetime.now().year}{datetime.datetime.now().month}{datetime استفاده میکنه و در چهار فایل جداگانه ذخیره میکنه ''' def create_tables(): - + # متد ساخت تیبل های اسکیو ال لایت در صورت عدم وجود + cursor.execute("""CREATE TABLE IF NOT EXISTS rules ( id TEXT, rule TEXT, @@ -52,6 +53,7 @@ def create_tables(): conn.commit() +# پرامپت های مختلف که هرکدام یکی از (تایتل یا مفاهیم کلیدی یا شخصیت و یا قواعد) رو از متن نهج البلاغه استخراج میکنه SYSTEM_PROMPT_orginal = """ تو یک استخراج‌گر ساختاریافته اطلاعات برای متون فارسی هستی. @@ -494,18 +496,15 @@ def find_passed_data_ids(output_metadata_jsonl_path): return passed_data_ids if __name__ == "__main__": + create_tables() # ساخت تیبل های مورد نیاز اسکیو ال لایت در صورت عدم وجود input_data_path = './nahj_data/all_nahj_CONTEXT.json' # شامل تمامی (خطبه و نامه و حکمت ها) به همراه پاراگراف هایشان llm_error_path = './nahj-answer/error-in-getting-metadata-Final.txt' previous_peroid_errors_path = "./nahj_data/error-ids-Final.txt" current_peroid_errors_path = "./nahj_data/error-ids3-Final.txt" output_metadata_jsonl_path = f'./nahj_data/nahj-metadata-jsonline.json' - - o=0 - file_path = './nahj_data/nahj-metadata-jsonline.json' - # for path in outs: # 1. حذف فایل اگر وجود داشته باشد if os.path.exists(file_path): os.remove(file_path) @@ -517,8 +516,7 @@ if __name__ == "__main__": output_metadata_json_path = f'./nahj_data/nahj-metadata-TEST.json' with open(input_data_path, 'r', encoding='utf-8') as file: data = json.load(file) - SYSTEM_PROMPT = prompts[o] - o+=1 + passed_data_ids = [] passed_data_ids = find_passed_data_ids(output_metadata_jsonl_path) @@ -563,7 +561,7 @@ if __name__ == "__main__": print(f'id: {id} - record: {index}/{len(data)} - period: {period}') for path in outs : - + # این حلقه برای اجرای هر چهار پرامپته که هرکدام یکی از (تایتل ، مفاهیم کلیدی ، شخصیت ها و قواعد ) را استخراج میکنه if err == True : continue elif path == "title": @@ -630,7 +628,7 @@ if __name__ == "__main__": # entery['paragraph_metadata'] = llm_answer_data - + # در این قسمت متادیتای پارتها استخراج میشود و در تیبل های اسکیو ال لایت ذخیره میشود context_id = id title = entery['title'] large_title = entery['large_title']