Postgres ma maarayn karaa dhuumahaaga RAG?

Waxaannu tijaabinnay habka pgai ee kaydka xogta mudnaanta si aan u ogaanno halka uu hawlaha RAG fududeeyo iyo halka hawlaha adag dabacsanaan dheeraad ah u baahan yihiin.

Soo koobidda fulinta

  • LLM-yadu waxay markiiba “arki” karaan oo keliya qoraal xaddidan (shaashada macnaha guud). Tani waxay ku habboon tahay hawlaha yaryar, balse way fashilantaa marka saldhig aqooneedku ka kooban yahay kumannaan bog. Xataa marka shaashada macnaha guud ku filan tahay, waxqabadku weli wuu liidan karaa dhibaatada “irbad caws badan ku dhex jirta” awgeed.

  • RAG (‘soo-saarid lagu xoojiyey dib-u-helid’) wuxuu noqday hannaan aad loo adeegsado: waxaad maamushaa saldhig aqooneed (dukumentiyo, wiki-yo, siyaasado, qoraallada wada-hadallada, iwm.), raadinta macnaha ayaad ku fulisaa weydiinta isticmaalaha si embeddings loogu soo helo qaybaha ugu khuseeya, dabadeed qaybahaas iyo su’aasha ayaad gelisaa LLM (Qaabka Luuqadda Ballaaran). Tani waxay xaddidaysaa macnaha uu noocu adeegsanayo, haddii si sax ahna loo sameeyo, waxay wanaajin kartaa tayada jawaabta oo yareyn kartaa xog-abuurka khaldan.

  • pgai waa kordhin Postgres oo il-furan (iyo qalab la socda) oo kaa caawisa inaad habraacyada “dib-u-helidda AI” ku dul dhisto kaydka xogta il-furan ee lagu kalsoon yahay ee PostgreSQL.

  • Fikradda ugu weyn waa in qaybo badan oo ka mid ah dhuumaha caadiga ah ee RAG loo raro lakabka kaydka xogta (soo geli → qaybi → samee embedding → embeddings-ka isku waafaji), halkii kaydka xogta loola dhaqmi lahaa inuu yahay “meel keliya oo lagu kaydiyo” embeddings-ka.

  • Aragtida hordhaca ahi waa inuu rajo leeyahay, balse aanu ku habboonayn marka dhuumahaaga RAG ay xataa wax yar adkaadaan, gaar ahaan hababka qaybinta. Si kastaba, mashruucan si dhow ayaannu ula socon doonnaa.

Hannaanka RAG

Waxaa jira siyaabo badan oo RAG loo dhiso. Si aad u hesho faahfaahin dheer oo ku saabsan hababka kala duwan, akhri Tusaalooyin Wax-ku-ool ah oo Xalalka RAG ee La Habeeyey. Marka tayadu muhiim noqoto, fursadaha naqshadayntu si lama filaan ah ayay u qoto dheeraadaan; habka caadiga ah ee “asalka ahi” guud ahaan sidan ayuu u egyahay:

  1. Soo qaado dukumentiyo badan.

  2. U kala jar qaybo. Waxaa jira habab badan oo tan loo sameeyo (tusaale, baaragaraafyo ama kooxayn macneyeed).

  3. Qayb kasta u beddel embedding.

  4. Embeddings-ka ku kaydi kayd xogeed vector ah (Pinecone, Milvus, iwm.) ama Postgres adigoo adeegsanaya pgvector.

  5. Marka weydiin la samaynayo, raadi qaybaha ugu dhow `oo geli LLM (Qaabka Luuqadda Ballaaran) (mar kale... tan lafteeda siyaabo badan ayaa loo samayn karaa).

Nidaamyo badan, tallaabooyinka (1)–(3) waxay ka dhacaan dibadda kaydka xogta, iyagoo ku jira koodhka abka ama dhuumaha xogta; kaydka xogtana inta badan waxaa loo adeegsadaa:

  • kaydinta embeddings-ka

  • raadinta embeddings-ka

Ujeeddada pgai

pgai waa kordhin Postgres ah oo il-furan, ayna horumarisay Timescale), taas oo isku dayaysa inay kala soocaas meesha ka saarto.

Halkii embeddings-ka loola dhaqmi lahaa wax uu abkaagu gacanta ku maamulo, pgai wuxuu ka dhigaa hawl kaydka xogta ka mid ah:

  • Waxaad qeexaysaa shaxda ama dukumentiyada aad rabto in embedding laga sameeyo.

  • Waxaad cayimaysaa nooca embedding-ka iyo xeeladda qaybinta.

  • pgai ayaa maamula inta kale, oo ay ku jirto inuu embeddings-ka cusboonaysiiyo marka xogta ishaadu isbeddesho.

Ballanqaadku waa mid soo jiidasho leh:

  • Koodh isku-xireed gaar ah oo yar, una baahan dayactir.

  • Waa inay fududaato in embeddings-ku “cusub” ahaadaan marka dukumentiyada asalka ahi isbeddelaan.

  • Postgres/pgai ayaa maamula dib-u-tijaabinta, xaddidaadaha codsiyada, hawlaha fashilmay, iwm.

Ogeysiis akhristaha: pgai waxaa ku dhex jira pgvector, oo ah kordhin kale oo Postgres ah oo RAG si weyn loogu adeegsado. pgvector wuxuu Postgres ku daraa kaydinta vector-ka iyo raadinta isku ekaanshaha, halka pgai uu taas ku dul dhiso si uu otomaatig uga dhigo tallaabooyinka dhuumaha RAG sida qaybinta, samaynta embedding-ka iyo cusboonaysiintooda.

Aragtiyaha hordhaca ah ee pgai

Waxa aannu ka helnay

1) In la hawlgeliyo waa sahlan tahay.

Habka caadiga ahi waa mid sahlan:

  • Soo dejiso sawirrada Docker ee Timescale (kaydka xogta + worker-ka).

  • Geli furaha API-ga ee bixiyaha embedding-kaaga.

  • Socodsii xoogaa SQL ah si aad u qeexdo vectoriser-ka (guud ahaan: waxa embedding laga samaynayo, sida loo qaybinayo iyo nooca la adeegsanayo).

Intaas ka dib, pgai wuxuu diyaariyaa worker vectoriser ah oo habsocod gaar ah u shaqeeya, embeddings-kana si aan isku mar ahayn u sameeya (tusaale, 5-tii daqiiqaba ama muddada aad rabto).

2) Way fiican tahay in dhuumaha oo dhan lagu fuliyo meel “u dhow” kaydka xogta.

pgai wuxuu nuxurka ka soo gelin karaa shaxaha, sidoo kalena dukumentiyada ayuu ka soo rari karaa meelo ay ka mid tahay S3, dabadeedna wuu falanqayn, qaybin oo embedding ka samayn karaa. Wuxuu kaloo maarayn karaa qaabab kala duwan oo dukumenti qoraal ah sida PDF, Markdown, iwm.

Waxa xaddidnaa

1) Waxaad luminaysaa xakamayn badan (RAG-na mararka qaar xakamayn ayuu u baahan yahay).

Nidaamyada RAG ee waxqabadka sare leh, marka lagu cabbiro tayada jawaabta, badanaa waxay u baahan yihiin dhuumo si gaar ah loo habeeyey, sida:

  • xeerar qaybin oo gaar ah (cinwaanno, bogag, hadallada qofba mar, iwm.)

  • qaybin tixgelisa xogta-sifaynta (hayso cinwaannada qaybaha, waqtiyada, qorayaasha iyo nooca dukumentiga)

  • xeelado embedding oo nooc kasta oo dukumenti ah u gaar ah

pgai dabacsanaan yar ayuu ka bixiyaa arrimaha kore.

Hadda waxaa jira laba xeeladood oo qaybinta ugu waaweyn: kala-qaybiyaha qoraalka ee xuruufaha iyo kala-qaybiye xuruufeed soo noqnoqda, iyo ikhtiyaar aan waxba la qaybin. Taasi waxay ku filnaan kartaa xaaladaha adeegsiga qaarkood, balse nidaamyo badan oo RAG ah oo wax-soo-saar ku jira waxay u baahan yihiin habayn dheeraad ah.

Aad bay u fiicnaan lahayd in Timescale uu ku daro qaar ka mid ah xeeladaha qaybinta ee horumarsan ee laga helo maktabadaha sida Chonkie, isla markaana uu taageero naqshadaha horumarsan sida dib-u-helidda macnaha guud ee Anthropic.

2) Qoraalka ayuu mudnaanta siiyaa, mana aha mid habab badan leh.

Dhibaatooyin badan oo xiiso leh oo RAG ah hadda kuma koobna qoraal oo keliya:

  • PDF-yo leh jaantusyo

  • sawirrada shaashadda / masawirro

  • duubitaanno maqal

  • qaybo fiidyow ah

Xataa haddii aad ilahan ka “soo saari karto qoraal”, taasi lama mid aha dhuumo embedding oo dhab ahaan habab badan leh.

Haddii pgai uu mustaqbalka si gees ilaa gees ah u taageero noocyo habab badan leh (soo rar → qaybi → samee embedding loogu talagalay sawirro waaweyn, maqal iyo fiidyow ku kaydsan S3, oo si adag loo waafajiyo), taasi waxay noqon lahayd mid soo jiidasho leh; maanta se waa habraac embedding qoraal ah.

3) Haddii aad embeddings oo keliya u baahan tahay, pgai uma baahnid.

Haddii dhuumaha gelinta xogtaadu hore u habaysan yihiin ama ay tahay inay sidaas noqdaan, “samaynta embeddings-ka qaybo qoraal ah” ma aha qaybta ugu adag ee RAG. Xaaladdaas, pgai wuxuu xallinayaa qaybta ugu sahlan ee dhibaatada.

Sidoo kale, haddii saldhiggaaga aqoonta dhif loo cusboonaysiiyo, faa’iidada isku-waafajinta embedding-ka ee otomaatiga ahi ma badna.

Lakabka qoraal-u-beddel-SQL

Hab si gaar ah ugu wanaagsan oo pgai loo adeegsan karo waa in kaydadkaaga xogta lagu dul hawlgeliyo is-dhexgal qoraal-u-beddel-SQL. Tan si fudud ayaa loogu samayn karaa qaybta semantic_catalog ee pgai bixiyo. Si fudud sidan ugu habee:

Bash

OPENAI_API_KEY="your-OpenAPI-key-goes-here"TARGET_DB="postgres://user:password@host:port/database"CATALOG_DB="postgres://user:password@host:port/database"

dabadeed semantic catalog ha baaro qaamuusyada xogtaada adigoo adeegsanaya pgai semantic-catalog create. Tani waxay kaydkaaga xogta ka soo saartaa macne u eg sidan:

Plain Text

---schema: postgres_airname: aircrafttype: tabledescription: Lists aircraft models with performance characteristics and unique codes.columns:- name: model  description: Commercial name of the aircraft model.- name: range  description: Maximum flight range in kilometers.- name: class  description: Airframe class category or configuration indicator.- name: velocity  description: Cruising speed of the aircraft.- name: code  description: Three-character aircraft code serving as the primary key....

Macnahan hadda siyaabo kala duwan ayuu pgai ugu diyaarsan yahay;

Iyadoo loo marayo raadinta macnaha:

Weydiintani waxay soo celinaysaa shaxaha, shaqooyinka iyo walxaha kale ee laga yaabo inay khuseeyaan weydiintaada luuqadda dabiiciga ah:

Bash

pgai semantic-catalog search -p "Your natural language question goes here!"

Hel macnaha cayriin:

Tani waxay soo bandhigaysaa macnaha YAML ee cayriin ee la xiriira weydiintaada luuqadda dabiiciga ah:

Bash

pgai semantic-catalog search -p "Your natural language question goes here!" --render

Samee SQL:

Ama waxaad si toos ah u samayn kartaa SQL-ka cayriin ee loo baahan yahay si looga jawaabo weydiintaada. Macnaha tallaabadii hore waxaa loo diraa LLM (Qaabka Luuqadda Ballaaran), dabadeedna jawaab ayaa la soo saaraa:

Bash

pgai semantic-catalog generate-sql -p "Your natural language question goes here!"

Sida aad hadda pgai u adeegsan karto

Haddii aad dhisayso nidaam RAG ah oo sahlan, pgai waa mudan yahay in la tijaabiyo haddii aad rabto:

  • in Postgres noqdo nidaamkaaga diiwaanka,

  • koodh isku-xireed yar,

  • embeddings si otomaatig ah isku waafaqsan,

  • hab degdeg ah oo qoraal-u-beddel-SQL loogu dabaqo kaydadkaaga xogta,

  • inaad tijaabiso qalabka cusub ee RAG iyo kordhinnada Postgres.

Meelaha aannu taxaddari lahayn

Waxay u badan tahay inay habboon tahay inaad pgai sugto haddii dhuumahaaga RAG ay u baahan yihiin mid ka mid ah kuwan:

  • hab gelin ama qaybinta xogta oo si weyn loo habeeyey

  • noocyo badan oo dukumenti ah oo leh shuruudo falanqayn oo kala duwan

  • embeddings habab badan leh

Ugu dambayn, inkasta oo ay caddahay in pgvector si weyn loo qaatay, haddana ma cadda in pgai uu heli doono heer la mid ah oo xiise iyo taageero ah, iyadoo weliba uu jiray qiyaastii 18 bilood oo keliya.

Shaxda taariikhda xiddigaha GitHub oo muujinaysa sida pgai ee Timescale loo qaatay muddo ka dib.

Soo koobid

pgai waa hab xiiso leh oo RAG loogu oggolaanayo kaydadka xogta inay qabtaan hawlaha joogtada ah, si koodhka abkaagu u fududaado.

Hadda wuxuu yahay:

  • mid la adeegsan karo oo runtii ku wanaagsan habaynnada RAG ee sahlan

  • mid aan dabacsanaan ku filan u lahayn dhuumaha sida gaarka ah loo habeeyey, gaar ahaan kuwa habab badan leh

Wuxuu muujinayaa rajo, waana hubaal inay mudan tahay in lala socdo sida uu u horumaro.

Qoraa

Andrew Liubinas