𝗣𝗵𝗮𝘀𝗲 𝟭: 𝗗𝗼𝗰𝘂𝗺𝗲𝗻𝘁 𝗜𝗻𝗴𝗲𝘀𝘁𝗶𝗼𝗻

చాలా RAG సిస్టమ్స్ అవి ప్రారంభం కాకముందే విఫలమవుతాయి.

RAG సిస్టమ్‌ను నిర్మించడం చాలా సులభం అని మీరు అనుకోవచ్చు. ఒక యూజర్ PDFని అప్‌లోడ్ చేస్తారు, మీరు ఎంబెడ్డింగ్స్ (embeddings) క్రియేట్ చేస్తారు, మరియు మీకు సమాధానాలు వస్తాయి.

అది ఒక పొరపాటు.

అప్‌లోడ్ బటన్ మరియు వెక్టర్ డేటాబేస్ (vector database) మధ్య 15 కీలకమైన దశలు ఉన్నాయి. మీరు ఒకదానిని వదిలేసినా, మీ సిస్టమ్ తప్పుడు సమాధానాలను ఇస్తుంది లేదా మీ డబ్బును వృధా చేస్తుంది.

డాక్యుమెంట్ ఇంజెషన్ కోసం ప్రొడక్షన్-గ్రేడ్ రోడ్‌మ్యాప్ ఇక్కడ ఉంది:

• ఫైల్ హ్యాషింగ్ (File Hashing): ఫైల్ పేరును ఎప్పుడూ హ్యాష్ చేయకండి. అసలు ఫైల్ కంటెంట్‌ను హ్యాష్ చేయండి. ఎవరైనా ఫైల్ పేరు మార్చినప్పటికీ, మీ సిస్టమ్ అదే ఫైల్‌ను రెండుసార్లు ప్రాసెస్ చేయకుండా ఇది నిరోధిస్తుంది.

• స్మార్ట్ పార్సింగ్ (Smart Parsing): పనికి తగిన సరైన సాధనాన్ని ఉపయోగించండి.

  • సాధారణ టెక్స్ట్: pdf-parse (ఉచితం)
  • మిశ్రమ కంటెంట్: Unstructured (సమతుల్యమైనది)
  • సంక్లిష్టమైన టేబుల్స్/లేఅవుట్‌లు: LlamaParse (అధిక నాణ్యత)
  • ఎంటర్‌ప్రైజ్ ఫారమ్‌లు: Azure Document Intelligence (స్కాన్‌ల కోసం ఉత్తమమైనది)

• టెక్స్ట్ క్లీనింగ్ (Text Cleaning): అనవసరమైన అంశాలను తొలగించండి. హెడర్లు, ఫుటర్లు, వాటర్‌మార్క్‌లు మరియు పేజీ నంబర్లు నాయిస్‌ను (noise) సృష్టిస్తాయి. మీరు ప్రతి పేజీలో "Confidential" అనే పదాన్ని ఎంబెడ్ చేస్తే, మీ AI ప్రతి సమాధానం ఒక రహస్యం అని భావిస్తుంది.

• మెటాడేటా ఎక్స్‌ట్రాక్షన్ (Metadata Extraction): డిపార్ట్‌మెంట్, సెక్షన్ లేదా వెర్షన్ వంటి సందర్భాన్ని (context) జోడించండి. ఇది అన్నింటినీ వెతకకుండానే మీ సిస్టమ్ సరైన డాక్యుమెంట్‌ను కనుగొనడంలో సహాయపడుతుంది.

• స్మార్ట్ చంకింగ్ (Smart Chunking): ఇది అత్యంత ముఖ్యమైన భాగం.

  • సైజు: 1000 నుండి 1500 టోకెన్ల లక్ష్యంగా పెట్టుకోండి.
  • ఓవర్‌ల్యాప్ (Overlap): సందర్భాన్ని నిలబెట్టుకోవడానికి 200 టోకెన్ల ఓవర్‌ల్యాప్‌ను ఉపయోగించండి.
  • బౌండరీస్: వాక్యాన్ని ఎప్పుడూ మధ్యలో విడగొట్టకండి.

• చంక్ హ్యాషింగ్ మరియు డూప్లికేషన్ (Chunk Hashing and Deduplication): ప్రతి చంక్‌ను హ్యాష్ చేయండి. ఫైల్ మారినప్పుడు, కొత్త హ్యాష్‌లను పాత వాటితో పోల్చండి.

• ఇంక్రిమెంటల్ ఇంజెషన్ (Incremental Ingestion): అన్నింటినీ మళ్ళీ ఎంబెడ్ చేయకండి. 1000 పేజీల డాక్యుమెంట్‌లో కేవలం ఒక పేజీ మాత్రమే మారితే, ఆ ఒక్క కొత్త చంక్‌ను మాత్రమే ఎంబెడ్ చేయండి. ఇది API ఖర్చుల విషయంలో మీకు భారీ మొత్తంలో డబ్బును ఆదా చేస్తుంది.

ఒక హాబీ ప్రాజెక్ట్ మరియు ప్రొడక్షన్ సిస్టమ్ మధ్య తేడా ఏమిటంటే, ఎంబెడ్డింగ్ దశకు ముందు మీరు చేసే పని.

ఒక సాధారణ (naive) సిస్టమ్ ప్రతిసారీ అన్నింటినీ మళ్ళీ ఎంబెడ్ చేస్తుంది. ఒక స్మార్ట్ సిస్టమ్ కేవలం మారిన వాటిని మాత్రమే ప్రాసెస్ చేస్తుంది.

గందరగోళంగా నిర్మించడం ఆపండి. ఒక బలమైన పునాదిని నిర్మించండి.

Source: https://dev.to/surajrkhonde/phase-1-document-ingestion-the-hidden-complexity-before-embeddings-4d32

Optional learning community: https://t.me/GyaanSetuAi