Галоўная / Артыкулы / Практычныя прытамулі: Слоўнікаванне: Как доклінг-пайплайны падготавляюць вашы данні

Практычныя прытамулі: Слоўнікаванне: Как доклінг-пайплайны падготавляюць вашы данні

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

1725 слоў

У гэтым керавані зноў ствараецца парадокс ад сыр'ёў да рабочай системы для: Слой індексавання: як канвеі доклюнгу падготавляюць вашы дакументы для RAG. Акцэнт ставіцца на практычныя крокі, чысткія перакананні та код, які можна прыўязаць да репозітарыю без неабязковасці здогадвацца пра мету. Для стадіі агледзення неабходна прадзефінаваць вхідныя даны, адпаведальную особу за крок та критэрыя завершэння пры перамены коду. Аперацыйныя працавнікі должны магчымае перазапускаць крок з вядомай точкі контролю без неабязковасці здагадвацца пра схованы стан. Спрыяйце гэтай стадіі як даговору межа вхіднымі данымі та падтвердзенымі выходнымі рэзультатамі. Дайце назвы артыфактам, прадзефінаваць перакананні на успех та адмовіцеся ад беззвучнага частковага завершэння.

Што такое RAG, і якое месца займае база дадзэння вектароў?

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

Чаму звычная база дадзеных не можа гэта зрабіць?

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

Падтрымка VectorDB у docling-pipelines

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

Як працуе VectorDB Operator

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

Шэсцягонная архітектура: падключэнне будзь-каго VectorDB

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

VectorDBOperator
      │
      └── VectorStorePort (interface / abstract contract)
              ├── OpenSearchAdapter   (ships with docling-pipelines)
              ├── MilvusAdapter       (ships with docling-pipelines)
              └── YourCustomAdapter   (implement VectorStorePort → plug in)

Дакументы, часткаваныя, і дакументы без часткавання

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

Чыстка застарэлых частак

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

Автадыектаваныя вектарныя размеры

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

Канфігурацыя цэлага каналу RAG

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

{
  "flow_name": "rag-indexing-pipeline",
  "global_config": {
    "doc_column": "content",
    "storage": "in-memory",
    "execute_type": "local",
    "enable_micro_batching": true,
    "micro_batch_size": 10
  },
  "flow": [
    {
      "name": "ingest",
      "type": "ingest_source",
      "config": {
        "provider": "filesystem",
        "connection_params": { "paths": ["./documents"], "recursive": true },
        "include_filter": "pdf,docx,txt"
      }
    },
    {
      "name": "extract",
      "type": "extract_operator",
      "depends_on": ["ingest"],
      "config": {
        "text_extraction": { "provider": "docling_library", "doc_column": "content" }
      }
    },
    {
      "name": "chunk",
      "type": "chunker",
      "depends_on": ["extract"],
      "config": {
        "doc_column": "content",
        "chunk_size": 512,
        "chunk_overlap": 50
      }
    },
    {
      "name": "embed",
      "type": "embeddings",
      "depends_on": ["chunk"],
      "config": {
        "provider": "litellm",
        "embeddings_column": "embeddings",
        "provider_config": {
          "model_id": "openai/nomic-embed-text",
          "api_base": "http://localhost:11434/v1",
          "api_key": "${OLLAMA_API_KEY}"
        }
      }
    },
    {
      "name": "store",
      "type": "vectordb",
      "depends_on": ["embed"],
      "config": {
        "provider": "opensearch",
        "doc_id_column": "doc_id_hash",
        "create_index": true,
        "provider_config": {
          "index_name": "my_rag_index",
          "host": "localhost",
          "port": 9200,
          "username": "${OPENSEARCH_USERNAME}",
          "password": "${OPENSEARCH_PASSWORD}",
          "use_ssl": false,
          "engine": "faiss",
          "algorithm": "hnsw",
          "space_type": "l2"
        }
      }
    }
  ]
}
docling-pipelines --flow-file rag-pipeline.json

Milvus з двойнымя інкапсуляваннямі

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

Інкрементальнае індексаванне

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

Большая картына

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

Чысткі ліст для эксплуатацыі

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

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

Раздзеліце правілы часткавання інфармацыі ад правіл яе выявлення. Змена адных не павінна прымусваць перапісванне іншых, калі змянююцца паказателі якосці.

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

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

Раздзеліце правілы часткавання інфармацыі ад правіл яе выявлення. Змена адных не павінна прымусваць перапісванне іншых, калі змянююцца паказателі якосці.

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

Прыметкі для 6ace628912a6: не кладзіце ключы прадаўцаў у репазітарый, задаце ліміт токена на кожную сесію і зберагачыце транскрыпты празаўседы ў фіксы для ацэнкі, каб пазнейшыя замены моделяў заставаліся порównаннэй.