AI-pohjainen taulukko- ja dokumenttianalyysi moniagenttiorkestroinnilla ja dokumenttienvälisellä viittauksella
Yrityksen datatiimi tarvitsi analysoida, kysellä ja muokata suuria taulukko- ja dokumenttikokoelmia (Excel, CSV, Google Sheets, PDF:t, Word-dokumentit) luonnollisella kielellä – kyvyllä ristiviitata tietoja useista tiedostoista ja suorittaa monivaiheisia analyyttisiä työnkulkuja ilman manuaalista tiedonkäsittelyä.
Keskustele Projektistasi
Haaste
Yritysdokumenttien käsittely suuressa mittakaavassa oli täynnä kitkaa:
- Siiloutunut data — Kriittinen tieto oli hajallaan kymmenissä taulukoissa, PDF:issä ja Word-dokumenteissa ilman keinoa kysellä niistä yhdessä
- Manuaalinen ristiviittaus — Myyjän hinnaston (Excel) vertailu sopimusehtoihin (PDF) laskutushistorian (CSV) kanssa vaati tunteja manuaalista etsintää
- Kaavarajoitukset — Monimutkaisiin analyyttisiin kysymyksiin ei voitu vastata pelkillä taulukon kaavoilla
- Konteksti-ikkunan rajoitukset — Suuret taulukot (yli 50 000 riviä) ylittivät LLM-konteksti-ikkunat, tehden naiiveista lähestymistavoista epäonnistuvia
- Ei muokkausominaisuuksia — Olemassa olevat AI-työkalut pystyivät analysoimaan dokumentteja, mutta eivät voineet kirjoittaa muutoksia takaisin lähdetiedostoihin
- Monivaiheinen päättely — Kysymykset, jotka vaativat peräkkäistä analyysiä dokumenttien välillä, tarvitsivat orkestroituja monivaiheisia työnkulkuja
Meidän Ratkaisumme
Rakensimme moniagenttisen AI-dokumenttitiedustelualustan, jossa on vektoritietokannan tukema haku suurille dokumenteille, erikoistuneita agentteja eri dokumenttityypeille, orkestraattori dokumenttienväliseen päättelyyn ja takaisinkirjoitusominaisuudet taulukoiden muokkaamiseen.
Arkkitehtuuri
- Orkestraattori: AI-orkestraattoriagentti, joka koordinoi monivaiheisia työnkulkuja erikoistuneiden agenttien välillä
- Taulukkoagentti: Käsittelee Excel/CSV/Google Sheets -analyysiä, kaavojen luomista ja solumuokkauksia
- Dokumenttiagentti: Käsittelee PDF/Word-dokumenttien lukemista, poimintaa ja yhteenvetoa
- Ristiviittausagentti: Suorittaa liitoksia, vertailuja ja täsmäytyksiä dokumenttityyppien välillä
- Vektoritietokanta: Milvus dokumenttien palojen ja taulukon rivien semanttiseen indeksointiin
- LLM-kerros: Monimallinen lähestymistapa funktionkutsuilla
- Backend: Python/FastAPI dokumenttien käsittelyyn ja agenttien orkestrointiin
- Frontend: React-hallintapaneeli tiedostojen latauksella, chat-käyttöliittymällä ja reaaliaikaisella taulukon esikatselulla
- Tallennustila: S3 alkuperäisille tiedostoille, PostgreSQL metadatalle ja työjonon seurannalle
Moniagenttiarkkitehtuuri
Agenttien roolit
1. OrkestraattoriagenttiKeskitetty koordinaattori, joka vastaanottaa käyttäjien kyselyjä, hajottaa ne alitehtäviin ja delegoi erikoistuneille agenteille. Se analysoi käyttäjän tarkoituksen, luo suoritussuunnitelmia, hallinnoi tiedonkulkua agenttien välillä, kokoaa tuloksia ja hoitaa virheenpalautuksen.
2. TaulukkoagenttiErikoistunut taulukkodataoperaatioihin, mukaan lukien skeeman ymmärtäminen, luonnollisen kielen muuntaminen kyselyiksi, aggregoinnit ja suodatukset, kaavojen luominen, solujen muokkaus ja sarakkeiden täyttö, kaavioehdotukset sekä datan validointi/poikkeamien havaitseminen.
3. DokumenttiagenttiErikoistunut jäsentämättömiin ja puolijäsenneltyihin dokumentteihin, mukaan lukien OCR ja asettelun huomioiva tekstin poiminta, osioiden tunnistaminen, avain-arvo-poiminta sopimuksista, yhteenveto, semanttinen lausekehaku sekä taulukoiden poiminta PDF:istä/Word-dokumenteista.
4. RistiviittausagenttiErikoistunut monidokumenttipäättelyyn, mukaan lukien entiteettien täsmäytys dokumenttien välillä, datan täsmäytys ja eroavaisuuksien tunnistus, aikajanaanalyysi, ristiriitaisen datan riippuvuuksien ratkaisu sekä SQL-tyyppiset liitosoperaatiot dokumenttityyppien välillä.
Vektoritietokantakerros
Miksi vektoritietokanta dokumenteille
Suuret dokumentit ja taulukot eivät mahdu yhteen LLM-konteksti-ikkunaan. Vektoritietokanta mahdollistaa semanttisen haun miljoonista riveistä ja dokumenttipaloista, vain relevanttien osien haun kyselyä kohden, dokumenttienvälisen entiteettilinkityksen upotuksen samankaltaisuuden avulla sekä pysyvän indeksoinnin, joka ei vaadi uudelleenkäsittelyä jokaisella kyselyllä.
Indeksointistrategia
Taulukoiden indeksointi:Jokainen rivi muunnetaan luonnollisen kielen esitykseksi yhdistämällä avainsarakkeiden arvot, minkä jälkeen se upotetaan ja tallennetaan viittauksilla takaisin alkuperäiseen tiedostoon, taulukkoon ja rivi-indeksiin takaisinkirjoitusoperaatioita varten.
Dokumenttien indeksointi:Dokumentit poimitaan asettelun huomioiden, jaetaan semanttisiin palasiin päällekkäisyyksin, upotetaan ja tallennetaan viittauksilla lähdetiedostoon, osioon ja sivunumeroon.
Dokumenttienvälinen entiteetti-indeksi:Erillinen indeksi linkittää entiteettejä (myyjiä, tuotteita, henkilöitä, laskunumeroita) dokumenttien välillä, mahdollistaen ristiviittauskyselyt löytämään nopeasti kaikki entiteetin maininnat lähdetiedostosta riippumatta.
Noutoputki
Kun käyttäjä esittää dokumenttienvälisen kysymyksen, orkestraattori tunnistaa tarvittavat dokumentit ja agentit, suorittaa vektorihakuja löytääkseen relevanttia dataa kaikista lähteistä, delegoi erikoistuneille agenteille käsittelyä varten ja kokoaa tulokset yhtenäiseksi vastaukseksi.
Orkestrointimoottori
Kyselyn hajottaminen
Orkestraattori hajottaa monimutkaiset kyselyt monivaiheisiksi suoritussuunnitelmiksi. Esimerkiksi kysymys kuten "Etsi myyjät, joilla on myöhästyneitä toimituksia, tarkista sopimussanktiolausekkeet ja laske vaadittavat sakot" hajoitettaisiin peräkkäisiin vaiheisiin: kysymällä toimitustietoja Spreadsheet Agentin kautta, etsimällä sopimuksia Document Agentin kautta ja yhdistämällä tulokset Cross-Reference Agentin kautta.
Agenttien välinen viestintä
- Agentit kommunikoivat strukturoitujen viestien kautta tyypitetyillä tietosisällöillä
- Orkestraattori ylläpitää suorituskontekstia välitulosten kanssa
- Epäonnistuneet vaiheet laukaisevat uudelleenyritys- tai varastrategioita
- Osittaisia tuloksia palautetaan, jos jotkin vaiheet valmistuvat mutta toiset epäonnistuvat
Taulukon muokkaus ja takaisinkirjoitus
Muokkausominaisuudet
Alusta tukee solujen päivityksiä, sarakkeiden täyttöjä, rivien lisäystä, ehdollista muotoilua, uusien taulukoiden luomista ja kaavojen syöttämistä – kaikki AI-agenttien ehdottamia ja käyttäjän hyväksynnällä sovellettavia.
Takaisinkirjoitusputki
- Agentti määrittää muokkaustoiminnon (mitkä solut, mitkä arvot)
- Muokkausesikatselu näytetään käyttäjälle eroavaisuudet korostaen (vanhat vs. uudet arvot)
- Käyttäjä hyväksyy tai muokkaa ehdotettuja muutoksia
- Backend soveltaa muutokset tiedostoon käyttäen kullekin formaatille sopivia kirjastoja
- Muokattu tiedosto tallennetaan uutena versiona muokkausjäljen kanssa
- Vektori-indeksi päivitetään muutetuille riveille
Versiohallinta
- Jokainen muokkaus luo uuden tiedostoversion (alkuperäinen säilytetään)
- Erovertailuloki näyttää tarkalleen, mitä muuttui, milloin ja miksi
- Palaa mihin tahansa edelliseen versioon yhdellä napsautuksella
- Muokkausten attribuutio: mikä agentti tai käyttäjä teki kunkin muutoksen
Uusien dokumenttien käsittelyputki
Tiedoston latausvirta
- Käyttäjä lataa tiedostoja (drag-and-drop tai API)
- Tiedostotyyppi tunnistetaan ja reititetään sopivalle käsittelijälle
- Taulukot: Jäsennetty, skeema päätelty, rivit upotettu ja indeksoitu
- PDF:t: OCR (jos skannattu) → asettelun poiminta → pilkkominen → upotus → indeksointi
- Word-dokumentit: Tekstin poiminta → osioiden jäsennyksellä → pilkkominen → upotus → indeksointi
- Entiteettien poiminta: NER tunnistaa henkilöt, organisaatiot, päivämäärät, summat kaikista dokumenteista
- Dokumenttienvälinen linkitys: Entiteetti-indeksi päivitetään uusilla maininnoilla
- Tiedoston metadata tallennetaan PostgreSQL:ään, upotukset vektoritietokantaan, alkuperäiset S3:een
Tuetut formaatit
Alusta tukee Exceliä, CSV:tä ja Google Sheetsiä (täydellä takaisinkirjoituksella), natiiveja ja skannattuja PDF:iä (vain luku) sekä Word-dokumentteja ja Google Docsia (rajallisella takaisinkirjoituksella).
Tärkeimmät ominaisuudet
- Moniagenttiarkkitehtuuri — Erikoistuneita agentteja taulukoille, dokumenteille ja ristiviittaukselle
- AI-orkestraattori — Hajottaa monimutkaiset kyselyt monivaiheisiksi suoritussuunnitelmiksi
- Dokumenttienvälinen viittaus — Entiteettien linkitys ja datan täsmäytys tiedostotyyppien välillä
- Vektoripohjainen haku — Semanttinen haku käsittelee tietokokonaisuuksia LLM-kontekstirajojen ulkopuolella
- Taulukon takaisinkirjoitus — AI muokkaa soluja, täyttää sarakkeita ja syöttää kaavoja käyttäjän hyväksynnällä
- Suurten tietokokonaisuuksien tuki — Yli 50 000 rivin taulukot indeksoitu ja kyseltävissä vektorihakun kautta
- Versiohallinta — Jokainen muokkaus versioitu erovertailulokilla ja palautusominaisuudella
- Luonnollisen kielen kyselyt — Esitä monimutkaisia analyyttisiä kysymyksiä selkeällä englannilla
- Monimuototuki — Excel, CSV, Google Sheets, PDF, Word, Google Docs
- Muokkausesikatselu — Eroja korostava esikatselu ennen muutosten soveltamista
Tulokset
Teknologiapino
caseStudyDetail.more Tapaustutkimukset
Tutustu lisää teknisiin toteutuksiimme
Paikallinen RAG-dokumenttijärjestelmä hybridihauilla ja monimuototuella
Kehittäjätyökaluja rakentava tiimi tarvitsi täysin paikallisen, yksityisyyden säilyttävän dokumenttitiedustelujärjestelmän, joka kykenisi vastaanottamaan useita tiedostomuotoja, rakentamaan haettavissa olevia tietopohjia ja vastaamaan luonnollisen kielen kyselyihin hyödyntäen Retrieval-Augmented Generation (RAG) -menetelmää — lähettämättä mitään tietoja ulkoisille API:ille.
AI-pohjainen laskujen käsittely OCR:n ja QuickBooks-integraation avulla
Keskisuuri yritys, joka käsitteli satoja toimittajalaskuja kuukausittain, halusi poistaa manuaalisen tiedonsyötön poimimalla laskutiedot automaattisesti AI/OCR:n avulla ja synkronoimalla ne suoraan QuickBooks-järjestelmään kirjanpitoa ja maksujen seurantaa varten.
Valmis Muuttamaan Liiketoimintaasi?
Keskustellaan siitä, miten voimme soveltaa vastaavia ratkaisuja haasteisiisi.