Az Azure AI-dokumentumintelligencia-szolgáltatással bővített generáció lekérése
Ez a tartalom a következőre vonatkozik: 4.0-s verzió (előzetes verzió)
Bevezetés
A Retrieveal-Augmented Generation (RAG) egy olyan tervezési minta, amely egy előre betanított nagy nyelvi modellt (LLM) kombinál, például a ChatGPT-t egy külső adatlekérési rendszerrel, hogy továbbfejlesztett választ hozzon létre, amely az eredeti betanítási adatokon kívül új adatokat tartalmaz. Az alkalmazásokhoz adatlekérdezési rendszer hozzáadásával cseveghet a dokumentumaival, magával ragadó tartalmakat hozhat létre, és hozzáférhet az AdatokHoz készült Azure OpenAI-modellekhez. A válasz megfogalmazása során az LLM által használt adatokat is jobban szabályozhatja.
A Dokumentumintelligencia-elrendezés modell egy fejlett gépi tanuláson alapuló dokumentumelemzési API. Az elrendezési modell átfogó megoldást kínál a speciális tartalomkinyerési és dokumentumstruktúra-elemzési képességekhez. Az Elrendezés modellel egyszerűen kinyerheti a szöveget és a szerkezeti elemeket, így a nagyméretű szövegtörzseket a szemantikai tartalom alapján kisebb, jelentéssel bíró adattömbökre oszthatja, nem pedig tetszőleges felosztásokra. A kinyert információk kényelmesen kiadhatók Markdown formátumban, így a szemantikai adattömb-stratégiát a megadott építőelemek alapján határozhatja meg.
Szemantikai adattömb
A hosszú mondatok kihívást jelentenek a természetes nyelvi feldolgozás (NLP) alkalmazások számára. Különösen akkor, ha több záradékból, összetett főnévből vagy igekifejezésből, relatív záradékból és zárójeles csoportosításból állnak. Az emberi beholderhez hasonlóan az NLP-rendszernek is sikeresen nyomon kell követnie az összes bemutatott függőséget. A szemantikai adattömbök célja egy mondatábrázolás szemantikailag koherens töredékeinek megkeresése. Ezek a töredékek ezután egymástól függetlenül feldolgozhatók, és szemantikai ábrázolásokként újrakombináltak anélkül, hogy információvesztést, értelmezést vagy szemantikai relevanciát veszítenének. A szöveg eredendő jelentését az adattömb-feldolgozási folyamat útmutatójaként használjuk.
A szöveges adattömbkezelési stratégiák kulcsszerepet játszanak a RAG-válasz és a teljesítmény optimalizálásában. A rögzített méretű és szemantikai két különböző adattömbelési módszer:
Rögzített méretű adattömb. A RAG-ban ma használt adattömb-stratégiák többsége fix méretű, adattömböknek nevezett szövegszegmenseken alapul. A rögzített méretű adattömbök gyors, egyszerű és hatékonyak olyan szövegekkel, amelyek nem rendelkeznek erős szemantikai szerkezettel, például naplókkal és adatokkal. A szemantikai megértést és pontos kontextust igénylő szövegek esetében azonban nem ajánlott. Az ablak rögzített méretű jellege a szavak, mondatok vagy bekezdések elválasztását eredményezheti, ami a megértést és az információáramlás és a megértés megzavarását eredményezheti.
Szemantikai adattömb. Ez a módszer a szemantikai megértés alapján adattömbökre osztja a szöveget. Az osztáshatárok a mondat tárgyára összpontosítanak, és jelentős számítási algoritmusokkal összetett erőforrásokat használnak. Az egyes adattömbök szemantikai konzisztenciájának fenntartása azonban külön előnye. Hasznos szövegösszesítési, hangulatelemzési és dokumentumbesorolási feladatokhoz.
Szemantikai adattömbelés dokumentumintelligencia-elrendezési modellel
A Markdown egy strukturált és formázott korrektúranyelv, és népszerű bemenet a szemantikai adattömbölés engedélyezéséhez a RAG-ban (Retrieveal-Augmented Generation). Az Elrendezési modell Markdown-tartalmának használatával bekezdéshatárok alapján oszthat fel dokumentumokat, konkrét adattömböket hozhat létre táblákhoz, és finomhangolhatja az adattömb-stratégiát a generált válaszok minőségének javítása érdekében.
Az Elrendezési modell használatának előnyei
Egyszerűsített feldolgozás. Egyetlen API-hívással elemezhet különböző dokumentumtípusokat, például digitális és beolvasott PDF-fájlokat, képeket, office-fájlokat (docx, xlsx, pptx) és HTML-fájlokat.
Méretezhetőség és AI-minőség. Az elrendezési modell nagy mértékben méretezhető az optikai karakterfelismerés (OCR), a táblák kinyerése és a dokumentumstruktúra elemzése során. 309 nyomtatott és 12 kézzel írt nyelvet támogat, így tovább biztosítja az AI-képességek által vezérelt kiváló minőségű eredményeket.
Nagy nyelvi modell (LLM) kompatibilitása. Az elrendezési modell Markdown formátumú kimenete LLM-barát, és megkönnyíti a munkafolyamatokba való zökkenőmentes integrációt. A dokumentum bármely tábláját Markdown formátumúvá alakíthatja, és elkerülheti a dokumentumok alapos elemzését a jobb LLM-megértés érdekében.
A Document Intelligence Studióval feldolgozott szövegkép és a MarkDown-kimenet elrendezési modellel
A Document Intelligence Studióval feldolgozott táblázatkép elrendezési modellel
Első lépések
A Dokumentumintelligencia-elrendezés 2024-07-31-preview és 2023-10-31 előzetes verziója a következő fejlesztési lehetőségeket támogatja:
Készen áll a kezdésre?
Document Intelligence Studio
Az első lépésekhez kövesse a Document Intelligence Studio rövid útmutatóját . Ezután integrálhatja a Dokumentumintelligencia-funkciókat a saját alkalmazásával a megadott mintakód használatával.
Kezdje az elrendezési modellel. A RAG stúdióban való használatához a következő elemzési beállításokat kell kiválasztania:
**Required**
- Az aktuális dokumentum → elemzési tartomány futtatása.
- Az oldaltartomány → az összes lapot.
- A kimeneti formátum stílusa → Markdown.
**Optional**
- A megfelelő opcionális észlelési paramétereket is kiválaszthatja.
Válassza a Mentés lehetőséget.
A kimenet megtekintéséhez válassza az Elemzés futtatása gombot.
SDK vagy REST API
Kövesse a Dokumentumintelligencia rövid útmutatóját az előnyben részesített programozási nyelv SDK-hoz vagy REST API-hoz. Az Elrendezési modell használatával kinyerheti a dokumentum tartalmát és struktúráját.
A GitHub-adattárakban kódmintákat és tippeket is találhat a dokumentumok Markdown kimeneti formátumban való elemzéséhez.
Dokumentumcsevegés készítése szemantikai adattömbdel
Az adatokon futó Azure OpenAI lehetővé teszi a támogatott csevegések futtatását a dokumentumokon. Az adatokon futó Azure OpenAI a dokumentumintelligencia-elrendezési modellt alkalmazza a dokumentumadatok kinyerésére és elemzésére hosszú szövegek táblázatok és bekezdések alapján történő darabolásával. Az adattömb-stratégiát a GitHub-adattárban található Azure OpenAI-mintaszkriptekkel is testre szabhatja.
Az Azure AI Document Intelligence mostantól integrálva van a LangChainnel a dokumentumbetöltők egyikeként. Segítségével egyszerűen betöltheti az adatokat és a kimenetet Markdown-formátumba. További információkért tekintse meg a RAG-minta egyszerű demóját bemutató mintakódunkat, amely az Azure AI Document Intelligencet dokumentumbetöltőként, az Azure Search-t pedig lekérőként mutatja be a LangChainben.
Az adatmegoldásgyorsító kódmintájával folytatott csevegés egy végpontok közötti alapkonfigurációs RAG-mintát mutat be. Az Azure AI Search-t használja lekérőként és Azure AI-dokumentumintelligenciaként a dokumentumok betöltéséhez és szemantikai adattömbhöz.
Használati eset
Ha egy dokumentum egy adott szakaszát keresi, szemantikai adattömbök használatával kisebb adattömbökre oszthatja a dokumentumot a szakaszfejlécek alapján, így gyorsan és egyszerűen megtalálhatja a keresett szakaszt:
# Using SDK targeting 2024-02-29-preview or 2023-10-31-preview, make sure your resource is in one of these regions: East US, West US2, West Europe
# pip install azure-ai-documentintelligence==1.0.0b1
# pip install langchain langchain-community azure-ai-documentintelligence
from azure.ai.documentintelligence import DocumentIntelligenceClient
endpoint = "https://<my-custom-subdomain>.cognitiveservices.azure.com/"
key = "<api_key>"
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader
from langchain.text_splitter import MarkdownHeaderTextSplitter
# Initiate Azure AI Document Intelligence to load the document. You can either specify file_path or url_path to load the document.
loader = AzureAIDocumentIntelligenceLoader(file_path="<path to your file>", api_key = key, api_endpoint = endpoint, api_model="prebuilt-layout")
docs = loader.load()
# Split the document into chunks base on markdown headers.
headers_to_split_on = [
("#", "Header 1"),
("##", "Header 2"),
("###", "Header 3"),
]
text_splitter = MarkdownHeaderTextSplitter(headers_to_split_on=headers_to_split_on)
docs_string = docs[0].page_content
splits = text_splitter.split_text(docs_string)
splits
Következő lépések
További információ az Azure AI-dokumentumintelligencia-szolgáltatásról.
Megtudhatja, hogyan dolgozhatja fel saját űrlapjait és dokumentumait a Document Intelligence Studióval.
Végezze el a Dokumentumintelligencia rövid útmutatóját , és kezdje el létrehozni egy dokumentumfeldolgozó alkalmazást a választott fejlesztési nyelven.