Галоўная / Артыкулы / Даўам додатковае рашэнне aiextract: стваранне аднацелага каналу RAG з трыма элементамі

Даўам додатковае рашэнне aiextract: стваранне аднацелага каналу RAG з трыма элементамі

Практычныя інструкцыі па дадзенню аддыну aiextract: стварэнне едынай лініі RAG з трыма элементамі — кантрактамі, перакрыццямі та слотамі для коду, якія будуць корыстныя для команд, якія викорыстоўваюць гэты патэрн.

1776 слоў

Існавайце гэта як перапрацоўаны варыянт ідэй з артыкула «Дадаць ai_extract да сумеснай працы: стварэнне аднароднага каналу RAG з трыма функціямі Databricks SQL AI» для працавальнікаў: чыстыя этапы, арранжаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы задання. Этап «Агульны аптымат» найэфективнейша працюе, калі яго спрыяваць як меркаваную плошчу. Запісаце адну ідеальную транскрыпцыю, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычым расшырэнню масштаба. Спрыяце гэты этап як кантракт між вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падтрымвайце беззвучнае частковае завершэння задання.

Чаму метаданные маюць большое значэнне, чым здаецца

У стадії, калі «Чаму» мета-даныя маюць большое значэнне», перад зменым коду неабяжна вызначыць інпуты, адпаведальнага за крок і критэрыі завершэння. Аператары должны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Запісваць трэба час выконання і кост токена або запыту разам з функцыйнальнымі рэзултатамі. Відразы коста з самага пачатку запобегае неспакоўным рахункам, калі процес пераходзіць з дэмовай среды ў спяльнаныя сераўеры. Неабяжна цітаваць тыя часткі тексту, якія фактычна сталі падставай для адпаведнай адказы. Без цітатаў аператары не можуць разлічыць галюцинацію ад прасоў у індэксаванні.

Што на самай працэ функцыі

Для кожнага з трох падзеў функцыі, перш чым зменяць код, неабходна визначыць вхідныя даны, адпаведальнага за шаг і критэрыя завершэння. Аператары должны магчымае перзапускать шаг з вядомай точкі контролю, не прабуючы спадарацца прыватны стан. Конфігурацыю трэба залічыць паза кодам прыемлі. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, якое аператары можаць пераглядаць, не чытаяўшы весь ланцуг. Паказваць трэба тыя часткі тексту, якія фактычна лежалі в основе адпаведнай адказы. Без цых цітатаў аператары не можаць розразліць галюцинацію ад прычыны, зв’язанай з недастаткам індэксацыі.

Ланцуг обробкі, шаг за шагам

Для кожнага этапу пайплайна неабяжно з’явіць вхідныя даны, адміністратара этапу і крэтырыя для завершэння пры зміне коду. Аператары должны магчымаць перзапуск этапу з вядомай точкі контролю, не спрабоўваючы здогадвацца пра схованы стан. Неабяжна задокументаваць як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Паказваць часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цитатаў аператары не можуць розразліць галюцинацію ад прычын, зв’язаных з недастаткам індэксацыі. Для кожнага этапу пайплайна неабяжно з’явіць вхідныя даны, адміністратара этапу і крэтырыя для завершэння пры зміне коду. Аператары должны магчымаць перзапуск этапу з вядомай точкі контролю, не спрабоўваючы здагадвацца пра схованы стан. Спрыяць гэтаму этапу як кантракту межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Даць назвы артыфактам, з’явіць перакрыцці успеху і адмовіцца ад беззвучнага частковага завершэння.

Шаг 1: Аналіз дакументаў

Калі працюеце над шагам 1 «Аналіз дакументаў», спачатку запішыце умовы контракту: неабходныя даны, сігнал успеху і тое, што выканаецца у разы частковага невясковасці. Такі список пераканаецца дапамагае залічваць змяны ў кодзе. Запісвайце час выканання і вартасьць токеноў або запытаў праза функцыйнае рэзультат. Відразлівасьць вартасцей з самага пачатку запобегае неспакойным рахункам, калі праця пераходзіць з дэмаверсіі ў спакульнаныя сераўысы. Перад налаштаванням запрошэнняў пераканайце роботу системы на фіксаваныя наборы запытаў. Частае змінэнне запрошэнняў рэдка калі-небудзь вылечвае слабую эфектыўнасьць пошуку.

SELECT
  path,
  ai_parse_document(
    content,
    MAP('version', '2.0')
  ) AS parsed
FROM READ_FILES(
  '/Volumes/<YOUR_CATALOG>/<YOUR_SCHEMA>/orion_docs/',
  format => 'binaryFile'
)

Шаг 2: Выяўленне структураваных метаданных за дапамогою ai_extract v2.1

Калі працуеце над стадзіяй «Выкарыстоўваць структураваны дадзеныя», спачатку запісайце угоду: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковага нявыполнення. Такі список контроля дапамагае заліцвачыць змяны ў кодзе пазнейша. Зберагайце настройкі за межамі коду прыемліка. Файлы сераўіса, хранільнікі секрэтных дадзеных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаюць адбавіць аудыт без неабяжнага чытання всіх элементаў. Перад налаштаваннем запитоў пераканайцеся ў рівні воспамінання на фіксаванай сэтцы запитаў. Частая зміна запитоў рэдка калі вярнуе слабкія результаты пошуку.

WITH parsed_documents AS (
  SELECT path, ai_parse_document(content, MAP('version', '2.0')) AS parsed
  FROM READ_FILES('/Volumes/<YOUR_CATALOG>/<YOUR_SCHEMA>/orion_docs/', format => 'binaryFile')
)
SELECT
  path,
  ai_extract(
    parsed,
    '{
      "document_title":  {"type": "string", "description": "Main title or heading of the document"},
      "document_type":   {"type": "enum", "labels": ["manual", "datasheet", "guide", "report", "specification", "policy", "other"]},
      "product_name":    {"type": "string", "description": "Primary product or system referenced"},
      "version":         {"type": "string", "description": "Document or product version if mentioned"},
      "key_topics":      {"type": "array", "items": {"type": "string"}},
      "target_audience": {"type": "enum", "labels": ["engineer", "operator", "manager", "customer", "general"]}
    }',
    MAP(
      'version', '2.1',
      'instructions', 'These are technical documents from Orion Robotics. Extract metadata that would help users filter and find relevant documents.'
    )
  ) AS metadata
FROM parsed_documents

Шаг 3: Падготавіць семантычныя фрагменты за дапамогою ai_prep_search()

Калі працуеце над трэцім крокам – стадзіяю падготовкі сэмантычных данных, спачатку запісайце «контракт»: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць пад часты няудача. Такі чэк-ліст дапамагае заставіць пазнейшыя змены коду быць чыстымі. Документавайце як шлях успеху, так і шлях вярнення да нормы. Перапрыбуткі, людзкія контраліны і обработка некоректных паведамленняў ёсць частью продукту, а не пазнейшым дапрацоўкам. Перад налаштаваннем запитаў пераканайцеся ў рэгулярнасці адпаведзенняў на фіксованы набор запитаў. Змены запитоў рэдка калі вярнуюць хорашую якасць адпаведзенняў.

WITH parsed_documents AS ( ... )
SELECT
  path,
  ai_prep_search(parsed) AS chunked
FROM parsed_documents

Калі працуеце над трэцім крокам – стадзіяю падготовкі сэмантычных данных, спачатку запісайце «контракт»: неабяжлівыя даннэ, сігнал успеху і тое, што выходзіць пад часты няудача. Такі чэк-ліст дапамагае заставіць пазнейшыя змены коду быць чыстымі. Спрэтавайцеся да гэтай стадзіі як да контракту межа даннемі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаць тэсты на успех і адмовіцеся ад мовчанкавага частковага завершэння задачы.

Крок 4: Аб’яднанне метаданных і частакаў у аднойчы выходны результат

Этап аб’яднання метаданных у Кроце 4 працюе найэфектывней, калі яго розглядаць як параметр, які можна змерыць. Запісаўце адну ідеальную транскрыпцыю, адзін прыклад неудачы і прыметку па поверненню да пачатковага стану пры расшырэнні масштаба. Запісвайце часы виконання і косты токенавання або запита разам з функцыональнымі рэзультатамі. Відразлівае паказанне костаў з’являецца перашкоду неспакою, калі процес пераходзіць з дэмовай среды ў спакульную. Раздзеляйце правілы часткавання і правілы выкарыстоўвання дадзеных. Змена аднаго з іх не павінна вымагаць перапісвы другога, калі зменяюцца показнікі якосці.

WITH parsed_documents AS (
  SELECT path, ai_parse_document(content, MAP('version', '2.0')) AS parsed
  FROM READ_FILES('/Volumes/<YOUR_CATALOG>/<YOUR_SCHEMA>/orion_docs/', format => 'binaryFile')
),
doc_metadata AS (
  SELECT
    path,
    parsed,
    ai_extract(
      parsed,
      '{ ... }',
      MAP('version', '2.1', 'instructions', 'These are technical documents from Orion Robotics. Extract metadata for search filtering.')
    ) AS metadata
  FROM parsed_documents
),
doc_chunks AS (
  SELECT path, ai_prep_search(parsed) AS chunked
  FROM doc_metadata
)
SELECT
  chunk.value:chunk_id::STRING          AS chunk_id,
  chunk.value:chunk_position::INT       AS chunk_position,
  chunk.value:chunk_to_retrieve::STRING AS chunk_to_retrieve,
  chunk.value:chunk_to_embed::STRING    AS chunk_to_embed,
  doc_chunks.chunked:document.source_uri::STRING AS source_uri,
  dm.metadata:response:document_title::STRING    AS document_title,
  dm.metadata:response:document_type::STRING     AS document_type,
  dm.metadata:response:product_name::STRING      AS product_name,
  dm.metadata:response:version::STRING           AS doc_version,
  dm.metadata:response:target_audience::STRING   AS target_audience
FROM
  doc_chunks
  JOIN doc_metadata dm ON doc_chunks.path = dm.path,
  LATERAL variant_explode(doc_chunks.chunked:document.contents) AS chunk

Крок 5: Зберагчэнне ў Delta і стварэнне індекса

Этап 5 «Выконваць да стадіі» працюе найэфектывней, калі яго розглядаць як вимерную плошчу. Зафіксавце адны ідеальны прыклад, адну справу з бягам і прыметку пра відкатаванне перш чым расширваць масштаб. Зберагаеце настройкі пазначыней ад коду прыемліка. Файлы сяродавішча, хранільнікі секрэтных данных і флагі функций должны знаходзіцца ў аднам месцы, куды аператары можаць адрабатаваць без неабяжнага чытання всіх дадзеных. Раздзеляйце правілы часткавання і правілы выявлення. Змена адных не должна прыводзіць да перапісвання іншых, калі змянююцца паказателі якасці.

CREATE OR REPLACE TABLE <YOUR_CATALOG>.<YOUR_SCHEMA>.orion_docs_rag_chunks AS
-- [full CTE chain from Step 4]

Чаму такія прыемлікі эфектывны для агентаў

Этап «Прычыны, чаму гэты дизайн работае» працюе найкраща, калі яго расследжваюць як мерыемую сферу. Зафіксавце адны ідеальны прыклад, адну ситуацыю неудачы і прыметкі па адвярненню роботы пры расшырэнні масштаба. Дакументавайце як шлях успеху, так і шлях вярнення да нормальнага стану. Перапрыбуткі, людзкія контраліны і обработка некоректных паведамленняў є частью продукту, а не наступным этапам дорабкі. Раздзеліце політыку частковай обработкы дадзеных ад політіки ўзяць іх. Змена адной з яных не павінна вымагаць перапісвання другой, калі зменяюцыся паказнікі якосці. Этап «Прычыны, чаму гэты дизайн работае» працюе найкраща, калі яго расследжваюць як мерыемую сферу. Зафіксавце адны ідеальны прыклад, адну ситуацыю неудачы і прыметкі па адвярненню роботы пры расшырэнні масштаба. Расследжвайце гэты этап як кантракт межа вхіднымі дадзенымі і перакананымі выходнымі рэзультатамі. Даўце назвы артыфактам, задаце критэрыя успеху і не падтрымвайце тыхія частковыя завершэння.

Чыстыя абмежэнні

Для стадіі аналізу абсалютных мерыябоўства неабходна пазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры перадзеіснаванні коду. Аператары должны магчымае перадзеіснаваць крок з вядомага пункта контролю, не спрабоўваючы з’ясаваць захаваны стан. Запісваць час выконання і кост токенаў або запытаў разам з функцыйнальнымі рэзультатамі. Відразлівае паказанне костаў запобегае неспадзяваным расчыткам, калі процес пераходзіць з дэмавайнага режыма ў спадзеленыя среды. Прыцісваць цитаты з тых частак, якія фактычна ляглі в основу адпаведнай адказы. Без цитатаў аператары не можуць разлічыць галюцинацію ад прасоў у індэксаванні.

Заключныя меркі

У стадії «Заключныя мысли» неабяцо практычна апісацыя вхідных дадзеных, адпаведальнага за крок і крэтарыя для завершэння працы перад зменым коду. Аперацыйныя працавнікі павінны магчыма ўвайсці крок з вядомага пункту контролю, не спрабоўваючы здагадвацца пра схованы стан. Конфігурацыю трэба залічыць праз аплявацыйны код. Файлы сераўіса, храненні секрэтных дадзеных і флагі функцый павінны знаходзіцца ў адном месцы, якое аперацыйныя працавнікі могу пераглядаць, не чытаючы весь код. Неабяцо цітаваць тые часткі, якія фактычна ляглі в основу адпаведнай адпаведзі. Без цітатаў аперацыйныя працавнікі не зможуць адразніць галюцинацыю ад працявання з індэксам.

Рэсурсы

Для стадіі Рэсурсаў неабходна пазначыць вхідныя даны, адпаведальнага за крок і крэтыяры завершэння пры перадзеі коду. Аперацыйныя працавнікі должны магчымае перадзеі крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна аддзеіскаваць як шлях успеху, так і шлях вярнення да нормы. Практыка падзеі, людскія етапы контролю і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней. Указваць неабходна тыя часткі тексту, якія фактычна лежаць у падставе адпаведнай адказы. Без ціх цытатаў аперацыйныя працавнікі не зможуць адразліць галюцинацыю ад працявання з некоректнымі даннымі.

Чэк-ліст для аперацый

Пры працэ пад чэк-лістам для аперацый спачатку неабходна запісаць умовы: неабходныя вхідныя даны, сігнал успеху і тое, што выходзіць праз частковыя аберанціі. Такі чэк-ліст дапамагае заставіць пазнейшыя змены коду быць чыстымі і праўдападобнымі.

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

Зьвярзіце рэкалі на фіксаванай сэтке запытаў прычымо да налагоджэння прамптав. Часта змена прамптав рэдка калі лечыць слабую систему аднаходжэння інфармацыі.

Зафіксавайце версіі залежнасцей і запісаўце сумарны атрыбут зображэння, якое было выкаранае пад час дамоў. Возможнасць перапрыгчання рэзультатаў лепшая за традыцыйныя знання.

Спрыятлівае ставленне да гэтага этапу як да кантракту межа вхіднымі дадзеннямі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, задацьце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.

Зьвярзіце рэкалі на фіксаванай сэтке запытаў прычымо да налагоджэння прамптав. Часта змена прамптав рэдка калі лечыць слабую систему аднаходжэння інфармацыі.

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

Запіскі для пакета 7a3f8fc3e730: не класты ключі прадаўцоў у репазітарыю, задаць максымальны ліміт токена на сесію, а таксама зберагчы транскрыпціі праза фіксатуры адлічэння, каб пазнейшыя замены моделей заставаліся пораўнаннымі.