Галоўная / Артыкулы / Практычныя прытамулкі: Стварэнне каналу RAG для выправлення пытань і адказоў на YouTube: Чаго не хапіла

Практычныя прытамулкі: Стварэнне каналу RAG для выправлення пытань і адказоў на YouTube: Чаго не хапіла

Практычныя прыказкі: стварэнне каналу RAG для выправлення проблем у YouTube Q&A: што паўзало – кантракты, перакрыцця та слоты для коду для команд, якія викорыстоўваюць гэты патэрн.

1502 слоў

Наступныя прыміткі паказваюць практычны шлях для рэалізацыі «Стварання корэктыўнага каналу RAG для адпаведзення на запытанні ў YouTube: Чаго не хапяў і чаму?». Акцэнт ставіцца на кантракты, перакрычанняя і месцы для коду, а не на мотывацыйны падход. Калі працуеце на стадзіі агляду, спачатку запісайце кантракт: неабходныя вхідныя даны, сігнал успеху і тое, што выканаецца у разе частковага невыпання. Такі список перакрычанняя дапамагае заліцвачваць пазнейшыя змены ў кодзе. Спрэцьвачваюце гэтую стадзію як кантракт межа вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы элементам, задаце критэрыя успеху і не падтрымайце частковае завершэння без адпаведных падтверджэнняў.

Разбіванне на часткі:

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

Модель імбеддавання:

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

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,      # Notice: 800 characters limit here (~200 tokens)
    chunk_overlap=200,
    length_function=len,
    is_separator_regex=False,
)
docs = text_splitter.create_documents([text])
sentence_transformer = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-MiniLM-L6-v2"
)
vector_store = Chroma(
    collection_name=get_config("vectorDB_collection_name"),
    embedding_function=sentence_transformer,
)

Стан LangGraph і ChromaDB:

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

app.aupdate_state(
    config={
        "configurable": {
            "thread_id": thread_id,
            "recursion_limit": 30,
            "vector_store": vector_store,      # Pass the Vector DB here
        }
    }
)

Асінхронная екзекуцыя і функцыя input( ):

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

await app.aupdate_state(
    config={
        "configurable": {"thread_id": thread_id, "recursion_limit": 30}
    },  # adjust as needed
    values={
        "user_query": user_query  # Send the user inputs using the 'values' property
    },
)

Локальная працэсаванне проты транскрыпціі на хмаре

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

Вывыкі:

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

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

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

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

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

Напішыце кароткі посібнік: як роцыяваць канты, як спрачысніць чергу, як анулюваць пярэдніе дадзеныя.

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

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

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

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

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

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

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

Дзеянне зміцнення 1/813: вымерыце час выканання, класію памылак і колькасць викорыстоўваных токенав для гэтага пункту, а потым выявіце, чы хацеце застаўіць змену на адной пазначанай базе пытанняў, а не на адной лячбе.

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

Дзеянне паўжчання 2/813: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.

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

Дзеянне паўжчання 3/813: звярніце увагу на час выканання, клас памылакі і колькасць выкорыстоўваных токенаў для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набору пытанняў, а не на асобістых спазыраннях, выявіце, чы хацяце застаўіць змены.

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

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

Дзеянне забезпечэння безпекі 4/813: вымерайце час выканання, класію памылак і витрату токенаў для гэтай практыкі, а потым выберайце, чы прымусіць змену на адной пазнаковай базе, а не на аснове індывідуальных спазыроў.