Timu nyingi bado huunda mchakato wao wa kwanza wa upatikanaji (retrieval pipeline) kwa njia ile ile. Wanachagua kiwango maalum cha tokeni, labda 512, wanagawanya nyaraka katika vipande vinavyolingana, na kuingiza vipande hivyo kwenye kanzidata ya vector. Kwenye seti ndogo ya data yenye maswali rahisi, hii huonekana kama uchawi. Lakini katika mazingira halisi ya kazi (production), mchakato huu hufeli.
Mikataba ya kisheria huchanika katika vipande visivyo na maana wakati kipengele fulani kinapokatwa katikati ya sentensi. Maelezo ya API yanageuka kuwa mchanganyiko wa kelele ikiwa kipande kimoja kitameza kazi (functions) tatu zisizohusiana. Tiketi za huduma kwa wateja hupoteza mtiririko wote wa simulizi bila kuingiliana kwa sehemu hizo. Matokeo yake ni ya kutabirika: ucheleweshaji mkubwa (latency), uwezo mdogo wa kurejesha taarifa (recall), na majibu yanayolazimisha mfumo wa kuzalisha (generator) kutoa majibu ya uongo (hallucinate).
Tulibomoa tabaka letu la upatikanaji na kulijenga upya. Matokeo yalikuwa ni ongezeko la uwezo wa kurejesha taarifa (recall) kutoka asilimia 78 hadi 95 asilimia, upungufu wa asilimia 62 wa ucheleweshaji (latency), na mchakato ambao hatimaye unafanya kazi kama miundombinu halisi badala ya suluhisho la dharura la mwisho wa wiki. Hapa kuna kile kilichofanya kazi kweli.
Ugawaji wa Vipande wa Akili: Muundo Badala ya Tokeni
Kosa la kwanza ni kudhani kuwa kila nyaraka inazungumza lugha moja. Kipande cha tokeni 512 kinaingia akilini kwa maandishi ya simulizi na karibu mahali pengine popote. Tulihamia kwenye mkakati unaozingatia muundo wa chanzo.
Kwa nyaraka za kisheria, tunatumia ugawaji wa vipande wa mfuatano (recursive chunking). Algorithim kwanza inajaribu kugawanya kwenye mipaka ya juu kama vile sehemu na vifungu. Ikiwa sehemu bado ni ndefu sana, inatafuta sehemu ndogo, kisha aya, kisha sentensi. Hii inahifadhi mpangilio wa kimantiki wa vipengele. Mkataba wa kutoshindana unabaki ukiwa mzima. Tafsiri hazichanganyiki na masharti ya fidia.
Maelezo ya API yanahitaji ugawaji unaozingatia muundo. Saini ya kazi (function signature), jedwali lake la vigezo (parameter table), na mfano wa ombi lake (example request) vinapaswa kuwa pamoja. Kugawanya baada ya idadi maalum ya tokeni mara nyingi huacha vigezo katika kipande kimoja na mifano katika kingine. Badala yake, tunagawanya kwa kutumia kitu cha nyaraka (document object). Kipande kimoja kinashikilia endpoint kamili au kazi moja. Kisha mfumo wa upatikanaji (retriever) unaweza kutoa rejea inayojitegemea ambayo inajibu swali kwa usahihi.
Tiketi za huduma kwa wateja zinafaa asili kwa ugawaji wa kimaana (semantic chunking). Badala ya kukata kwenye mpaka wa tokeni, tunatambua pale mada inapobadilika. Tiketi inayofungua na malalamiko ya kuingia (login) na kugeukia swali la malipo hugawanyika katika vipande viwili vinavyoeleweka. Kila kipande hubeba metadata inayohitajika, na mfumo hauhitaji tena kukisia ni tatizo gani mtumiaji anajali hasa.
Wiki za ndani ni changamoto zaidi. Zinachanganya maandishi, majedwali, michoro, na nyuzi (threads) zilizojumuishwa. Kwa hizi, tunatumia ugawaji wa ki-agent (agentic chunking). Mfumo mdogo wa lugha (small language model) husoma mbele na kuamua pale kitengo kilichokamilika kimaudhui kinapoishia. Inagharimu kidogo zaidi wakati wa kuingiza data (ingestion time), lakini inaondoa kazi ya mikono ya kurekebisha sheria kwa kila muundo mpya wa ukurasa.
Upatikanaji Mseto: Hakikisha Umefunika Kila Kitu
Utafutaji wa vector (vector search) ni mzuri katika kunasa maana isiyo rasmi (fuzzy meaning). Ulipouliza kuhusu upakiaji wa polepole, utarudisha kwa furaha aya kuhusu ucheleweshaji (latency) na upana wa mawasiliano (bandwidth). Lakini unajulikana kwa kuharibu matokeo yanayofanana kabisa. Ikiwa mwanatengeneza programu (developer) atatafuta kodi ya hitilafu ERR_CONNECTION_REFUSED, embeddings nzito (dense embeddings) mara nyingi itachukulia kama kelele ya kawaida.
BM25, algoriti ya kawaida ya maneno muhimu (keyword algorithm), hufanya kinyume chake. Inakamata vizuri maandishi sahihi na maneno adimu, lakini inakosa nuances za kimaana (semantic nuance). Swali kuhusu kusaini mkataba linaweza lisitoe maudhui yaliyoainishwa kama kutekeleza mkataba.
