Kihagyás

Relevance Extractor

gpt-4.1

Előfeltételek: Data Collection
Felhasználja: QA Answer

A Data Collection lépés során összegyűjtünk rengeteg információmorzsát (azaz chunk-ot), melyek különböző metrikák szerint fontosnak bizonyultak. Ugyanakkor ez összesítve rengeteg, és képes félrevezetni a válaszadást. Célszerű tehát egy végleges szűrést alkalmazni.

Kérdés-önállósítás

Adott: A felhasználói \(q\) kérdése, a \(H\) korábbi üzenetváltás és chunk-ok egy \(\mathcal{C}\) halmaza.

Feladat: Néhány chunk kiválasztása (\(\mathcal{C_r}\)), melyek hasznos információkat tartalmaznak \(q\) kérdés meg­vá­la­szo­lás­ához (azaz „relevánsak“).

Megjegyzés

Ez akár a Data Collection részeként is értelmezhető lenne. Ugyanakkor jelenlegi szétválasztás indokolható azzal, hogy a Data Collection LLM hívás nélkül keres „gyorsan“, majd utána a Relevance Extractor egy LLM hívás segítségével szortíroz.

A megvalósítás

Az eszköz két részből áll:

  1. Megkérünk egy LLM-et hogy értékelje egy-egy chunk relevanciáját egy 3 pontú skálán, ahol

    • 0: teljesen irreleváns

    • 1: témába vágó, de nem biztos, hogy hasznos

    • 2: közvetlen információt tartalmaz az üzenettel kapcsolatban

  2. A pontozásból kiválasztjuk az 1 és 2 ponttal ellátottakat, ezekre mondjuk, hogy relevánsak.

A konfigurációs beállítások a backend repo-ban, a tool-configuration.yml fájlban találhatók, a project.tools.relevance-extractor mezőben. A használt OpenAI modellt az eszköz a az application.yml fájl project.openai.models.chat-model mezőjéből örökli. A végrehajtást a RelevanceExtractorBatchService osztály végzi.

Miért BatchService?

A megírt osztály képes egyszerre több chunk-ot átadni az LLM-nek, ezt a batch-size paraméter szabályozza. Ugyanakkor ide 1-et rögzítettünk, mivel több chunk értékelése esetén a válasz is hosszabb lesz (több token-t kell generálni), továbbá hosszabb chunk-ok megzavarhatják egymás értékelését.