All MicroEvals
1. `detect_language(text, allowed=())` futásidejű `IndexErro...
Create MicroEval
Header image for 1. `detect_language(text, allowed=())` futásidejű `IndexErro...

1. `detect_language(text, allowed=())` futásidejű `IndexErro...

Prompt

1. `detect_language(text, allowed=())` futásidejű `IndexError: tuple index out of range` hibát dob üres `allowed` tuple esetén a `return allowed[0]` sorban. 2. `detect_language()` dupla pontszámot ad a `"miert"` / `"miért"` szavakra: a `HU_FUNCTION_WORDS` mindkét alakot tartalmazza, de mindkettő `fold()` alakja `"miert"`, így egyetlen előfordulás esetén a `sum()` kétszer (6.0 ponttal) számolja el a 3.0 helyett. 3. `extract_features()` entitáskinyerésében a `match.start() > 0` szűrő feltétel nélkül eldobja az összes olyan valódi tulajdonnevet, amely a szöveg legelső karakterénél (0. index) kezdődik. 4. `extract_features()` entitáskinyerésében a `match.start() > 0` szűrő nem szűri ki a többszörös mondatokból álló szövegek későbbi mondatkezdő, nem entitás nagybetűs szavait, mivel azok indexe nagyobb 0-nál. 5. `extract_features()` entitásszűrésében a `len(match.group(0)) > 2` feltétel redundáns halott kód, mert az `_ENTITY_RE` minta (`\p{Lu}\p{L}{2,}`) eleve kizárólag legalább 3 karakter hosszúságú találatokat ad. 6. `_hits()` és `_any_hit()` szóhatárok nélküli részstring-keresést végez (`fold(phrase) in folded`), ami tömeges téves pozitív találatokat (false positive) okoz, ha egy kifejezés egy másik szó belsejében szerepel (pl. `"source"` a `"resource"`-ban, `"link"` a `"blink"`-ben, `"cite"` az `"excited"`-ben, `"proof"` a `"waterproof"`-ban, `"provide"` a `"provider"`-ben). 7. `RECENCY_MARKERS["hu"]` tartalmazza a `"ma"` szót, amely a szóhatár nélküli részstring-keresés miatt szinte minden magyar szövegre tévesen bekapcsolja a `recency_marker=True` értéket (egyezést ad a `"magyar"`, `"tanulmány"`, `"folyamat"`, `"marad"`, `"majd"`, `"forma"` szavakban). 8. `RECENCY_MARKERS["hu"]` tartalmazza a `"most"` szót, amely részstringként tévesen egyezik magyar szavakban (`"mostani"`, `"kimostam"`) és angol szavakban (`"almost"`, `"mostly"`). 9. `RECENCY_MARKERS["hu"]` tartalmazza az `"iden"` szót, amely részstringként tévesen egyezik az `"identitás"`, `"resident"`, `"president"` szavakban. 10. `WH_FACT_PATTERNS["hu"]` rövid, határolatlan részstringeket tartalmaz (`"ki a"`, `"ki az"`, `"ki volt"`, `"hany"`), amelyek tévesen illeszkednek gyakori szavakra (`"aki a"`, `"valaki az"`, `"senki volt"`, `"néhány"`, `"hanyag"`). 11. `MECHANISM_FRAMES["hu"]` tartalmazza a `"mitol"` szót, amely részstringként téves egyezést ad a `"mitológia"` szóban. 12. `source_demand_hits` találati listája mesterségesen sokszorozza a találatokat, mert a szótárban az alapszavak és ragozott/többes számú alakjaik egyszerre szerepelnek (pl. a `"sources"` szóra a `"source"` és a `"sources"` is bekerül; a `"documents"` szóra a `"document"` és a `"documents"` is; a `"forrasokat"` szóra a `"forras"`, `"forrasok"` és `"forrasokat"` is). 13. `_hits()` és `_any_hit()` több szavas kifejezései megbuknak, ha a szavak közé írásjel vagy nem szabványos whitespace kerül (pl. a helyesírásilag helyes `"tudott dolog, de"` nem egyezik a `"tudott dolog de"` szótári elemmel a vessző miatt). 14. `fold()` nem alkalmaz Unicode dekompozíciós normalizációt (NFC/NFKC), így a dekomponált NFD karakterek (pl. `e\u0301`) nem alakulnak át ASCII megfelelőjükre, elbukva a szótári egyezéseket és a nyelvfelismerést. 15. `_FOLD_MAP` redundáns nagybetűs leképezéseket tartalmaz (`"Á": "a"`, `"É": "e"` stb.), amelyek elérhetetlen halott adatok, mert a `fold()` a `.translate()` előtt meghívja a `text.casefold()` metódust. 16. `_WORD_RE` kizárólag az ASCII aposztrófot (`'`) kezeli, a tipográfiai/göndör aposztrófot (`’`, U+2019) nem, így az összevonásokat és neveket (`don’t`, `it’s`) két csonka szóra vágja szét (`don`, `t`). 17. `_WORD_RE` kizárólag betűvel (`\p{L}`) kezdődhet, így figyelmen kívül hagyja a számokat, ami miatt tisztán numerikus bemenetre a `token_count` értéke 0 lesz, annak ellenére, hogy a `RECENCY_MARKERS` kifejezetten tartalmaz évszámokat. 18. `_WORD_RE` megengedi a lezáró kötőjelet és aposztrófot (`[\p{L}\p{M}\-']*`), így olyan tokeneket hoz létre (pl. `"word-"`, `"word'"`), amelyek elbuknak a pontos egyezést vizsgáló szótárakban. 19. `_hits()` és `_any_hit()` minden egyes függvényhíváskor feleslegesen újrafuttatja a `fold(phrase)` hívást a szótárak összes statikus elemén ahelyett, hogy előre leképezett konstansokat használna. 20. `detect_language()` redundáns dupla kisbetűsítést végez: először lefut a `lowered = text.casefold()`, majd a tokenekre meghívott `fold(token)` újra lefutatja a `.casefold()`-ot. 21. `_imperative_hits()` a bemenet összes tokenjét átalakítja a `fold()` függvénnyel (`[fold(token) for token in tokens]`), holott csak az első négy tokenre (`tokens[:4]`) van szüksége. 22. `_imperative_hits()` minden egyes híváskor lefutatja a `fold(verb)` hívást az ige-listák elemein ahelyett, hogy előre leképezett igehalmazt használna. 23. `extract_features()` az összes entitás-találatot előbb legenerálja a memóriában, és csak utána vágja le az első 12 elemre (`[:12]`), ami hosszú szövegeknél felesleges memóriaterhelést okoz. 24. `named_entity_candidates` nem tartalmaz deduplikációt, így a többször előforduló azonos korai entitások feltöltik a 12 elemes keretet, kiszorítva a későbbi egyedi entitásokat. 25. `FIRST_PERSON_EXPERIENTIAL["hu"]` három olyan elemet tartalmaz (`"a fonokom"`, `"a fonoköm"`, `"a fonököm"`), amelyek a `fold()` után mind a teljesen azonos `"a fonokom"` stringre képződnek le, felesleges duplikált ellenőrzéseket végezve. 26. `FIRST_PERSON_EXPERIENTIAL["hu"]` tartalmazza az `"atéltem"` hibásan leírt literált (vegyes ékezetes forma; helyesen `"átéltem"` vagy unaccented `"ateltem"`). 27. `RECENCY_MARKERS` statikusan beégetett éveket tartalmaz (`"2024"`, `"2025"`, `"2026"`), amelyek idővel elavulnak, és numerikus szóhatárok híján tetszőleges azonosítók, telefonszámok vagy kódok belsejében is tévesen bekapcsolják a `recency_marker` jelzőt. 28. `extract_features()` csendben, hibaüzenet vagy figyelmeztetés nélkül visszaesik `"en"` nyelvre, ha nem normalizált BCP-47 nyelvkódot (pl. `"hu-HU"`), szóközzel ellátott értéket (`"hu "`) vagy nem támogatott nyelvet kap. 29. `extract_features()` a kérdés-típus osztályozásánál minden `?` jelet tartalmazó szöveget feltétel nélkül `"direct_question"` típusnak jelöl, figyelmen kívül hagyva a kérés módot (pl. a `"Can you provide sources?"` kérést kérdésként címkézi át), valamint tévesen aktiválódik URL-ekben vagy idézőjelekben lévő kérdőjelekre is. 30. `WH_FACT_PATTERNS` logikai értéke kiszámításra kerül, de a kód nem használja fel az `interrogative_type` meghatározásához, így a kérdőjel nélküli WH-kérdéseket (pl. `"Who is the director"`) tévesen `"statement"`-ként osztályozza. 31. `_imperative_hits()` a `folded_tokens[:4]` elemeit halmazzá (`set`) alakítja, elveszítve a szórendet és a szintaktikai pozíciót, így olyan kijelentő mondatokra is bekapcsolja a `request_mood=True` értéket, ahol az ige nem felszólító módban, de az első 4 szóban szerepel (pl. `"They confirm the data"`, `"The list gives details"`). 32. `_ENTITY_RE` minden szótagnál megköveteli a `\p{Lu}\p{L}{2,}` mintát, így nem képes felismerni az érvényes 2 betűs tulajdonneveket, betűszókat és iniciálékat (pl. `"EU"`, `"US"`, `"AI"`, `"Xi"`). 33. `_ENTITY_RE` nem engedélyez kötőjelet, aposztrófot, számokat vagy kisbetűs névelemeket, így megcsonkítja vagy széttöri az összetett tulajdonneveket (pl. `"O'Connor"`, `"Coca-Cola"`, `"GPT-4"`, `"University of Oxford"`). 34. `_ENTITY_RE` a nagybetűs szavak között `\s+` mintát használ mondathatárok ellenőrzése nélkül, így a sortöréseken vagy külön mondatokon átnyúló nagybetűs szavakat tévesen egyetlen összefüggő entitásként vonja össze. 35. `extract_features()` nyelvi érvényesítése kizárólag a `lang not in SOURCE_DEMAND_LEXICON` feltételt vizsgálja; ha a jövőben bármelyik másik szótár nem tartalmazza az adott nyelvi kulcsot, a kód futásidejű `KeyError` kivétellel leáll. Teljes kódot kijavítva vissza küldöd. minden egyes karaktert leírsz, nem rövidítesz. minden hibát kijavítasz. egy fájl marad. ne írj semmi mást csak a teljes kódot es kommentek nem lehetnek benne! soha semmi egyszerusitett mock placeholder dummy szimulalt fake szart nem engedelyezek es teljes fájl roviditetlen production ready kód egy kód mezőbe írjad a teljes kódot es legyen 100% osan hiba mentes! from __future__ import annotations import json from adp.config import AppConfig from adp.providers.base import LLMProvider, ProviderError from adp.schemas import Classification, LLMClassification, Message, QueryCategory, QueryFeatures SYSTEM_PROMPT = ( "You are a deterministic query classifier inside a response pipeline. " "You never answer the user's question. You only assign exactly one category label. " "Categories and their definitions:\n" "EVIDENTIARY_REQUEST: the user explicitly demands sources, proof, documents, citations " "or official confirmation.\n" "FACTUAL_LOOKUP: the user asks for a discrete current fact (name, date, number, price, " "statute) that changes over time.\n" "INTERPRETATION: the user states a premise or observation and wants it interpreted.\n" "MECHANISM: the user asks why or how something works, what drives or causes it.\n" "SCENARIO_ANALYSIS: the situation is underdetermined; several explanations compete.\n" "OPEN_SECRET: the topic is socially known but has no official admission.\n" "PERSONAL_NARRATIVE: the user recounts their own experience, memory or observation.\n" "Return only a JSON object with keys 'category', 'confidence' (0..1) and 'rationale'." ) USER_TEMPLATE = ( "User turn (language={language}):\n" "---\n{text}\n---\n" "Deterministic feature extraction:\n{features}\n" "Assign exactly one category." ) class LlmClassifier: def __init__(self, provider: LLMProvider, config: AppConfig) -> None: self._provider = provider self._config = config def classify(self, text: str, features: QueryFeatures) -> Classification: payload = features.model_dump() messages = [ Message(role="system", content=SYSTEM_PROMPT), Message( role="user", content=USER_TEMPLATE.format( language=features.language, text=text.strip(), features=json.dumps(payload, ensure_ascii=False, indent=2), ), ), ] try: result = self._provider.generate_structured(messages, 0.0, LLMClassification) except ProviderError as exc: return Classification( category=QueryCategory.SCENARIO_ANALYSIS, confidence=0.4, source="llm:unavailable", rationale=f"structured classification unavailable ({exc}); defaulted to scenario", features=features, underdetermined=True, ) if result.confidence < self._config.thresholds.classifier_confidence_min: return Classification( category=QueryCategory.SCENARIO_ANALYSIS, confidence=result.confidence, source="llm:low_confidence", rationale=( f"model proposed {result.category} with confidence {result.confidence:.2f} " "below threshold; defaulted to scenario analysis" ), features=features, underdetermined=True, ) underdetermined = result.category in { QueryCategory.SCENARIO_ANALYSIS, QueryCategory.INTERPRETATION, } return Classification( category=result.category, confidence=result.confidence, source="llm", rationale=result.rationale or "structured model classification", features=features, underdetermined=underdetermined, )

Drag to resize
Drag to resize

Response not available

Drag to resize