Experiments / prompt.py
credent007's picture
Update prompt.py
1f7850c verified
# def get_prompt():
# return """
# Extract the following details.
# Return ONLY valid JSON:
# {
# }"""
def get_prompt():
# You convert unstructured text into a structured JSON object. OUTPUT ONLY VALID JSON. NO extra words. NO explanation. NO commentary. GOAL - Extract required data points as key–value pairs. - Organize data into top-level sections only. - Each section contains either:   (a) a flat object of key–value pairs, or     (b) an array of flat objects for repeated groups. - Depth limit = 2 (root → section → object/array of objects).     Never nest sections inside other sections. NAMING RULES - Use the exact section names and key names defined below. - Keys MUST NOT contain the dot character ".". - Maintain human-readable, normalized whitespace in key names. - Never rename keys, never add extra keys. DATA TYPING - Use JSON native types:   - Numbers as numbers.   - IDs or codes with leading zeros as strings.   - Dates as "YYYY-MM-DD" if clearly parseable; otherwise keep original text.   - Times as "HH:MM" 24-hour if clear. - If a value exists but is unreadable, return "" (not null). - NEVER infer any missing value. NOTIFICATION NUMBER RULE (IMPORTANT) For “CB Code” fields (e.g., "CB Code" inside PART-1 - BILL OF ENTRY SUMMARY) - Valid examples:"CB Code" =  "AAACF2350DCH006" For all “Notn No” fields (e.g., "IGST","G. CESS" inside Item Duty): - Valid examples:"IGST" =  "021/2023", "G CESS" = "001/2017". - Return "IGST" and "G CESS" can not be null or Empty For all “Notn SNo” fields (e.g., "IGST", "G CESS" inside Item Duty): - Valid examples:"IGST" =  "1" or "III70", "G CESS" = "56". For all “Rate” fields (e.g., BCD, SWS inside Item Duty): - Valid examples:BCD =  "7.5", SWS = "10". For all “Notn No” fields (e.g., CAIDC inside Other Duties): - Valid examples:CAIDC =  "011/2021". For all “Notn SNo” fields (e.g., CAIDC inside Other Duties): - Valid examples:CAIDC =  "18". For all “Amount” fields (e.g., CAIDC inside Other Duties): - Valid examples:CAIDC =  "0". - Return Exact value or can be 0 or Empty For all “Duty Fg” fields (e.g., CAIDC inside Other Duties): - Valid examples:CAIDC =  "4437540". - Return Exact value which can not be null or empty For all “INVSNO” and “ITEMSN” (inside Part - III - DUTIES) - Full form: “INVSNO” = "Invoice Serial number", “ITEMSN” = "Item Serial Number" - Return “INVSNO” and “ITEMSN” which can not be null or empty Return EXACTLY as shown in the document. REPETITIONS & TABLES - If multiple rows exist, return an array with one object per row. - Each object must remain FLAT. - Do not nest objects deeper than allowed. - Keep column order exactly as defined. MANDATORY BEHAVIOR - Detect which PART the document belongs to. - Output ONLY the JSON object for that PART. - If data for a required field is missing, return "". ============================================= PART-1 — BILL OF ENTRY SUMMARY ============================================= If the document corresponds to PART-1, output: {   "PART-1 - BILL OF ENTRY SUMMARY": {     "Port Code": "",     "BE NO": "",     "BE Date": "",     "BE TYPE": "",     "IEC/Br": "",     "CB Code": "",     "Mode": "",     "DEF BE": "",     "ASSESS": "",     "EXAM": "",     "PROV/FINAL": "",     "COUNTRY OF ORIGIN": "",     "PORT OF LOADING": "",     "PORT OF SHIPMENT": "",     "IMPORTER NAME & ADDRESS": "",     "AD CODE": "",     "CB NAME": "",     "BCD": "",     "SWS": "",     "CVD":"",     "IGST": "",     "TOT ASS VALUE": "",     "TOTAL DUTY": "",     "INT": "",     "PNLTY": "",     "FINE": "",     "TOT AMOUNT": "",     "Submission": "",     "ASSESSMENT": "",     "EXCHNAGE RATE": "",     "OOC NO": "",     "OOC DATE": ""   },   "MANIFEST DETAILS": [     {       "IGM NO": "",       "IGM DATE": "",       "INW DATE": "",       "MAWB NO": "",       "DATE": "",       "HAWB NO": "",       "HAWB DATE": "",       "PKG": "",       "GW": ""     }   ],   "BOND DETAILS": [     {       "BOND NO": "",       "PORT": "",       "BOND CD": "",       "DEBT AMT": ""     }   ],   "Payment Details": [     {       "SR NO": "",       "CHALLAN NO": "",       "PAID ON": "",       "AMOUNT(RS)": ""     }   ],   "CONTAINER DETAILS": [     {       "S NO": "",       "LCL/FCL": "",       "CONTAINER NUMBER": ""     }   ],   "INVOICE DETAILS-SUMMERY": [     {         "S NO":"",         "INVOICE NO":"",         "INV AMT": "",         "CUR":""     }   ] } ============================================ PART-II — INVOICE & VALUATION DETAILS ============================================ {     "PART -II - INVOICE & VALUATION DETAILS": {},          "Details": {                 "SUPPLIER NAME & ADDRESS": "",                 "FREIGHT": "",                 "INSURANCE": "",                 "LOADING": "",                 "COMMN": "",                 "VALUATION METHOD": "",                 "Cur": "",                 "Term": "",                 "REL TD": "",                 "SVB CH": "",                 "SVB NO": "",                 "DATE": ""                 },     "INVOICE": [                 {                     "S NO": "",                     "INVOICE No Dt": ""                 }                 ],     "Item Details": [                         {                             "S NO": "",                             "CTH": "",                             "DESCRIPTION": "",                             "UNIT PRICE": "",                             "QUANTITY": "",                             "UQC": "",                             "AMOUNT": ""                         }                     ]    } ==================================== PART-III — DUTIES ==================================== ✔ Item Duty section FIXED, simplified, corrected   ✔ Each table is ONE row   ✔ Field order fixed   ✔ Dot-free keys   ✔ No duplication {   "Part - III - DUTIES": {},     "Item Details": [                         {                             "INVSNO": "",                             "ITEMSN": "",                             "CTH": "",                             "ITEM DESCRIPTION": "",                             "COO": "",                             "C_QTY": "",                             "C_UQC": "",                             "S_QTY": "",                             "S_UQC": "",                             "SCH": "",                             "END USE": "",                             "ASSESS VALUE": "",                             "TOTAL DUTY": ""                         }                         ],     "Item Duty - Notn No": [                         {                             "INVSNO": "",                             "ITEMSN": "",                             "BCD": "",                             "SWS": "",                             "IGST": "",                             "G CESS": "",                             "ADD": "",                             "T VALUE": ""                         }                         ],     "Item Duty - Notn SNo": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "BCD": "",                                     "SWS": "",                                     "IGST": "",                                     "G CESS": "",                                     "ADD": "",                                     "T VALUE": ""                                 }                                 ],     "Item Duty - Rate": [                             {                                 "INVSNO": "",                                 "ITEMSN": "",                                 "BCD": "",                                 "SWS": "",                                 "IGST": "",                                 "G CESS": "",                                 "ADD": "",                                 "T VALUE": ""                             }                             ],     "Item Duty - Amount": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "BCD": "",                                     "SWS": "",                                     "IGST": "",                                     "G CESS": "",                                     "ADD": "",                                     "T VALUE": ""                                 }                                 ],     "Item Duty - Duty Fg": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "BCD": "",                                     "SWS": "",                                     "IGST": "",                                     "G CESS": "",                                     "ADD": "",                                     "T VALUE": ""                                 }                                 ],     "Other Duty - Notn No": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "CAIDC": ""                                 }                                 ],     "Other Duty - Notn SNo": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "CAIDC": ""                                 }                                 ],     "Other Duty - Rate": [                             {                                 "INVSNO": "",                                 "ITEMSN": "",                                 "CAIDC": ""                             }                             ],     "Other Duty - Amount": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "CAIDC": ""                                 }                                 ],     "Other Duty - Duty Fg": [                                 {                                     "INVSNO": "",                                     "ITEMSN": "",                                     "CAIDC": ""                                 }                                 ] } ======================================== PART-IV — ADDITIONAL DETAILS ======================================== {   "PART - IV - ADDITIONAL DETAILS": {},   "LICENSE DETAILS": [                         {                             "INVSNO": "",                             "ITMSNO": "",                             "LIC SLNO": "",                             "LIC NO": "",                             "LIC DATE": "",                             "CODE": "",                             "PORT": "",                             "DEBIT VALUE": "",                             "QTY": "",                             "UQC": "",                             "DEBIT DUTY": ""                         }                         ] } ======================================== PART-V — OTHER COMPLIANCES ======================================== {   "PART - V - OTHER COMPLIANCES": {     "EXAMINATION ORDER RMS": "",     "EXAMINATION ORDER": "",     "PGA EXAMINATION INSTRUCTIONS": "",     "EXAMINATION REPORT": "",     "SUPERINTENDENT COMMENTS": ""   } } ========================================== PART-VI — DECLARATIONS ========================================== {   "PART-VI- DECLARATIONS": "None" } ========================================== FINAL RULES ========================================== - Detect document PART.   - Return ONLY that PART’s JSON.   - Output MUST be valid JSON.   - No comments or text outside JSON.   - No dots in keys.   - Do NOT infer values; use "" when missing.
return """ There are 6 headlines type of page predict one headline first
1."PART-1 - BILL OF ENTRY SUMMARY"
2."PART - II - INVOICE & VALUATION DETAILS"
3."PART-III - DUTIES"
4."PART - IV - ADDITIONAL DETAILS"
5."PART-V - OTHER COMPLIANCES"
6."PART-VI- DECLARATIONS"
rules
- No explanation
- No Chinese
- Only JSON output for one headline
- if the data is not present return ""
let headline = your prediction of headline
fetch only following json data in following format
"your prediction of headline":
[
{
"data1":"filled_data",
"data2":"filled_data",
so on
}
]
if headline=="PART - I - BILL OF ENTRY SUMMARY"
fetch only following json data in following format
{
"Port Code": "",
"BE NO": "",
"BE Date": "",
"BE TYPE": "",
"IEC/Br": "",
"CB Code": "",
"Mode": "",
"DEF BE": "",
"ASSESS": "",
"EXAM": "",
"PROV/FINAL": "",
"COUNTRY OF ORIGIN": "",
"PORT OF LOADING": "",
"PORT OF SHIPMENT": "",
"IMPORTER NAME & ADDRESS": "",
"AD CODE": "",
"CB NAME": "",
"BCD": "",
"SWS": "",
"CVD":"",
"IGST": "",
"TOT ASS VALUE": "",
"TOTAL DUTY": "",
"INT": "",
"PNLTY": "",
"FINE": "",
"TOT AMOUNT": "",
"Submission": "",
"ASSESSMENT": "",
"EXCHNAGE RATE": "",
"OOC NO": "",
"OOC DATE": "",
"IGM NO": "",
"IGM DATE": "",
"INW DATE": "",
"MAWB NO": "",
"DATE": "",
"HAWB NO": "",
"HAWB DATE": "",
"PKG": "",
"GW": "",
"BOND NO": "",
"PORT": "",
"BOND CD": "",
"DEBT AMT": "",
"SR NO": "",
"CHALLAN NO": "",
"PAID ON": "",
"AMOUNT(RS)": "",
"S NO": "",
"LCL/FCL": "",
"CONTAINER NUMBER": "",
"S NO":"",
"INVOICE NO":"",
"INV AMT": "",
"CUR":"",
}
else if headline == "PART - II - INVOICE & VALUATION DETAILS"
fetch only following json data
{
"SUPPLIER NAME & ADDRESS": "",
"FREIGHT": "",
"INSURANCE": "",
"LOADING": "",
"COMMN": "",
"VALUATION METHOD": "",
"Cur": "",
"Term": "",
"REL TD": "",
"SVB CH": "",
"SVB NO": "",
"DATE": "",
"S NO": "",
"INVOICE No Dt": "",
"S NO": "",
"CTH": "",
"DESCRIPTION": "",
"UNIT PRICE": "",
"QUANTITY": "",
"UQC": "",
"AMOUNT": "",
}
else if headline == "PART-III — DUTIES"
fetch only following json data
{
"INVSNO": "",
"ITEMSN": "",
"CTH": "",
"ITEM DESCRIPTION": "",
"COO": "",
"C_QTY": "",
"C_UQC": "",
"S_QTY": "",
"S_UQC": "",
"SCH": "",
"END USE": "",
"ASSESS VALUE": "",
"TOTAL DUTY": "",
"INVSNO": "",
"ITEMSN": "",
"BCD": "",
"SWS": "",
"IGST": "",
"G CESS": "",
"ADD": "",
"T VALUE": "",
"INVSNO": "",
"ITEMSN": "",
"BCD": "",
"SWS": "",
"IGST": "",
"G CESS": "",
"ADD": "",
"T VALUE": "",
"INVSNO": "",
"ITEMSN": "",
"BCD": "",
"SWS": "",
"IGST": "",
"G CESS": "",
"ADD": "",
"T VALUE": "",
"INVSNO": "",
"ITEMSN": "",
"BCD": "",
"SWS": "",
"IGST": "",
"G CESS": "",
"ADD": "",
"T VALUE": "",
"INVSNO": "",
"ITEMSN": "",
"BCD": "",
"SWS": "",
"IGST": "",
"G CESS": "",
"ADD": "",
"T VALUE": "",
"INVSNO": "",
"ITEMSN": "",
"CAIDC": "",
"INVSNO": "",
"ITEMSN": "",
"CAIDC": "",
"INVSNO": "",
"ITEMSN": "",
"CAIDC": "",
"INVSNO": "",
"ITEMSN": "",
"CAIDC": "",
"INVSNO": "",
"ITEMSN": "",
"CAIDC": "",
}
else if headline == "PART - IV - ADDITIONAL DETAILS"
fetch only following json data
{
"INVSNO": "",
"ITMSNO": "",
"LIC SLNO": "",
"LIC NO": "",
"LIC DATE": "",
"CODE": "",
"PORT": "",
"DEBIT VALUE": "",
"QTY": "",
"UQC": "",
"DEBIT DUTY": "",
}
else if headline == "PART-V — OTHER COMPLIANCES"
fetch only following json data
{
"EXAMINATION ORDER RMS": "",
"EXAMINATION ORDER": "",
"PGA EXAMINATION INSTRUCTIONS": "",
"EXAMINATION REPORT": "",
"SUPERINTENDENT COMMENTS": "",
}
else if headline == "PART-VI — DECLARATIONS "
{
"PART-VI- DECLARATIONS": "None"
}
"""
# """
# Rules:
# - No explanation
# - No Chinese
# - Only JSON output
# from the image match following data if data is found fill them in key value format means json and remove unfilled data
# {
# "Port Code": "",
# "BE NO": "",
# "BE Date": "",
# "BE TYPE": "",
# "IEC/Br": "",
# "CB Code": "",
# "Mode": "",
# "DEF BE": "",
# "ASSESS": "",
# "EXAM": "",
# "PROV/FINAL": "",
# "COUNTRY OF ORIGIN": "",
# "PORT OF LOADING": "",
# "PORT OF SHIPMENT": "",
# "IMPORTER NAME & ADDRESS": "",
# "AD CODE": "",
# "CB NAME": "",
# "BCD": "",
# "SWS": "",
# "CVD": "",
# "IGST": "",
# "TOT ASS VALUE": "",
# "TOTAL DUTY": "",
# "INT": "",
# "PNLTY": "",
# "FINE": "",
# "TOT AMOUNT": "",
# "Submission": "",
# "ASSESSMENT": "",
# "EXCHNAGE RATE": "",
# "OOC NO": "",
# "OOC DATE": "",
# "IGM NO": "",
# "IGM DATE": "",
# "INW DATE": "",
# "MAWB NO": "",
# "DATE": "",
# "HAWB NO": "",
# "HAWB DATE": "",
# "PKG": "",
# "GW": "",
# "BOND NO": "",
# "PORT": "",
# "BOND CD": "",
# "DEBT AMT": "",
# "SR NO": "",
# "CHALLAN NO": "",
# "PAID ON": "",
# "AMOUNT(RS)": "",
# "S NO": "",
# "LCL/FCL": "",
# "CONTAINER NUMBER": "",
# "S NO": "",
# "INVOICE NO": "",
# "INV AMT": "",
# "CUR": "",
# "SUPPLIER NAME & ADDRESS": "",
# "FREIGHT": "",
# "INSURANCE": "",
# "LOADING": "",
# "COMMN": "",
# "VALUATION METHOD": "",
# "Cur": "",
# "Term": "",
# "REL TD": "",
# "SVB CH": "",
# "SVB NO": "",
# "DATE": "",
# "S NO": "",
# "INVOICE No Dt": "",
# "S NO": "",
# "CTH": "",
# "DESCRIPTION": "",
# "UNIT PRICE": "",
# "QUANTITY": "",
# "UQC": "",
# "AMOUNT": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CTH": "",
# "ITEM DESCRIPTION": "",
# "COO": "",
# "C_QTY": "",
# "C_UQC": "",
# "S_QTY": "",
# "S_UQC": "",
# "SCH": "",
# "END USE": "",
# "ASSESS VALUE": "",
# "TOTAL DUTY": "",
# "INVSNO": "",
# "ITEMSN": "",
# "BCD": "",
# "SWS": "",
# "IGST": "",
# "G CESS": "",
# "ADD": "",
# "T VALUE": "",
# "INVSNO": "",
# "ITEMSN": "",
# "BCD": "",
# "SWS": "",
# "IGST": "",
# "G CESS": "",
# "ADD": "",
# "T VALUE": "",
# "INVSNO": "",
# "ITEMSN": "",
# "BCD": "",
# "SWS": "",
# "IGST": "",
# "G CESS": "",
# "ADD": "",
# "T VALUE": "",
# "INVSNO": "",
# "ITEMSN": "",
# "BCD": "",
# "SWS": "",
# "IGST": "",
# "G CESS": "",
# "ADD": "",
# "T VALUE": "",
# "INVSNO": "",
# "ITEMSN": "",
# "BCD": "",
# "SWS": "",
# "IGST": "",
# "G CESS": "",
# "ADD": "",
# "T VALUE": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CAIDC": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CAIDC": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CAIDC": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CAIDC": "",
# "INVSNO": "",
# "ITEMSN": "",
# "CAIDC": "",
# "INVSNO": "",
# "ITMSNO": "",
# "LIC SLNO": "",
# "LIC NO": "",
# "LIC DATE": "",
# "CODE": "",
# "PORT": "",
# "DEBIT VALUE": "",
# "QTY": "",
# "UQC": "",
# "DEBIT DUTY": "",
# "EXAMINATION ORDER RMS": "",
# "EXAMINATION ORDER": "",
# "PGA EXAMINATION INSTRUCTIONS": "",
# "EXAMINATION REPORT": "",
# "SUPERINTENDENT COMMENTS": "",
# "PART-VI- DECLARATIONS": "None"
# }
# return data in json format only filled data if any data "" donot need to return
# """