Галоўная / Артыкулы

Практычныя адпаведзіць на запытанні ў фармаце PDF пра Azure AI Search і агентаў Foundry

Зробіце індэкс прыватных курсоў у фармаце PDF з вбудованымі элементамі, падключыце агента Foundry да векторнага індэксу, а таксама вылечыце проблемы з автаналізам і інструкціямі, якія спрабоўваюць зробіць RAG нефункцыональным.

Выдавец: REACTAPP.TOP9 хв чытання2147 слоў

Крыніцы: Building a Grounded RAG Agent on Azure AI Search and Azure AI Foundry

Вступ

Арганізацыя, якая займаецца навчанням у галузі цыфровой крыміналістыкі, распаўляеся на гады PDF-матэрыялаў — слайды, практычныя задачы, рэфератывныя раздзелы. Аналітыкам патрэбна адна концэпцыя, якая ўтрымліваецца ў дзесятках такіх матэрыялаў. Пошук ключоўых слоў у розрозненых файлах ёсць повольным і ненадзеяным. Неабходны продукт — цэ фармацыія запытаў і адказаў на простай мове, якія даходзяць з тых матэрыялаў, а не перафразаваныя загальныя підручнікі.

Гэта і ёсць прырода тэхналогіі RAG: выкарыстоўваецца адзінавочныя фрагменты з прыватнага набору дакументаў для стварэння адказаў. Шырокі спектар можлівасцей рэалізуецца на платформе Azure — Azure AI Search індэксуе рэальныя PDF-файлы з включаннямі дадзеных, а таксама агент Azure AI Foundry дае адказы на базе гэтага індэксу, а не на адвальгенарныя знанні.

Гэта таксама стала частым аспектам выклікання проблем. Практычна нічога не зламвалася праз тое, што ідэя была некорэктная; проблемы выклікаліся маленькімі несувярэнносцямі між рэсурсамі, мадэлямі аўтэнтыфікацыі і стандартной працёй агента. Гэтыя моменты трохкіх несувярэнностэй фіксуюцца, а не усунуцца.

Розумеўце архітэктуры

Чатыры службы Azure адпавядаюць за чатыры заведамення.

Blob Storage храніць вачоўныя дакументы — у гэтым случае PDF-файлы для форэнзікі; будзь-які корпус дакументаў з прыватнага домэна паслужыць за аналогічны прыклад.

Azure AI Search індэксуе і выкарыстоўвае дакументы. Сістэма раздзеляе дакументы на часткі, запускае мадэль укладання і храніць тэкст адносова з вектарамі. Пад час запіту сістэма вяртае семантычна падобныя часткі, а не толькі дакументы з падходзячымі ключавымі словамі.

Azure AI Foundry размешчае модэлі і агента: рэалізацыю для вектарайзацыі індэкса/запыткаў у віглядзе эмбедынгаў і рэалізацыю для чату для адпаведзенняў. Агент абгортае модэль чату, дадаючы ёй істочнік знаёмых і інструкцыі.

Управляемая айдэнтыка і RBAC кантролюе, хто можа выконваць запыткі і над чым. З’яўленні звязку (Search→Blob, Search→embeddings, agent→index) должны вялікай меры выкарыстоўваць ролі з адмежаваннем, а не вбудованыя клучы. У гэтым варыянце не было досягнуто ўсёж кантролю без клучаў; гэтыя недастаткі паказаны ніжэй.

Першы этап: даследныя дакументы

Прыватны контэйнер blob (knowledge-docs) прымеў PDF-файлы курсу. Даступ заставался прыватным — без анонімнага чытання — што супарадна з адносам да матэрыялаў як до чутлівых.

Другі этап: рэалізацыя модэляў у Azure AI Foundry

Две рэалізацыі ўнутрь праекту Foundry:

  • Chat (chat-deploy) для адпаведзенняў
  • Эмбеддынгі (embed-deploy, text-embedding-3-small) для вектараў дакументаў і запытанняў
  • Паказваце, чы ўсе яны існуюць, пры налажванні навыкаў або агентаў пошуку; ў разе відсутнасці неабходных розгортанняў пазней выйдуць незрозумелыя бяды з індэксаванням.

    Трэці ўрадок: Azure AI Search і вектарны індэкс

    Створыце службу пошуку, а пасля — індэкс, у яком полы будуць містыць тэкставыя фрагменты, вектары і метаданы дакументаў. Прыўяжыце навык, які:

    1. Зямлеўвае блобы з knowledge-docs
    2. Раздзеляе іх на перакрываючыяся фрагменты
    3. Выклікае розгортання эмбеддынгу
    4. Запісвае вектары ў індэкс

    Індэксавальнікам патрэбны правыя на чытанне блобаў і выкліканне канцэнтраў эмбеддынгу. Назначэння ролей, якія здаюцца “па-майстру”, пры рэальнай працы таксама не будуць работаць — пераканайцеся ў точных ID рысак.

    Web Api response status: 'NotFound'
    DeploymentNotFound: The API deployment for this resource does not exist.
    
    Web Api response status: 'Unauthorized' (401)
    Access denied due to invalid subscription key or wrong API endpoint.
    
    Access denied when connecting to the MCP server ... HTTP 403 Forbidden
    
    You are an assistant that answers questions about digital forensics course material.
    For every user question, you MUST first search the connected knowledge base before answering.
    Only answer using information retrieved from the knowledge base.
    If the knowledge base returns no relevant results, say so explicitly rather than answering from general knowledge.
    

    Чэтвёрты ўрадок: адказы пад час стварэння індэксаў і ўсё, што яны значаць

    Стварэнне індэксаў рэдка калі збываецца з-за адной яснай прычыны. Частыя формы такіх адказаў:

    • Немагчыма дасягнуць рэалізацыі элемента embedding (неправільны аутэнтыфікацыйны працэс або некарэктны канец-пункт)
    • План выканання індэксатора працюе, але дакументы застаюцца без змян (некарэктны шлях у контэйнеры або неправільная ссылка на набор навыкоў)
    • Вектары запішываюцца з некорэктнымі размерамі (несувярэннасць мадэлі ў спецыфікацыі індэкса і рэалізацыі)

    Кожны такі адказ трэба спрацавваць як баг у налаштаваннях, а не як адказ, выніклы з проблемы концэпцыі RAG. Зберагаюце історыю выканання індэксатора прычым, перш чым зменіце тры налаштаванні адразу.

    Пяты ўрадок: падключэнне індэкса да агента

    У Foundry неабяжна прыкрэпіць індэкс пошуку як джэрага ведамасці для агента. Інструкцыі павінны вымагаць цытавання знайдзеных фрагментоў і адмовы, калі індэкс не вяртае нічога рэлевантнага. Апрабавайце з пытанням, калі адказ існуе толькі на адной сторанцы PDF — успех означае падкрэплены цітат, а не проста здагадка.

    Шасцяты этап: два проблемы ў поведэнцыі

    Па-за налашоўкамі выявіліся двы проблемы ў поведэнцыі:

    1. Чрэзмерна адказныя альтэрнатывы — мадэль чата адказвала на базе пярэйшых ведамасцей, калі рэзультаты пошуку былі порожнія. Павышайце строгасць інструкцый і, калі гэта можліва, пераканальвайце контроль падкрэпленасці, каб порожнія рэзультаты вярталі паведамленне «нет у корпусе».
    2. Нестаціонарна аўтэнтыфікацыя — дзеяныя лінкі ўсё яшчэ выкарыстоўвалі ключы, тады калі іншыя — кераваныя ідэнтыфікаторы. Сумешаная аўтэнтыфікацыя ускладняе зміны і маскіруе тое, які прынцыпал насправдзе дасягў успеху.

    Ні тое, ні іншэ не ўяўляюць сабою пункты на спісе для перавяркі; оба ўскладненыя рашэння па адпрацоўкі продукту, якія зафіксаваны ў інструкцыях і дызайне ідэентычнасці.

    Што на самай працы вядзецца за кулісамі

    Упыт корыстніка ўбудовваецца, сістэма пошуку вяртае найболей значныя часткі інфармацыі, прыказ агента отрымвае гэтыя часткі плюс інструкцыі, а мадэль чату генеруе адпаведны адказ, які (в ідэале) ўзгадвае гэты кантэкст. Сховішча даных ніколі не вяртаюцца безпосерэдна да агента; пошук выступае як межа для адзыскання інфармацыі. Foundry выступае як срэдства для коордынаціі і хостування модэляў.

    Вызовы і урокі, якія былі вывучаны

    • Перад стварэнням рысаў неабходна пераканацца ў наявнасці рэгіону і модэля.
    • Размеры эмбедынгу ў схеме індэкса павінны абоўязкова зусім падходзіць да выбранага модэля эмбедынгу.
    • Пры канфліктах RBAC індэксы выглядаюць як порожнія, пакуль не будуць прачытаны дэталі індэксатора.
    • Інструкцыі для агента ёсць часткай правільнасці працы, а не проста дэкоратывным элементам.
  • Запісаўце дакументацыю пра мадэль аўтэнтыфікацыі, якая фактычна была выкорыстана, уключаючы тымчасовыя ключы.
  • Галоўныя выводы

    Azure RAG — гэта ланцюг маленькіх контрактов: прыватнасць блобаў, правыя на вставку навыкаў, схема індэксу↔выміры мадэлі, прыўязка знанняў агента і політыка формування адпаведных адказаў. Калі ўсе гэта правільна налаштавана, архітэктура будзе простая — і гэта ў хорашым сенсе. Калі працягнуць хоць адна дзеўайну, даведзецца гадзінамі раскладваць проблему, думаючы, што “RAG не працуюе”.

    Практычны патэнт: трывожце однастороннюю інструкцыю, у якой будуць пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы керавання або ключы, якія вікорыстовуюцца на кожным этапе. Калі індэксавальны прыстрой зламаецца о 02:00, гэтая інструкцыя дапаможае быстрэйша з’ясаваць прычыну, чым скрыншоты з порталу. Дадзіце тыдзенну задачу, якая ставіць тры ключовыя запітанні, на якія адпаведзі ўжо існуюць на вядомых сторунках, і якая блокуе працэс будовы, калі рэгрэссуюць крытэрыя адпаведнасі.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведзенні на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведзенні на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы рукі, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з порталу. Таксама трэба стварыць ўтрохні завод, які ставя тры ключовыя запітання, на якія ёсць адпаведныя адказы на вядомых старонках, і які блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы суворыя ключы, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з портала. Таксама трэба стварыць ўсё тыя ж адной стороне задачу, якая ставі тры ключовыя запітанні, на якія ёсць адпаведныя адказы на вядомых старонках, і якая блокуе працэс будовы, калі стабільнасьць падае.

    Практычны савет: трэба зберагаць кнігу інструкцый на адной стороне, у якой пераказаны точныя назвы рэсурсаў, назвы развёртанняў (не назвы базовых модэляў), назва індэксу, назва набора навыкаў, а таксама ідэнтыфікаторы чы суворыя ключы, якія вікорыстоўваюцца на кожным этапе. Калі індэксавальны прыстрой не заработае о 02:00, гэтая старонка дапамагае у рашэнні проблемы за допамогою скрыншотаў з портала. Таксама трэба стварыць ўсё тыя ж адной стороне задачу, якая ставі тры ключовыя запітанні, на якія ёсць адпаведныя адказы на вядомых старонках, і якая блокуе працэс будовы, калі стабільнасьць падае.