From be71ac406bfa6d234bf9ff9739b48e6d5ff1f7fd Mon Sep 17 00:00:00 2001 From: claude Date: Tue, 8 Sep 2026 04:02:00 +0400 Subject: [PATCH] =?UTF-8?q?router/semantic:=20slice=2023=20corpus=20fast-p?= =?UTF-8?q?ath=20reconciliation=20=E2=80=94=20DeriveFastPath=20over=20the?= =?UTF-8?q?=20real=20router=20replaces=20the=20regex=20mirror,=20factory/m?= =?UTF-8?q?erge=20validated,=20corpus=20rebuilt=20(dataset=5Fhash=20unchan?= =?UTF-8?q?ged),=20drift=20diagnostic=20and=20rerun=20tooling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/corpus-factory/main.go | 87 +- cmd/merge-corpus/main.go | 32 +- .../slice22/heads_main.go | 3 +- .../slice22/legacy_build.go | 16 +- .../slice23/main.go | 243 + .../slice23_emit.py | 98 + .../slice23_main.py | 559 + internal/router/semantic/corpus_v1.json | 15184 ++++++++-------- internal/router/semantic/eval_test.go | 2 +- internal/router/semantic/fastpath.go | 82 + .../semantic/fastpath_invariant_test.go | 36 + internal/router/semantic/helpers_test.go | 8 - 12 files changed, 8460 insertions(+), 7890 deletions(-) create mode 100644 cmd/semantic-router-experiment/slice23/main.go create mode 100644 cmd/semantic-router-experiment/slice23_emit.py create mode 100644 cmd/semantic-router-experiment/slice23_main.py create mode 100644 internal/router/semantic/fastpath.go create mode 100644 internal/router/semantic/fastpath_invariant_test.go diff --git a/cmd/corpus-factory/main.go b/cmd/corpus-factory/main.go index 2bf9bb9..0e11863 100644 --- a/cmd/corpus-factory/main.go +++ b/cmd/corpus-factory/main.go @@ -15,7 +15,6 @@ import ( "fmt" "log" "os" - "regexp" "sort" "strings" @@ -1089,85 +1088,11 @@ func generatorQuestion(seed semantic.SemanticSeed) []semantic.GeneratedSurface { } // ─── Fast-path classifier ──────────────────────────────────────────────────── -// Simplified pattern matcher that mirrors stage-0 grammar outcomes. - -var ( - reminderVerbRe = regexp.MustCompile(`(?i)^\s*(напомни|напомните|напомнить|напоминай|разбуди|разбудите|разбудить|буди|remind|wake)\b`) - timeQueryRe = regexp.MustCompile(`(?i)^\s*(сколько\s+сейчас\s+времени|который\s+час|какое\s+число|какой\s+день|what\s+time|what's\s+the\s+date)\b`) - captureVerbRe = regexp.MustCompile(`(?i)^\s*(запиши|запомни|отметь|заметь|добавь|сохрани|занеси|внеси|note|remember|log|save|add)\b`) - praxisItemRe = regexp.MustCompile(`(?i)\b(item[_-][a-z0-9_-]+)`) - quietOnRe = regexp.MustCompile(`(?i)(тихий\s+режим|режим\s+тишина|тише|потише|quiet\s+(mode|on))`) - quietOffRe = regexp.MustCompile(`(?i)(хватит\s+тихого|громкий\s+режим|выключи\s+тихий|quiet\s+(off|end))`) - taskDoneRe = regexp.MustCompile(`(?i)^\s*(закрой\s+задачу|заверши\s+задачу|close\s+the\s+task|finish\s+the\s+task)\b`) - taskDropRe = regexp.MustCompile(`(?i)^\s*(убери\s+задачу|удали\s+задачу|отмени\s+задачу|drop\s+the\s+task|remove\s+the\s+task)\b`) -) - -// tool aliases → fast-path matchers (subset of what DefaultActMatcher would match) -var toolAliasRe = []*regexp.Regexp{ - regexp.MustCompile(`(?i)^\s*(перезапусти|перезагрузи|рестарт)\b`), - regexp.MustCompile(`(?i)^\s*(останови|выключи)\b`), - regexp.MustCompile(`(?i)^\s*(запусти|старт)\b`), - regexp.MustCompile(`(?i)^\s*(перезапусти\s+контейнер|перезагрузи\s+контейнер)\b`), - regexp.MustCompile(`(?i)^\s*(останови\s+контейнер)\b`), - regexp.MustCompile(`(?i)^\s*(перезагрузи\s+сервер|перезагрузи\s+хост|ребут)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+статус|проверь\s+статус|статус)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+контейнеры|список\s+контейнеров|что\s+запущено)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+uptime|аптайм|как\s+работает\s+сервер)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+диск|сколько\s+места\s+на\s+диске)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+память|свободная\s+память)\b`), - regexp.MustCompile(`(?i)^\s*(покажи\s+логи|логи|лог)\b`), -} - -// praxis lifecycle verbs (bare, without item reference → residual action) -var praxisLifecycleRe = regexp.MustCompile(`(?i)^\s*(закрой|закрыть|resolve|close|принято|принять|acknowledge|ack|игнорируй|игнорировать|пропусти|ignore|skip|закрепи|закрепить|pin)\b`) -var praxisAttentionRe = regexp.MustCompile(`(?i)^\s*(что\s+требует\s+внимания|что\s+нового\s+по\s+(задачам|проектам|сервисам)|needs\s+attention)\b`) -var praxisChangesRe = regexp.MustCompile(`(?i)^\s*(что\s+изменилось|какие\s+изменения|changed|changes)\b`) -var praxisEntityRe = regexp.MustCompile(`(?i)^\s*(статус|status|как\s+дела\s+у|how\s+is)\s+`) - -// classifyFastPath determines whether a surface would be handled by stage-0. -func classifyFastPath(text string) bool { - t := strings.TrimSpace(text) - - // Reminder verbs → always fast-path - if reminderVerbRe.MatchString(t) { - return true - } - // Time/date queries → fast-path - if timeQueryRe.MatchString(t) { - return true - } - // Task-status commands → fast-path - if taskDoneRe.MatchString(t) || taskDropRe.MatchString(t) { - return true - } - // Tool aliases → fast-path (only for verbs alone, not when combined with objects in ways the matcher wouldn't handle) - for _, re := range toolAliasRe { - if re.MatchString(t) { - return true - } - } - // Praxis lifecycle with item reference → fast-path - if praxisLifecycleRe.MatchString(t) && praxisItemRe.MatchString(t) { - return true - } - // Praxis attention/changes → fast-path - if praxisAttentionRe.MatchString(t) || praxisChangesRe.MatchString(t) { - return true - } - // Praxis entity attention → fast-path - if praxisEntityRe.MatchString(t) { - return true - } - // Quiet mode → fast-path (resolved pre-route) - if quietOnRe.MatchString(t) || quietOffRe.MatchString(t) { - return true - } - // Capture verbs → some are fast-path (note capture) - if captureVerbRe.MatchString(t) { - return true - } - return false -} +// Fast-path metadata is derived from the real router, not a regex mirror: +// DeriveFastPath runs the production TryFastPath over the stage-0 grammars +// with the experiment's act allowlist (see internal/router/semantic/fastpath.go). +// A hand-maintained pattern list drifted from the grammars and labelled 185 +// residual rows as fast (docs/evals/2026-09-08-slice22-*); it is removed. // ─── Helpers ───────────────────────────────────────────────────────────────── @@ -1241,7 +1166,7 @@ func buildCorpus(seeds []semantic.SemanticSeed) []semantic.RouteExample { exampleCounter++ srcID := fmt.Sprintf("%s-%03d", seed.ID, exampleCounter) - fp := classifyFastPath(surf.Text) + fp := semantic.DeriveFastPath(surf.Text).Matched isResidual := !fp tags := append([]string{}, seed.Tags...) diff --git a/cmd/merge-corpus/main.go b/cmd/merge-corpus/main.go index 9f9e7a5..f95020e 100644 --- a/cmd/merge-corpus/main.go +++ b/cmd/merge-corpus/main.go @@ -92,13 +92,37 @@ func main() { } fmt.Fprintf(os.Stderr, "merged: %d examples (skipped %d duplicates)\n", len(merged), skipped) - // 5. Validate + // 5. Fast-path metadata must match the real router. V2 rows are derived + // by interactively-labeled construction; a stale manually-supplied value + // is a build error, never silently rewritten. Frozen holdout rows are + // preserved verbatim — report drift, do not touch them. + v2Checked, frozenChecked, frozenDrift := 0, 0, 0 + for _, e := range merged { + derived := semantic.DeriveFastPath(e.Text).Matched + if frozenTexts[strings.TrimSpace(e.Text)] { + frozenChecked++ + if derived != e.FastPathResolved { + frozenDrift++ + fmt.Fprintf(os.Stderr, "frozen drift: %q stored=%v derived=%v\n", e.Text, e.FastPathResolved, derived) + } + continue + } + v2Checked++ + if derived != e.FastPathResolved { + log.Fatalf("v2 row (source=%s source_id=%s) fast_path_resolved=%v but router derives %v: %q", + e.Source, e.SourceID, e.FastPathResolved, derived, e.Text) + } + } + fmt.Fprintf(os.Stderr, "fast-path check: v2 rows %d OK, frozen rows %d (drift %d, reported only)\n", + v2Checked, frozenChecked, frozenDrift) + + // 6. Validate if err := semantic.ValidateCorpus(merged); err != nil { log.Fatalf("validation failed: %v", err) } fmt.Fprintf(os.Stderr, "validation: OK\n") - // 6. Compute dataset hash + // 7. Compute dataset hash texts := make([]string, len(merged)) for i, e := range merged { texts[i] = e.Text @@ -107,7 +131,7 @@ func main() { h := sha256.Sum256([]byte(strings.Join(texts, "\n"))) datasetHash := hex.EncodeToString(h[:16]) - // 7. Stats + // 8. Stats routeCounts := make(map[semantic.SemanticRoute]int) fpCount, resCount := 0, 0 for _, e := range merged { @@ -124,7 +148,7 @@ func main() { } fmt.Fprintf(os.Stderr, "fast-path: %d residual: %d\n", fpCount, resCount) - // 8. Write merged corpus + // 9. Write merged corpus outEnv := semantic.CorpusEnvelope{ SchemaVersion: 1, Name: "semantic_coarse_route_v1", diff --git a/cmd/semantic-router-experiment/slice22/heads_main.go b/cmd/semantic-router-experiment/slice22/heads_main.go index e3fdb9c..100d3a2 100644 --- a/cmd/semantic-router-experiment/slice22/heads_main.go +++ b/cmd/semantic-router-experiment/slice22/heads_main.go @@ -5,6 +5,7 @@ import ( "os" "github.com/kami/maven/internal/router" + "github.com/kami/maven/internal/router/semantic" ) // headsMain runs the deployed cascade minus the resident LLM: stage-0 @@ -48,7 +49,7 @@ func headsMain(poolPath, outPath string) { } defer heads.Close() - acts := router.DefaultActMatcher{Fns: actVerbList()} + acts := router.DefaultActMatcher{Fns: semantic.ExperimentActVerbs()} r := router.New(router.Config{ Grammars: router.StageZeroGrammars(acts), Classifier: cls, diff --git a/cmd/semantic-router-experiment/slice22/legacy_build.go b/cmd/semantic-router-experiment/slice22/legacy_build.go index 5498782..24d2193 100644 --- a/cmd/semantic-router-experiment/slice22/legacy_build.go +++ b/cmd/semantic-router-experiment/slice22/legacy_build.go @@ -10,6 +10,7 @@ import ( "strings" "github.com/kami/maven/internal/router" + "github.com/kami/maven/internal/router/semantic" ) // Seed loading replicated from cmd/mavend/voicewire.go (seedClassifier) and @@ -23,26 +24,13 @@ var seedIntents = []router.Intent{ router.IntentNote, router.IntentQuery, router.IntentChat, router.IntentSystem, } -// actVerbList mirrors the eval fixture's static allowlist -// (internal/router/semantic/helpers_test.go). The production matcher's -// allowlist is the deployment's enabled tools; an act grammar can only catch -// a row whose first tokens match an allowlisted verb, and the experiment's -// act allowlist is the one the accepted slice-21 methodology used. -func actVerbList() []string { - return []string{ - "перезапусти", "перезагрузи", "выключи", "включи", "останови", "запусти", - "закрой", "открой", "сделай", "поставь", - "restart", "reboot", "stop", "start", "turn off", "turn on", "open", "close", - } -} - // buildMinimalRouter reproduces internal/router/semantic/buildMinimalRouter: // the daemon's grammar set, a hash-embedder classifier seeded from // models/seeds, and the deployed 0.55 threshold. Deterministic and // reproducible. The ONNX embedder and the routing heads score elsewhere; // this is the floor the eval fixture reports as the legacy baseline. func buildMinimalRouter() *router.Router { - acts := router.DefaultActMatcher{Fns: actVerbList()} + acts := router.DefaultActMatcher{Fns: semantic.ExperimentActVerbs()} cls := router.NewClassifier(router.NewHashEmbedder(1024)) seedClassifier(cls) return router.New(router.Config{ diff --git a/cmd/semantic-router-experiment/slice23/main.go b/cmd/semantic-router-experiment/slice23/main.go new file mode 100644 index 0000000..5e014d1 --- /dev/null +++ b/cmd/semantic-router-experiment/slice23/main.go @@ -0,0 +1,243 @@ +// slice23 — fast-path metadata reconciliation diagnostic. +// +// Classifies every disagreement between the corpus's stored fast_path_resolved +// flag and what the production fast path derives today (TryFastPath over the +// stage-0 grammars with the experiment's act allowlist). Outputs a JSON +// decomposition and a console summary for docs/evals reports. +// +// Usage: +// +// go run ./cmd/semantic-router-experiment/slice23/ -out /tmp/mvn-s23/drift.json +package main + +import ( + "encoding/json" + "flag" + "fmt" + "os" + "sort" + + "github.com/kami/maven/internal/router" + "github.com/kami/maven/internal/router/semantic" +) + +type conflict struct { + Text string `json:"text"` + SourceID string `json:"source_id"` + Route string `json:"route"` + Source string `json:"source"` + Group string `json:"split_group"` + Tags []string `json:"tags,omitempty"` + Dev bool `json:"dev"` + // Direction: claimed_fast_now_miss = stored fast, runtime residual; + // mirror_missed = stored residual, runtime fast. + Direction string `json:"direction"` + Grammar string `json:"grammar,omitempty"` + // ShapeDeclined is true when at least one stage-0 grammar matched the + // utterance's shape but refused the content (falls through like the router). + ShapeDeclined bool `json:"shape_declined"` + // DeclinedGrammars names every stage-0 grammar that matched the shape but + // declined the content, for claimed_fast_now_miss rows. + DeclinedGrammars []string `json:"declined_grammars,omitempty"` +} + +type report struct { + Meta metaSummary `json:"meta"` + Pop popSummary `json:"population"` + Conflicts []conflict `json:"conflicts"` + ByRoute map[string]map[string]int `json:"by_route"` + ByGrammar map[string]int `json:"by_grammar"` + BySource map[string]map[string]int `json:"by_source"` + ByFamily map[string]map[string]int `json:"by_family"` + Direction map[string]int `json:"by_direction"` + Declined int `json:"claimed_fast_with_declined_shape"` + NoShape int `json:"claimed_fast_with_no_shape"` +} + +type metaSummary struct { + Total int `json:"total"` + DevCount int `json:"dev_count"` + Frozen int `json:"frozen_count"` +} + +type popSummary struct { + StoredFast int `json:"stored_fast"` + StoredResid int `json:"stored_residual"` + DerivedFast int `json:"derived_fast"` + DerivedResid int `json:"derived_residual"` + // Dev-pool residual route counts derived as the router sees them today. + DevResidualByRoute map[string]int `json:"dev_residual_by_route"` + // Dev-pool residual non-action + action OOD as derived. + DevResidualNonAction int `json:"dev_residual_non_action"` + DevResidualAction int `json:"dev_residual_action"` + // Fast rows in the dev pool, derived. + DevFast int `json:"dev_fast"` +} + +func main() { + outPath := flag.String("out", "/tmp/mvn-s23/drift.json", "output JSON path") + flag.Parse() + + exs, err := semantic.LoadCorpus() + if err != nil { + fmt.Fprintf(os.Stderr, "load corpus: %v\n", err) + os.Exit(1) + } + + _, dev, _ := semantic.FrozenHoldoutSplit(exs) + devSet := make(map[string]bool, len(dev)) + for _, e := range dev { + devSet[e.SourceID] = true + } + + // Stage-zero grammar list for shape/declined attribution (same list the + // derivation walks). + acts := router.DefaultActMatcher{Fns: semantic.ExperimentActVerbs()} + gs := router.StageZeroGrammars(acts) + + var ( + conflicts []conflict + byRoute = map[string]map[string]int{} + byGrammar = map[string]int{} + bySource = map[string]map[string]int{} + byFamily = map[string]map[string]int{} + byDirection = map[string]int{} + storedFast, derivedFast, declined, noShape int + devResidByRoute = map[string]int{} + devResidNonAct, devResidAct, devFast int + ) + + for _, e := range exs { + o := semantic.DeriveFastPath(e.Text) + inDev := devSet[e.SourceID] + + st := e.FastPathResolved + if st { + storedFast++ + } + if o.Matched { + derivedFast++ + } + + var c *conflict + switch { + case st && o.Matched: + case st && !o.Matched: + // Stored fast but the runtime misses. Attribute why. + shapeDeclined := false + var declinedNames []string + for _, g := range gs { + _, matched, ok := g.Evaluate(e.Text) + if matched && !ok { + shapeDeclined = true + declinedNames = append(declinedNames, g.Name) + } + } + if shapeDeclined { + declined++ + } else { + noShape++ + } + c = &conflict{Direction: "claimed_fast_now_miss", ShapeDeclined: shapeDeclined, DeclinedGrammars: declinedNames} + case !st && o.Matched: + c = &conflict{Direction: "mirror_missed", Grammar: o.Grammar} + } + + if c != nil { + c.Text = e.Text + c.SourceID = e.SourceID + c.Route = string(e.Route) + c.Source = e.Source + c.Group = e.SplitGroup + c.Tags = e.Tags + c.Dev = inDev + conflicts = append(conflicts, *c) + byDirection[c.Direction]++ + byGrammar[c.Grammar]++ + if byRoute[c.Direction] == nil { + byRoute[c.Direction] = map[string]int{} + } + byRoute[c.Direction][c.Route]++ + if bySource[c.Direction] == nil { + bySource[c.Direction] = map[string]int{} + } + bySource[c.Direction][c.Source]++ + if byFamily[c.Direction] == nil { + byFamily[c.Direction] = map[string]int{} + } + byFamily[c.Direction][c.Group]++ + } + + if inDev { + if o.Matched { + devFast++ + } else { + devResidByRoute[string(e.Route)]++ + if e.Route == semantic.RouteAction { + devResidAct++ + } else { + devResidNonAct++ + } + } + } + } + + sort.Slice(conflicts, func(i, j int) bool { return conflicts[i].SourceID < conflicts[j].SourceID }) + + rep := report{ + Meta: metaSummary{Total: len(exs), DevCount: len(dev), Frozen: len(exs) - len(dev)}, + Pop: popSummary{ + StoredFast: storedFast, StoredResid: len(exs) - storedFast, + DerivedFast: derivedFast, DerivedResid: len(exs) - derivedFast, + DevResidualByRoute: devResidByRoute, + DevResidualNonAction: devResidNonAct, DevResidualAction: devResidAct, + DevFast: devFast, + }, + Conflicts: conflicts, + ByRoute: byRoute, ByGrammar: byGrammar, BySource: bySource, ByFamily: byFamily, + Direction: byDirection, Declined: declined, NoShape: noShape, + } + + data, err := json.MarshalIndent(rep, "", " ") + if err != nil { + fmt.Fprintf(os.Stderr, "marshal: %v\n", err) + os.Exit(1) + } + if err := os.WriteFile(*outPath, data, 0644); err != nil { + fmt.Fprintf(os.Stderr, "write %s: %v\n", *outPath, err) + os.Exit(1) + } + + fmt.Printf("total %d (dev %d, frozen %d)\n", rep.Meta.Total, rep.Meta.DevCount, rep.Meta.Frozen) + fmt.Printf("stored fast=%d residual=%d\n", rep.Pop.StoredFast, rep.Pop.StoredResid) + fmt.Printf("derived fast=%d residual=%d\n", rep.Pop.DerivedFast, rep.Pop.DerivedResid) + fmt.Printf("disagreements total %d\n", len(conflicts)) + for _, d := range []string{"claimed_fast_now_miss", "mirror_missed"} { + fmt.Printf(" %-22s %d\n", d, byDirection[d]) + if d == "claimed_fast_now_miss" { + fmt.Printf(" with declined shape: %d no shape: %d\n", declined, noShape) + } + } + fmt.Println(" mirror-missed by grammar:") + for _, k := range sortedKeys(byGrammar) { + fmt.Printf(" %-28s %d\n", k, byGrammar[k]) + } + fmt.Println(" by route:") + for _, d := range sortedKeys(byRoute) { + fmt.Printf(" %-22s %v\n", d, byRoute[d]) + } + fmt.Printf("dev pool derived: fast=%d residual=%d (non-action=%d action=%d)\n", + rep.Pop.DevFast, rep.Pop.DevResidualNonAction+rep.Pop.DevResidualAction, + rep.Pop.DevResidualNonAction, rep.Pop.DevResidualAction) + fmt.Printf("dev residual by route: %v\n", rep.Pop.DevResidualByRoute) + fmt.Printf("wrote %s\n", *outPath) +} + +func sortedKeys[T any](m map[string]T) []string { + ks := make([]string, 0, len(m)) + for k := range m { + ks = append(ks, k) + } + sort.Strings(ks) + return ks +} \ No newline at end of file diff --git a/cmd/semantic-router-experiment/slice23_emit.py b/cmd/semantic-router-experiment/slice23_emit.py new file mode 100644 index 0000000..df32750 --- /dev/null +++ b/cmd/semantic-router-experiment/slice23_emit.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +""" +Slice 23 emit: five-way residual non-action semantic router — data files +======================================================================== + +Slice 23 reconciles corpus fast-path metadata with the production router +(TryFastPath over stage-0 grammars). The corpus builder no longer mirrors the +grammars by hand; fast_path_resolved is derived from the router, so this emit +flags exactly the rows the router genuinely leaves for the general cascade. + +This script only repackages the frozen dev pool for the Go legacy baseline and +the Python experiment, writing into /tmp/mvn-s23 so the slice-22 artifacts +stay untouched. Logic is slice22_emit.py verbatim; only OUT_DIR differs. + + /tmp/mvn-s23/pool.json residual non-action dev rows: idx, text, n_text, + route, tags, cv_fold, split_group, family_id, + source_id (1509 rows) + /tmp/mvn-s23/ood.json residual ACTION dev rows (720): same shape; OOD + probes only, never primary metrics + /tmp/mvn-s23/stats.json population summary (routes, families, folds) +""" + +import json +import os +import sys + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) + +import slice18_sparse # noqa: E402 (normalize_match_text, load_data, filters) + +OUT_DIR = "/tmp/mvn-s23" + +ROUTES = ["conversation", "knowledge", "memory_write", "system", "uncertain"] + + +def main(): + meta, examples = slice18_sparse.load_data() + dev = slice18_sparse.filter_dev_pool(examples) + print(f"dev pool: {len(dev)} rows " + f"(meta declares dev_count={meta.get('dev_count')})") + + rows = [] + for i, e in enumerate(dev): + if not e["fast_path_resolved"]: + rows.append({ + "idx": i, + "text": e["text"], + "n_text": slice18_sparse.normalize_match_text(e["text"]), + "route": e["route"], + "tags": sorted(set(e.get("tags", []))), + "cv_fold": e["cv_fold"], + "split_group": e["split_group"], + "family_id": e["family_id"], + "source_id": e["source_id"], + }) + + na = [r for r in rows if r["route"] != "action"] + ood = [r for r in rows if r["route"] == "action"] + print(f"residual rows: {len(rows)} non-action: {len(na)} action(OOD): {len(ood)}") + + by_route = {} + for r in na: + by_route[r["route"]] = by_route.get(r["route"], 0) + 1 + print("routes:", by_route) + assert sum(by_route.values()) == len(na) + assert set(ROUTES) == set(by_route), "route set must be the five-way" + + by_family = {} + for r in na: + by_family[r["family_id"]] = by_family.get(r["family_id"], 0) + 1 + by_fold = {} + for r in na: + by_fold[r["cv_fold"]] = by_fold.get(r["cv_fold"], 0) + 1 + print(f"family_ids: {len(by_family)} split_groups: {len(set(r['split_group'] for r in na))}") + print("folds:", by_fold) + + os.makedirs(OUT_DIR, exist_ok=True) + with open(os.path.join(OUT_DIR, "pool.json"), "w") as f: + json.dump(na, f, ensure_ascii=False, indent=1) + with open(os.path.join(OUT_DIR, "ood.json"), "w") as f: + json.dump(ood, f, ensure_ascii=False, indent=1) + with open(os.path.join(OUT_DIR, "stats.json"), "w") as f: + json.dump({ + "dev_count": len(dev), + "residual_count": len(rows), + "non_action_count": len(na), + "action_ood_count": len(ood), + "routes": by_route, + "family_ids": len(by_family), + "folds": by_fold, + "top_family": dict(sorted(by_family.items(), key=lambda kv: -kv[1])[:15]), + }, f, ensure_ascii=False, indent=1) + print(f"wrote {OUT_DIR}/{{pool,ood,stats}}.json") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/cmd/semantic-router-experiment/slice23_main.py b/cmd/semantic-router-experiment/slice23_main.py new file mode 100644 index 0000000..b68915b --- /dev/null +++ b/cmd/semantic-router-experiment/slice23_main.py @@ -0,0 +1,559 @@ +#!/usr/bin/env python3 +""" +Slice 23: five-way residual non-action semantic router — corrected population +============================================================================ + +Slice 22 reported the corpus's fast-path mirror was stale next to the +production stage-0 grammars (185 residual rows resolved at runtime). Slice 23 +derives fast_path_resolved from the real router, rebuilds the corpus, and +re-measures the primary slice-22 results on the corrected residual pool. +Logic and configs are slice22_main.py verbatim; only OUT_DIR differs. + +Population: the corrected dev-pool residual non-action rows (1509; the pool +written by slice23_emit.py). Corrected action rows (720) are OOD probes only. + +Metrics written to /tmp/mvn-s23/results.json: + §1 population + §2 legacy baseline (legacy.json / legacy_heads.json): acc, macro-F1, + per-class P/R/F1, confusion, illegal_action_prediction count + §3 e5-linear primary head: C grid, grouped CV OOF, per-fold P/R/F1 + + variance + composition + §4 floors: majority, centroid (cosine nearest-mean), sparse word+char + TF-IDF logistic (slice18 builder), all grouped CV + §5 route-family (family_id) leave-family-out + §6 knowledge vs memory_write: matched pairs (water/homelab/task) ordering + §7 uncertain as an explicit class: P/R/F1 + top confusions + §8 OOF confidence: max-softmax correct/wrong, ECE, log-loss, Brier, + coverage/accuracy/macro-F1 abstention curves (no threshold chosen) + §9 action OOD probes: fold models applied to the corrected action rows + §10 artifact cost: head params, serialized bytes, incremental head latency + +No corpus label is changed. No frozen-holdout rows are inspected. +""" + +import json +import os +import sys +import time + +import numpy as np + +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, HERE) + +import slice18_sparse # noqa: E402 +import slice19_main # noqa: E402 + +EMB_PATH = "/tmp/mvn-experiment/embeddings.json" +OUT_DIR = "/tmp/mvn-s23" +CLASSES = ["conversation", "knowledge", "memory_write", "system", "uncertain"] +CLASS_PREFIX = ["conversation", "knowledge", "memory_write", "system", "uncertain"] +C_GRID = [0.1, 1.0, 10.0] + +# Route-family holdouts the report calls out by name (slice-22 brief): every +# family that is not part of the shared subject inventory on either side. +HOLDOUT_GROUPS = { + "capability": ["knowledge:capability-ha", "knowledge:capability-tool"], + "world": ["knowledge:world-def", "knowledge:world-explain"], + "calendar": ["knowledge:calendar", "knowledge:calendar-time", "knowledge:calendar-next"], + "recall": ["knowledge:recall-fact", "knowledge:recall-note", "knowledge:recall-possessive"], + "fact": ["fact:meal", "fact:water", "fact:sleep", "fact:shower", "fact:break", "fact:pills", "fact:exercise"], + "note": ["note:idea", "note:homelab", "note:task"], + "remember": ["free:remember"], + "system": None, # all system:* + "conversation": None, + "uncertain": None, +} + + +def load_pool_and_embeds(): + with open(os.path.join(OUT_DIR, "pool.json")) as f: + pool = json.load(f) + meta, examples = slice18_sparse.load_data() + dev = slice18_sparse.filter_dev_pool(examples) + by_idx = {e["dev_idx"]: e for e in dev} if "dev_idx" in dev[0] else None + # pool rows carry idx = position among dev_pool rows in dev order + emb_by_idx = {i: np.asarray(e["embedding"], dtype=np.float64) + for i, e in enumerate(dev)} + for r in pool: + r["emb"] = emb_by_idx[r["idx"]] + r["y"] = r["route"] + return pool, meta + + +def oof_proba_grouped(X, y, folds, C=1.0): + """Grouped OOF probability matrix (n×5, class order CLASSES).""" + y_idx = np.array([CLASSES.index(c) for c in y]) + folds = np.asarray(folds) + proba = np.zeros((len(y_idx), len(CLASSES))) + for te_fold in sorted(set(folds.tolist())): + tr = folds != te_fold + te = folds == te_fold + clf = slice18_sparse.LogisticRegression( + C=C, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(X[tr], y_idx[tr]) + proba[te] = clf.predict_proba(X[te]) + return proba + + +def cls_metrics(yt, yp): + import sklearn.metrics as m + yt = np.asarray(yt) + yp = np.asarray(yp) + if yt.dtype != np.int64 and yt.dtype != np.int32: + yt = np.array([CLASSES.index(c) for c in yt]) + if yp.dtype != np.int64 and yp.dtype != np.int32: + yp = np.array([CLASSES.index(c) for c in yp]) + labels = list(range(len(CLASSES))) + n = len(yt) + acc = m.accuracy_score(yt, yp) + macro = m.f1_score(yt, yp, average="macro", labels=labels, zero_division=0) + pr, rc, f1, sup = m.precision_recall_fscore_support( + yt, yp, labels=labels, zero_division=0) + per = {c: {"p": float(pr[i]), "r": float(rc[i]), "f1": float(f1[i]), "n": int(sup[i])} + for i, c in enumerate(CLASSES)} + conf = m.confusion_matrix(yt, yp, labels=labels).tolist() + return {"n": n, "acc": acc, "macro_f1": macro, "per_class": per, "confusion": conf} + + +def fold_report(yt, proba, folds, true_y): + out = {} + folds_arr = np.asarray(folds) + comp = {} + for f in sorted(set(folds_arr.tolist())): + mask = folds_arr == f + yt_f = [CLASSES.index(y) for y in true_y[mask]] + comp[f] = {c: int((np.array(true_y[mask]) == c).sum()) for c in CLASSES} + per_fold = {} + for f in sorted(set(folds_arr.tolist())): + mask = folds_arr == f + yp = proba[mask].argmax(1).tolist() + m = cls_metrics([yt[i] for i in np.where(mask)[0].tolist()], yp) + per_fold[f] = {"acc": m["acc"], "macro_f1": m["macro_f1"]} + out["composition"] = comp + out["per_fold"] = per_fold + accs = [v["acc"] for v in per_fold.values()] + macros = [v["macro_f1"] for v in per_fold.values()] + out["acc_mean"] = float(np.mean(accs)) + out["acc_std"] = float(np.std(accs)) + out["macro_f1_mean"] = float(np.mean(macros)) + out["macro_f1_std"] = float(np.std(macros)) + return out + + +def ece(yt, proba, n_bins=15): + conf = proba.max(1) + pred = proba.argmax(1) + acc = (pred == yt).astype(float) + bins = np.linspace(0, 1, n_bins + 1) + tot = 0.0 + details = [] + counts = 0 + for i in range(n_bins): + lo, hi = bins[i], bins[i + 1] + m = (conf >= lo) & (conf < hi) if i < n_bins - 1 else conf >= lo + if m.sum() == 0: + continue + acc_m = acc[m].mean() + conf_m = conf[m].mean() + w = m.sum() / len(conf) + tot += w * abs(acc_m - conf_m) + counts += int(m.sum()) + details.append({"bin": i, "lo": lo, "hi": hi, "conf": float(conf_m), + "acc": float(acc_m), "n": int(m.sum())}) + return {"ece": float(tot), "n_bins": n_bins, "counted": counts, "bins": details} + + +def main(): + pool, meta = load_pool_and_embeds() + pool.sort(key=lambda r: r["idx"]) + print(f"pool: {len(pool)} rows") + + from sklearn.metrics import brier_score_loss, log_loss + + report = {"population": {}, "legacy": {}, "e5_linear": {}, "floors": {}, + "family_holdouts": {}, "kmw": {}, "uncertain": {}, "confidence": {}, + "ood": {}, "artifact": {}} + + # ── §1 population ────────────────────────────────────────────────────── + cnt = {} + for r in pool: + cnt[r["y"]] = cnt.get(r["y"], 0) + 1 + report["population"] = { + "n": len(pool), + "routes": cnt, + "family_ids": len(set(r["family_id"] for r in pool)), + "split_groups": len(set(r["split_group"] for r in pool)), + "folds": {str(f): int(sum(1 for r in pool if r["cv_fold"] == f)) for f in sorted(set(r["cv_fold"] for r in pool))}, + "corpus": {k: v for k, v in meta.items() if k in + ("dev_count", "residual_count", "fast_path_count", + "dimension", "embedder_id", "input_template", "pooling", "normalization")}, + } + print("\n§1 population:", report["population"]) + + X = np.vstack([r["emb"] for r in pool]) + y = np.array([r["y"] for r in pool]) + folds = np.array([r["cv_fold"] for r in pool]) + yt = np.array([CLASSES.index(c) for c in y]) + + # ── §2 legacy baselines ──────────────────────────────────────────────── + import collections + for tag, fname in [("hash", "legacy.json"), ("heads", "legacy_heads.json")]: + path = os.path.join(OUT_DIR, fname) + if not os.path.exists(path): + continue + leg = json.load(open(path)) + leg_by_idx = {r["idx"]: r for r in leg} + yp_leg = [] + illegal = [] + for r in pool: + lr = leg_by_idx[r["idx"]] + if lr["illegal_action_prediction"]: + illegal.append(lr) + yp_leg.append("action") + else: + yp_leg.append(lr["class"]) + yp_leg = np.array(yp_leg) + # five-way: an 'action' prediction is an error (outside the label set) + yp5 = np.array([("uncertain" if p == "action" else p) for p in yp_leg]) + m = cls_metrics(y, yp5) + m["illegal_action_prediction"] = len(illegal) + m["illegal_cases"] = [{"idx": i["idx"], "text": i["text"], "route": i["route"], + "intent": i["intent"], "producer": i["producer"], + "confidence": i["confidence"]} for i in illegal] + # per-cell confusion also shows 'action' column + conf_counts = collections.Counter(zip(y, yp_leg)) + m["confusion_with_action"] = {f"{a}->{b}": int(c) for (a, b), c in conf_counts.items()} + report["legacy"][tag] = m + print(f"\n§2 legacy ({tag}) acc={m['acc']:.4f} macroF1={m['macro_f1']:.4f} " + f"illegal={len(illegal)}") + for c in CLASSES: + p = m["per_class"][c] + print(f" {c:<14} P={p['p']:.3f} R={p['r']:.3f} F1={p['f1']:.3f} n={p['n']}") + + # grammar-pure residual: rows not resolved by any current stage-0 grammar + if os.path.exists(os.path.join(OUT_DIR, "legacy.json")): + leg = json.load(open(os.path.join(OUT_DIR, "legacy.json"))) + gh = {r["idx"] for r in leg if r["producer"] == "grammar"} + gp_mask = np.array([r["idx"] not in gh for r in pool]) + report["grammar_drift"] = { + "grammar_hits_in_pool": len(gh), + "grammar_pure_n": int(gp_mask.sum()), + } + + # ── §3 e5-linear primary head ───────────────────────────────────────── + print("\n§3 e5-linear") + bestC, bestMac = 1.0, -1.0 + grid = {} + for C in C_GRID: + p = oof_proba_grouped(X, y, folds, C=C) + mp = cls_metrics(y, p.argmax(1).tolist()) + grid[float(C)] = {"acc": mp["acc"], "macro_f1": mp["macro_f1"]} + print(f" C={C} acc={mp['acc']:.4f} macroF1={mp['macro_f1']:.4f}") + if mp["macro_f1"] > bestMac: + bestMac, bestC = mp["macro_f1"], C + print(f" -> best C={bestC}") + p_best = oof_proba_grouped(X, y, folds, C=bestC) + m_best = cls_metrics(y, p_best.argmax(1).tolist()) + m_best["C"] = bestC + m_best["C_grid"] = grid + m_best["folds"] = fold_report(yt, p_best, folds, y) + report["e5_linear"] = m_best + for f, v in m_best["folds"]["per_fold"].items(): + print(f" fold {f}: acc={v['acc']:.4f} macroF1={v['macro_f1']:.4f}") + print(f" fold acc mean={m_best['folds']['acc_mean']:.4f} " + f"std={m_best['folds']['acc_std']:.4f}; " + f"macroF1 mean={m_best['folds']['macro_f1_mean']:.4f} " + f"std={m_best['folds']['macro_f1_std']:.4f}") + for c in CLASSES: + p_ = m_best["per_class"][c] + print(f" {c:<14} P={p_['p']:.3f} R={p_['r']:.3f} F1={p_['f1']:.3f} n={p_['n']}") + + # grammar-pure sensitivity for the primary head + if "grammar_drift" in report: + mp_gp = cls_metrics(y[gp_mask], p_best[gp_mask].argmax(1).tolist()) + report["e5_linear"]["grammar_pure"] = { + "acc": mp_gp["acc"], "macro_f1": mp_gp["macro_f1"], "n": int(gp_mask.sum())} + + # ── §4 floors ───────────────────────────────────────────────────────── + print("\n§4 floors") + # majority floor + maj = CLASSES.index("knowledge") + ym = np.full(len(y), maj) + mm = cls_metrics(y, ym) + report["floors"]["majority"] = {"acc": mm["acc"], "macro_f1": mm["macro_f1"], + "per_class": mm["per_class"]} + print(f" majority (predict {CLASSES[maj]}): acc={mm['acc']:.4f} macroF1={mm['macro_f1']:.4f}") + + # centroid floor: cosine to per-class mean of the training folds' embeddings + cf_proba = np.zeros((len(yt), len(CLASSES))) + folds_arr = np.asarray(folds) + for te_fold in sorted(set(folds_arr.tolist())): + tr = folds_arr != te_fold + te = folds_arr == te_fold + centroids = [] + for c in CLASSES: + idxs = np.where(tr & (y == c))[0] + ctr = X[idxs].mean(axis=0) + ctr = ctr / np.linalg.norm(ctr) + centroids.append(ctr) + Cm = np.vstack(centroids) + sims = X[te] @ Cm.T + cf_proba[te] = sims + yc = cf_proba.argmax(1) + # accuracy + macroF1 with the same 5-way + mc = cls_metrics(y, yc.tolist()) + report["floors"]["centroid"] = {"acc": mc["acc"], "macro_f1": mc["macro_f1"], + "per_class": mc["per_class"]} + print(f" centroid cosine: acc={mc['acc']:.4f} macroF1={mc['macro_f1']:.4f}") + + # sparse word+char logistic (slice18 builder, grouped CV, five-way) + texts = [r["n_text"] for r in pool] + Xs, _vec = slice18_sparse.build_features(texts, "both") + psp = np.zeros((len(yt), len(CLASSES))) + for te_fold in sorted(set(folds_arr.tolist())): + tr = folds_arr != te_fold + te = folds_arr == te_fold + clf = slice18_sparse.LogisticRegression( + C=1.0, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(Xs[tr], yt[tr]) + psp[te] = clf.predict_proba(Xs[te]) + msp = cls_metrics(y, psp.argmax(1).tolist()) + report["floors"]["sparse_word_char"] = { + "acc": msp["acc"], "macro_f1": msp["macro_f1"], "per_class": msp["per_class"], + "vocab": slice18_sparse.vocab_size(_vec)} + print(f" sparse both: acc={msp['acc']:.4f} macroF1={msp['macro_f1']:.4f} " + f"vocab={report['floors']['sparse_word_char']['vocab']}") + + # ── §5 route-family holdouts ───────────────────────────────────────── + print("\n§5 route-family holdouts") + fam = np.array([r["family_id"] for r in pool]) + holdouts = {} + all_fams = sorted(set(fam.tolist())) + for grp, fams in HOLDOUT_GROUPS.items(): + if fams is None: + fams = [f for f in all_fams if f.startswith(grp + ":")] + mask = np.isin(fam, fams) + if mask.sum() == 0: + continue + tr = ~mask + clf = slice18_sparse.LogisticRegression( + C=bestC, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(X[tr], yt[tr]) + ypgrp = clf.predict(X[mask]) + m = cls_metrics([CLASSES.index(c) for c in y[mask]], ypgrp.tolist()) + m["families"] = fams + m["rows"] = int(mask.sum()) + holdouts[grp] = {"acc": m["acc"], "macro_f1": m["macro_f1"], "n": int(mask.sum()), + "per_class": m["per_class"]} + print(f" {grp:<14} n={m['rows']} acc={m['acc']:.4f} macroF1={m['macro_f1']:.4f}") + # full leave-one-family-out summary + lofo_accs = [] + lofo_f1s = [] + for f in all_fams: + mask = fam == f + tr = ~mask + clf = slice18_sparse.LogisticRegression( + C=bestC, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(X[tr], yt[tr]) + ypf = clf.predict(X[mask]) + m = cls_metrics([CLASSES.index(c) for c in y[mask]], ypf.tolist()) + lofo_accs.append(m["acc"]) + lofo_f1s.append(m["macro_f1"]) + holdouts["_all_49_lo_"] = {"n_families": len(all_fams), + "acc_mean": float(np.mean(lofo_accs)), + "macro_f1_mean": float(np.mean(lofo_f1s))} + report["family_holdouts"] = holdouts + print(f" leave-one-family-out over {len(all_fams)} families: " + f"acc mean={np.mean(lofo_accs):.4f} macroF1 mean={np.mean(lofo_f1s):.4f}") + + # ── §6 knowledge vs memory_write ───────────────────────────────────── + print("\n§6 knowledge vs memory_write") + # reuse e5-linear OOF: does the model put the higher probability on the + # right side (memory_write for a write, knowledge for a recall)? + conf_km = np.zeros((2, 2)) + pk = p_best[:, CLASSES.index("knowledge")] + pmw = p_best[:, CLASSES.index("memory_write")] + for i in range(len(yt)): + t = y[i] + if t == "knowledge": + conf_km[0, 1 if pmw[i] > pk[i] else 0] += 1 + elif t == "memory_write": + conf_km[1, 1 if pmw[i] >= pk[i] else 0] += 1 + report["kmw"] = {"confusion_p_ordered": conf_km.tolist()} + + # matched pairs with shared subject lexemes, corpus-justified + def build_pairs(subject, fam_k, fam_mw): + kr = [r for r in pool if r["family_id"] in fam_k] + mr = [r for r in pool if r["family_id"] in fam_mw] + pairs = [] + for mw in mr: + for k in kr: + if subject in mw["n_text"] and subject in k["n_text"]: + pairs.append((mw["idx"], k["idx"], mw["n_text"], k["n_text"])) + return pairs + + sets = { + "water": build_pairs("вод", ["knowledge:recall-fact"], ["fact:water"]), + "homelab": build_pairs("dns", ["knowledge:homelab-status"], ["note:homelab"]) + + build_pairs("сервер", ["knowledge:homelab-status"], ["note:homelab"]) + + build_pairs("vlan", ["knowledge:homelab-status"], ["note:homelab"]), + "task": build_pairs("задач", ["knowledge:task-check", "knowledge:deadline"], + ["note:task"]), + } + idx_of = {r["idx"]: i for i, r in enumerate(pool)} + pair_rep = {} + for name, pairs in sets.items(): + if not pairs: + continue + ok = 0 + margins = [] + bad = [] + for mi, ki, mx, kx in pairs: + mi_i, ki_i = idx_of[mi], idx_of[ki] + # MW row should get a higher memory_write probability than the K row + mk = (pmw[mi_i] + 0.0) + if pmw[mi_i] > pmw[ki_i]: + ok += 1 + else: + bad.append((mx[:46], round(float(pmw[mi_i]), 3), kx[:46], round(float(pmw[ki_i]), 3))) + margins.append(pmw[mi_i] - pmw[ki_i]) + pair_rep[name] = { + "pairs": len(pairs), + "mw_over_k_order_acc": ok / len(pairs), + "mean_margin": float(np.mean(margins)), + "reversed_examples": bad[:6], + } + print(f" {name}: pairs={len(pairs)} order_acc={ok/len(pairs):.3f} " + f"mean_margin={np.mean(margins):+.3f}") + report["kmw"]["matched_pairs"] = pair_rep + + # ── §7 uncertain as explicit class ──────────────────────────────────── + print("\n§7 uncertain") + up = m_best["per_class"]["uncertain"] + uc = m_best["confusion"][CLASSES.index("uncertain")] + report["uncertain"] = { + "per_class": up, + "row_from_uncertain": {CLASSES[j]: int(uc[j]) for j in range(5)}, + "row_to_uncertain": {CLASSES[j]: int(m_best["confusion"][j][CLASSES.index("uncertain")]) + for j in range(5)}, + } + print(f" uncertain n={up['n']} P={up['p']:.3f} R={up['r']:.3f} F1={up['f1']:.3f}") + print(" wrong-→label pulled from uncertain:", report["uncertain"]["row_from_uncertain"]) + print(" →uncertain pulled from:", report["uncertain"]["row_to_uncertain"]) + + # ── §8 OOF confidence / calibration / abstention ───────────────────── + print("\n§8 confidence / calibration") + conf = p_best.max(1) + right = (p_best.argmax(1) == yt) + cer = { + "correct_conf_mean": float(conf[right].mean()), + "correct_conf_median": float(np.median(conf[right])), + "wrong_conf_mean": float(conf[~right].mean()), + "wrong_conf_median": float(np.median(conf[~right])), + "ece": ece(yt, p_best)["ece"], + "ece_bins": ece(yt, p_best)["bins"], + "log_loss": float(log_loss(yt, p_best, labels=[0, 1, 2, 3, 4])), + } + # Brier is label-set specific: one-vs-rest mean + briers = [] + for i in range(5): + briers.append(brier_score_loss((yt == i).astype(int), p_best[:, i])) + cer["brier_macro"] = float(np.mean(briers)) + report["confidence"] = cer + print(f" right conf mean={cer['correct_conf_mean']:.3f} " + f"wrong conf mean={cer['wrong_conf_mean']:.3f} ECE={cer['ece']:.4f}") + print(f" log_loss={cer['log_loss']:.4f} brier_macro={cer['brier_macro']:.4f}") + + thr_grid = np.linspace(0.10, 0.98, 45) + abst = [] + for t in thr_grid: + cov = (conf >= t).mean() + if cov == 0: + continue + keep = conf >= t + yt_k = yt[keep] + yp_k = p_best[keep].argmax(1) + mk_ = cls_metrics(yt_k.tolist(), yp_k.tolist()) + abst.append({"threshold": round(float(t), 3), "coverage": float(cov), + "accuracy": mk_["acc"], "macro_f1": mk_["macro_f1"]}) + report["confidence"]["abstention_curve"] = abst + print(" threshold | coverage | accuracy | macroF1 (first 6/45 + knee)") + for row in abst[::9]: + print(f" {row['threshold']:.2f} | {row['coverage']:.3f} | " + f"{row['accuracy']:.3f} | {row['macro_f1']:.3f}") + + # ── §9 action OOD probes ────────────────────────────────────────────── + print("\n§9 action OOD") + ood_rows = [r for r in json.load(open(os.path.join(OUT_DIR, "ood.json")))] + emb_by_idx = {i: np.asarray(e["embedding"], dtype=np.float64) + for i, e in enumerate(slice18_sparse.filter_dev_pool( + slice18_sparse.load_data()[1]))} + Xo = np.vstack([emb_by_idx[r["idx"]] for r in ood_rows]) + fold_models = [] + for te_fold in sorted(set(folds_arr.tolist())): + tr = folds_arr != te_fold + clf = slice18_sparse.LogisticRegression( + C=bestC, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(X[tr], yt[tr]) + fold_models.append(clf) + # XX + # comparable to the non-action in-fold behaviour + po = np.zeros((len(Xo), 5)) + for clf in fold_models: + po += clf.predict_proba(Xo) + po /= len(fold_models) + ood_top = int(np.argmax(po.mean(0))) + ood_conf = po.max(1) + ood_pred = po.argmax(1) + top_dist = {CLASSES[i]: int((ood_pred == i).sum()) for i in range(5)} + confident_na = int((ood_conf > 0.9).sum()) + report["ood"] = { + "n": len(ood_rows), + "top_class": CLASSES[int(ood_top)], + "top_class_dist": top_dist, + "conf_gt_0.9": confident_na, + "conf_gt_0.9_frac": float(confident_na / len(ood_rows)), + "conf_mean": float(ood_conf.mean()), + "conf_median": float(np.median(ood_conf)), + } + print(f" action OOD n={len(ood_rows)}: most-confident class={report['ood']['top_class']} " + f"dist={top_dist}") + print(f" conf>0.9: {confident_na} ({confident_na/len(ood_rows):.3f}) " + f"conf mean={report['ood']['conf_mean']:.3f}") + + # ── §10 artifact cost ──────────────────────────────────────────────── + print("\n§10 artifact") + n_params = len(CLASSES) * X.shape[1] + len(CLASSES) + fp32 = n_params * 4 + report["artifact"] = { + "e5_dim": X.shape[1], + "head_params": n_params, + "head_fp32_bytes": fp32, + "head_fp32_kib": fp32 / 1024, + "head_int8_bytes": n_params, + } + # incremental latency of the linear head over a batch of 1 (µs) + clf = slice18_sparse.LogisticRegression(C=bestC, max_iter=2000, solver="lbfgs", random_state=42) + clf.fit(X, yt) + x1 = X[:1] + for _ in range(50): + clf.predict_proba(x1) + lat = [] + for _ in range(2000): + t0 = time.perf_counter_ns() + clf.predict_proba(x1) + lat.append((time.perf_counter_ns() - t0) / 1e3) + lat = np.array(lat) + report["artifact"]["head_latency_us_mean"] = float(lat.mean()) + report["artifact"]["head_latency_us_p50"] = float(np.median(lat)) + print(f" head params={n_params} fp32={fp32/1024:.2f}KiB " + f"lat mean={lat.mean():.2f}us p50={np.median(lat):.2f}us") + + with open(os.path.join(OUT_DIR, "results.json"), "w") as f: + json.dump(report, f, ensure_ascii=False, indent=1, default=float) + print(f"\nwrote {OUT_DIR}/results.json") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/internal/router/semantic/corpus_v1.json b/internal/router/semantic/corpus_v1.json index a760b3d..bf8b28b 100644 --- a/internal/router/semantic/corpus_v1.json +++ b/internal/router/semantic/corpus_v1.json @@ -15,234 +15,132 @@ }, "examples": [ { - "text": "потом", - "route": "uncertain", - "source": "ru_routing_v1", - "source_id": "amb-005", - "split_group": "amb-005", - "tags": [ - "ambiguous", - "filler" - ], - "fast_path_resolved": false - }, - { - "text": "how long since the last backup finished", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "en-query-002", - "split_group": "en-query-002", - "tags": [ - "temporal" - ], - "fast_path_resolved": false - }, - { - "text": "wake me at 6:15", + "text": "покажи диск", "route": "action", - "source": "ru_routing_v1", - "source_id": "en-rem-002", - "split_group": "en-rem-002", + "source": "corpus_factory_v2", + "source_id": "act-disk-366", + "split_group": "act-disk", "tags": [ - "hard" + "homelab", + "read_only", + "system", + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { - "text": "включи вытяжку", + "text": "сколько места на диске", "route": "action", - "source": "ru_routing_v1", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "fast_path_resolved": false - }, - { - "text": "не включи вытяжку", - "route": "uncertain", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", + "source": "corpus_factory_v2", + "source_id": "act-disk-367", + "split_group": "act-disk", "tags": [ - "negation", - "safety" + "homelab", + "read_only", + "system", + "direct_imperative", + "router_residual" ], - "fast_path_resolved": false + "fast_path_resolved": false, + "router_residual": true }, { - "text": "ты включила вытяжку?", - "route": "knowledge", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "tags": [ - "question", - "safety" - ], - "fast_path_resolved": false - }, - { - "text": "он сказал включи вытяжку", - "route": "uncertain", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "tags": [ - "reported_speech", - "safety" - ], - "fast_path_resolved": false - }, - { - "text": "фраза «включи вытяжку»", - "route": "uncertain", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "tags": [ - "quotation", - "safety" - ], - "fast_path_resolved": false - }, - { - "text": "если включить вытяжку...", - "route": "uncertain", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "tags": [ - "hypothetical", - "safety" - ], - "fast_path_resolved": false - }, - { - "text": "ты можешь включить вытяжку?", - "route": "knowledge", - "source": "contrastive", - "source_id": "ru-act-004", - "split_group": "ru-act-004", - "tags": [ - "capability_question", - "safety" - ], - "fast_path_resolved": false - }, - { - "text": "что думаешь про переезд на другую квартиру", - "route": "conversation", - "source": "ru_routing_v1", - "source_id": "ru-chat-002", - "split_group": "ru-chat-002", - "fast_path_resolved": false - }, - { - "text": "поужинал", - "route": "memory_write", - "source": "ru_routing_v1", - "source_id": "ru-fact-003", - "split_group": "ru-fact-003", - "tags": [ - "single-word" - ], - "fast_path_resolved": false - }, - { - "text": "запиши идею: гидропоника на балконе", - "route": "memory_write", - "source": "ru_routing_v1", - "source_id": "ru-note-004", - "split_group": "ru-note-004", - "fast_path_resolved": false - }, - { - "text": "сколько воды я выпил с утра", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-001", - "split_group": "ru-query-001", - "tags": [ - "aggregate" - ], - "fast_path_resolved": false - }, - { - "text": "покажи давление за неделю", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-016", - "split_group": "ru-query-016", - "tags": [ - "hard", - "imperative" - ], - "fast_path_resolved": false - }, - { - "text": "что у меня стоит в календаре на послезавтра", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-019", - "split_group": "ru-query-019", - "tags": [ - "calendar", - "hard" - ], - "fast_path_resolved": false - }, - { - "text": "расскажи про битву при Ватерлоо", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-025", - "split_group": "ru-query-025", - "tags": [ - "world", - "no-question-word" - ], - "fast_path_resolved": false - }, - { - "text": "сколько будет 17 на 23?", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-027", - "split_group": "ru-query-027", - "tags": [ - "world", - "arithmetic", - "regression" - ], - "fast_path_resolved": true - }, - { - "text": "кто такой Линус Торвальдс?", - "route": "knowledge", - "source": "ru_routing_v1", - "source_id": "ru-query-029", - "split_group": "ru-query-029", - "tags": [ - "world", - "person", - "regression" - ], - "fast_path_resolved": false - }, - { - "text": "напомни завтра в 7 позвонить в клинику", + "text": "покажи диск, пожалуйста", "route": "action", - "source": "ru_routing_v1", - "source_id": "ru-rem-002", - "split_group": "ru-rem-002", - "fast_path_resolved": true + "source": "corpus_factory_v2", + "source_id": "act-disk-368", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true }, { - "text": "напомни послезавтра в 12 забрать заказ", + "text": "сколько места на диске, пожалуйста", "route": "action", - "source": "ru_routing_v1", - "source_id": "ru-rem-006", - "split_group": "ru-rem-006", - "fast_path_resolved": true + "source": "corpus_factory_v2", + "source_id": "act-disk-369", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь покажи диск, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "act-disk-370", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь сколько места на диске, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "act-disk-371", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу покажи диск", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "act-disk-372", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу сколько места на диске", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "act-disk-373", + "split_group": "act-disk", + "tags": [ + "homelab", + "read_only", + "system", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true }, { "text": "перезапусти сервис", @@ -1588,6 +1486,6655 @@ "fast_path_resolved": false, "router_residual": true }, + { + "text": "потом", + "route": "uncertain", + "source": "ru_routing_v1", + "source_id": "amb-005", + "split_group": "amb-005", + "tags": [ + "ambiguous", + "filler" + ], + "fast_path_resolved": false + }, + { + "text": "расскажи анекдот", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2820", + "split_group": "conversation:joke", + "tags": [ + "joke", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "шутка", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2821", + "split_group": "conversation:joke", + "tags": [ + "joke", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "tell me a joke", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2822", + "split_group": "conversation:joke", + "tags": [ + "joke", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "расскажи анекдот, пожалуйста", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2823", + "split_group": "conversation:joke", + "tags": [ + "joke", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "шутка, пожалуйста", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2824", + "split_group": "conversation:joke", + "tags": [ + "joke", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "tell me a joke, пожалуйста", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2825", + "split_group": "conversation:joke", + "tags": [ + "joke", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу расскажи анекдот", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2826", + "split_group": "conversation:joke", + "tags": [ + "joke", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу шутка", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2827", + "split_group": "conversation:joke", + "tags": [ + "joke", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу tell me a joke", + "route": "conversation", + "source": "corpus_factory_v2", + "source_id": "conv-joke-2828", + "split_group": "conversation:joke", + "tags": [ + "joke", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "how long since the last backup finished", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "en-query-002", + "split_group": "en-query-002", + "tags": [ + "temporal" + ], + "fast_path_resolved": false + }, + { + "text": "wake me at 6:15", + "route": "action", + "source": "ru_routing_v1", + "source_id": "en-rem-002", + "split_group": "en-rem-002", + "tags": [ + "hard" + ], + "fast_path_resolved": true + }, + { + "text": "запиши вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2174", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2175", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2176", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2177", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2178", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2179", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2180", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2181", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2182", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши вес 74 килограмма, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2183", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши вес 75 кг, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2184", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши вес 80 kilograms, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2185", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 74 килограмма, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2186", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 75 кг, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2187", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "отметь вес 80 kilograms, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2188", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 74 килограмма, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2189", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 75 кг, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2190", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "мой вес 80 kilograms, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2191", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запиши вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2192", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2193", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запиши вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2194", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2195", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запиши вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2196", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2197", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу отметь вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2198", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы отметь вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2199", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу отметь вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2200", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы отметь вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2201", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу отметь вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2202", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы отметь вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2203", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу мой вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2204", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы мой вес 74 килограмма", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2205", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу мой вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2206", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы мой вес 75 кг", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2207", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу мой вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2208", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы мой вес 80 kilograms", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2209", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "74 килограмма запиши вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2210", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "75 кг запиши вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2211", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "80 kilograms запиши вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2212", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "74 килограмма отметь вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2213", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "75 кг отметь вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2214", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "80 kilograms отметь вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2215", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "74 килограмма мой вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2216", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "75 кг мой вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2217", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "80 kilograms мой вес", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-fact-weight-2218", + "split_group": "fact:weight", + "tags": [ + "fact", + "unparsed-key", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2519", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2520", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2521", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2522", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2523", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2524", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2525", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2526", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2527", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя хорошо, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2528", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя голова, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2529", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я чувствую себя сегодня, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2530", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит хорошо, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2531", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит голова, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2532", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "у меня болит сегодня, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2533", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал хорошо, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2534", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал голова, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2535", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я устал сегодня, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2536", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я чувствую себя хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2537", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я чувствую себя хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2538", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я чувствую себя голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2539", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я чувствую себя голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2540", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я чувствую себя сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2541", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я чувствую себя сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2542", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу у меня болит хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2543", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы у меня болит хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2544", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу у меня болит голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2545", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы у меня болит голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2546", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу у меня болит сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2547", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы у меня болит сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2548", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я устал хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2549", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я устал хорошо", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2550", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я устал голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2551", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я устал голова", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2552", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу я устал сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2553", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы я устал сегодня", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2554", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "хорошо я чувствую себя", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2555", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "голова я чувствую себя", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2556", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сегодня я чувствую себя", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2557", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "хорошо у меня болит", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2558", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "голова у меня болит", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2559", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сегодня у меня болит", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2560", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "хорошо я устал", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2561", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "голова я устал", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2562", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сегодня я устал", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-free-state-2563", + "split_group": "free:state", + "tags": [ + "free_form", + "personal_state", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "закрой жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-641", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "закрой жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-642", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "опусти жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-643", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "опусти жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-644", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "закрой жалюзи в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-645", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "закрой жалюзи в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-646", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "опусти жалюзи в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-647", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "опусти жалюзи в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-648", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь закрой жалюзи в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-649", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you закрой жалюзи в спальне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-650", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь закрой жалюзи в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-651", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you закрой жалюзи в гостиной, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-652", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь опусти жалюзи в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-653", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you опусти жалюзи в спальне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-654", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь опусти жалюзи в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-655", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you опусти жалюзи в гостиной, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-656", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу закрой жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-657", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы закрой жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-658", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу закрой жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-659", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы закрой жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-660", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу опусти жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-661", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы опусти жалюзи в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-662", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу опусти жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-663", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы опусти жалюзи в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-664", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в спальне закрой жалюзи", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-665", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в гостиной закрой жалюзи", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-666", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в спальне опусти жалюзи", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-667", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в гостиной опусти жалюзи", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-cover-close-668", + "split_group": "ha-cover-close", + "tags": [ + "ha", + "cover", + "close", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи вентилятор в ванной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-725", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи вентилятор на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-726", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи вентилятор в ванной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-727", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи вентилятор на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-728", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи вентилятор в ванной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-729", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи вентилятор в ванной, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-730", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи вентилятор на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-731", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи вентилятор на кухне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-732", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи вентилятор в ванной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-733", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи вентилятор в ванной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-734", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи вентилятор на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-735", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи вентилятор на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-736", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в ванной включи вентилятор", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-737", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "на кухне включи вентилятор", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-fan-on-738", + "split_group": "ha-fan-on", + "tags": [ + "ha", + "fan", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-445", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-446", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-447", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-448", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-449", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-450", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-451", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-452", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-453", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-454", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-455", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи свет в коридоре, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-456", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-457", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-458", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-459", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включить свет в коридоре, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-460", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи свет в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-461", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи свет в спальне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-462", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи свет на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-463", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи свет на кухне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-464", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи свет в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-465", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи свет в гостиной, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-466", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включи свет в коридоре, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-467", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включи свет в коридоре, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-468", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включить свет в спальне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-469", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включить свет в спальне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-470", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включить свет на кухне, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-471", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включить свет на кухне, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-472", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включить свет в гостиной, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-473", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включить свет в гостиной, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-474", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "можешь включить свет в коридоре, пожалуйста", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-475", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "can you включить свет в коридоре, please", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-476", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "modal_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-477", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-478", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-479", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-480", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-481", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-482", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включи свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-483", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включи свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-484", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включить свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-485", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включить свет в спальне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-486", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включить свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-487", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включить свет на кухне", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-488", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включить свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-489", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включить свет в гостиной", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-490", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу включить свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-491", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы включить свет в коридоре", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-492", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в спальне включи свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-493", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "на кухне включи свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-494", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в гостиной включи свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-495", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в коридоре включи свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-496", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в спальне включить свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-497", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "на кухне включить свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-498", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в гостиной включить свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-499", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "в коридоре включить свет", + "route": "action", + "source": "corpus_factory_v2", + "source_id": "ha-light-on-500", + "split_group": "ha-light-on", + "tags": [ + "ha", + "light", + "turn_on", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1517", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1518", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1519", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1520", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1521", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1522", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит nginx, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1523", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит docker, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1524", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит DNS, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1525", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает nginx, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1526", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает docker, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1527", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает DNS, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1528", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему сервер тормозит nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1529", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему сервер тормозит nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1530", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему сервер тормозит docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1531", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему сервер тормозит docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1532", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему сервер тормозит DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1533", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему сервер тормозит DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1534", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему не работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1535", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему не работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1536", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему не работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1537", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему не работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1538", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу почему не работает DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1539", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы почему не работает DNS", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1540", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "nginx почему сервер тормозит", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1541", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "docker почему сервер тормозит", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1542", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "DNS почему сервер тормозит", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1543", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "nginx почему не работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1544", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "docker почему не работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1545", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "DNS почему не работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1546", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит nginx?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1547", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит docker?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1548", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему сервер тормозит DNS?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1549", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает nginx?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1550", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает docker?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1551", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "почему не работает DNS?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-homelab-why-1552", + "split_group": "knowledge:homelab-why", + "tags": [ + "homelab", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "во сколько я лёг", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1139", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "когда я в последний раз принимал", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1140", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "давно я не тренировался", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1141", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "во сколько я лёг, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1142", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "когда я в последний раз принимал, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1143", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "давно я не тренировался, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1144", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу во сколько я лёг", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1145", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу когда я в последний раз принимал", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1146", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу давно я не тренировался", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1147", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "во сколько я лёг?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1148", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "когда я в последний раз принимал?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1149", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "давно я не тренировался?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-recall-temporal-1150", + "split_group": "knowledge:recall-temporal", + "tags": [ + "recall", + "temporal", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1662", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1663", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1664", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1665", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1666", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1667", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть завтра, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1668", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть послезавтра, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1669", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть эту неделю, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1670", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на завтра, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1671", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на послезавтра, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1672", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на эту неделю, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1673", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу напоминания на завтра есть завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1674", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы напоминания на завтра есть завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1675", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу напоминания на завтра есть послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1676", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы напоминания на завтра есть послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1677", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу напоминания на завтра есть эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1678", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы напоминания на завтра есть эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1679", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу есть напоминания на завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1680", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы есть напоминания на завтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1681", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу есть напоминания на послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1682", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы есть напоминания на послезавтра", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1683", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу есть напоминания на эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1684", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы есть напоминания на эту неделю", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1685", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "завтра напоминания на завтра есть", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1686", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "послезавтра напоминания на завтра есть", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1687", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "эту неделю напоминания на завтра есть", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1688", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "завтра есть напоминания на", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1689", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "послезавтра есть напоминания на", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1690", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "эту неделю есть напоминания на", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1691", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть завтра?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1692", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть послезавтра?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1693", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "напоминания на завтра есть эту неделю?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1694", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на завтра?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1695", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на послезавтра?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1696", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "есть напоминания на эту неделю?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-reminder-check-1697", + "split_group": "knowledge:reminder-check", + "tags": [ + "reminder-shaped", + "hard", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1349", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1350", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1351", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1352", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1353", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1354", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1355", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1356", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1357", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1358", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1359", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1360", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает nginx, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1361", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает docker, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1362", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает Git, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1363", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает SSH, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1364", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить nginx, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1365", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить docker, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1366", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить Git, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1367", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить SSH, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1368", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить nginx, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1369", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить docker, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1370", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить Git, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1371", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить SSH, пожалуйста", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1372", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1373", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как работает nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1374", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1375", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как работает docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1376", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как работает Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1377", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как работает Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1378", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как работает SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1379", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как работает SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1380", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как настроить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1381", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как настроить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1382", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как настроить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1383", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как настроить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1384", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как настроить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1385", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как настроить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1386", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как настроить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1387", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как настроить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1388", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как починить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1389", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как починить nginx", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1390", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как починить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1391", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как починить docker", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1392", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как починить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1393", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как починить Git", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1394", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу как починить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1395", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы как починить SSH", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1396", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "nginx как работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1397", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "docker как работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1398", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "Git как работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1399", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "SSH как работает", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1400", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "nginx как настроить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1401", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "docker как настроить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1402", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "Git как настроить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1403", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "SSH как настроить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1404", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "nginx как починить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1405", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "docker как починить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1406", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "Git как починить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1407", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "SSH как починить", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1408", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает nginx?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1409", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает docker?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1410", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает Git?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1411", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как работает SSH?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1412", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить nginx?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1413", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить docker?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1414", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить Git?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1415", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как настроить SSH?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1416", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить nginx?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1417", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить docker?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1418", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить Git?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1419", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "как починить SSH?", + "route": "knowledge", + "source": "corpus_factory_v2", + "source_id": "kq-world-how-1420", + "split_group": "knowledge:world-how", + "tags": [ + "world", + "howto", + "question", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2294", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2295", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2296", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2297", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2298", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2299", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2300", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2301", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2302", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "note: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2303", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative" + ], + "fast_path_resolved": true + }, + { + "text": "note: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2304", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative" + ], + "fast_path_resolved": true + }, + { + "text": "note: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2305", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "direct_imperative" + ], + "fast_path_resolved": true + }, + { + "text": "запиши что кран на кухне капает, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2306", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши что домен продлить в августе, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2307", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запиши что сосед просил номер электрика, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2308", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: кран на кухне капает, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2309", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: домен продлить в августе, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2310", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "заметка: сосед просил номер электрика, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2311", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что кран на кухне капает, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2312", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что домен продлить в августе, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2313", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "запомни что сосед просил номер электрика, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2314", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "note: кран на кухне капает, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2315", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request" + ], + "fast_path_resolved": true + }, + { + "text": "note: домен продлить в августе, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2316", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request" + ], + "fast_path_resolved": true + }, + { + "text": "note: сосед просил номер электрика, пожалуйста", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2317", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "polite_request" + ], + "fast_path_resolved": true + }, + { + "text": "я хочу запиши что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2318", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2319", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запиши что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2320", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2321", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запиши что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2322", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запиши что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2323", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу заметка: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2324", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы заметка: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2325", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу заметка: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2326", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы заметка: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2327", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу заметка: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2328", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы заметка: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2329", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запомни что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2330", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запомни что кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2331", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запомни что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2332", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запомни что домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2333", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу запомни что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2334", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы запомни что сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2335", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу note: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2336", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы note: кран на кухне капает", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2337", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу note: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2338", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы note: домен продлить в августе", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2339", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу note: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2340", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "надо бы note: сосед просил номер электрика", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2341", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "кран на кухне капает запиши что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2342", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "домен продлить в августе запиши что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2343", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сосед просил номер электрика запиши что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2344", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "кран на кухне капает заметка:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2345", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "домен продлить в августе заметка:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2346", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сосед просил номер электрика заметка:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2347", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "кран на кухне капает запомни что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2348", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "домен продлить в августе запомни что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2349", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сосед просил номер электрика запомни что", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2350", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "кран на кухне капает note:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2351", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "домен продлить в августе note:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2352", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "сосед просил номер электрика note:", + "route": "memory_write", + "source": "corpus_factory_v2", + "source_id": "mw-note-explicit-2353", + "split_group": "note:explicit", + "tags": [ + "note", + "capture", + "reordered_target", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "включи вытяжку", + "route": "action", + "source": "ru_routing_v1", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "fast_path_resolved": false + }, + { + "text": "не включи вытяжку", + "route": "uncertain", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "negation", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "ты включила вытяжку?", + "route": "knowledge", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "question", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "он сказал включи вытяжку", + "route": "uncertain", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "reported_speech", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "фраза «включи вытяжку»", + "route": "uncertain", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "quotation", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "если включить вытяжку...", + "route": "uncertain", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "hypothetical", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "ты можешь включить вытяжку?", + "route": "knowledge", + "source": "contrastive", + "source_id": "ru-act-004", + "split_group": "ru-act-004", + "tags": [ + "capability_question", + "safety" + ], + "fast_path_resolved": false + }, + { + "text": "что думаешь про переезд на другую квартиру", + "route": "conversation", + "source": "ru_routing_v1", + "source_id": "ru-chat-002", + "split_group": "ru-chat-002", + "fast_path_resolved": false + }, + { + "text": "поужинал", + "route": "memory_write", + "source": "ru_routing_v1", + "source_id": "ru-fact-003", + "split_group": "ru-fact-003", + "tags": [ + "single-word" + ], + "fast_path_resolved": false + }, + { + "text": "запиши идею: гидропоника на балконе", + "route": "memory_write", + "source": "ru_routing_v1", + "source_id": "ru-note-004", + "split_group": "ru-note-004", + "fast_path_resolved": false + }, + { + "text": "сколько воды я выпил с утра", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-001", + "split_group": "ru-query-001", + "tags": [ + "aggregate" + ], + "fast_path_resolved": false + }, + { + "text": "покажи давление за неделю", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-016", + "split_group": "ru-query-016", + "tags": [ + "hard", + "imperative" + ], + "fast_path_resolved": false + }, + { + "text": "что у меня стоит в календаре на послезавтра", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-019", + "split_group": "ru-query-019", + "tags": [ + "calendar", + "hard" + ], + "fast_path_resolved": false + }, + { + "text": "расскажи про битву при Ватерлоо", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-025", + "split_group": "ru-query-025", + "tags": [ + "world", + "no-question-word" + ], + "fast_path_resolved": false + }, + { + "text": "сколько будет 17 на 23?", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-027", + "split_group": "ru-query-027", + "tags": [ + "world", + "arithmetic", + "regression" + ], + "fast_path_resolved": true + }, + { + "text": "кто такой Линус Торвальдс?", + "route": "knowledge", + "source": "ru_routing_v1", + "source_id": "ru-query-029", + "split_group": "ru-query-029", + "tags": [ + "world", + "person", + "regression" + ], + "fast_path_resolved": false + }, + { + "text": "напомни завтра в 7 позвонить в клинику", + "route": "action", + "source": "ru_routing_v1", + "source_id": "ru-rem-002", + "split_group": "ru-rem-002", + "fast_path_resolved": true + }, + { + "text": "напомни послезавтра в 12 забрать заказ", + "route": "action", + "source": "ru_routing_v1", + "source_id": "ru-rem-006", + "split_group": "ru-rem-006", + "fast_path_resolved": true + }, + { + "text": "то что я говорил", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2955", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "про это", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2956", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "из предыдущего", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2957", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "direct_imperative", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "то что я говорил, пожалуйста", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2958", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "про это, пожалуйста", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2959", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "из предыдущего, пожалуйста", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2960", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "polite_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу то что я говорил", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2961", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу про это", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2962", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, + { + "text": "я хочу из предыдущего", + "route": "uncertain", + "source": "corpus_factory_v2", + "source_id": "unc-referral-2963", + "split_group": "uncertain:referral", + "tags": [ + "ambiguous", + "anaphora", + "first_person_request", + "router_residual" + ], + "fast_path_resolved": false, + "router_residual": true + }, { "text": "останови сервис", "route": "action", @@ -3668,11 +10215,9 @@ "homelab", "destructive", "docker", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "nexus перезапусти контейнер", @@ -3732,11 +10277,9 @@ "homelab", "destructive", "docker", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "nexus перезагрузи контейнер", @@ -4084,11 +10627,9 @@ "homelab", "destructive", "docker", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "nexus останови контейнер", @@ -5844,9 +12385,11 @@ "homelab", "read_only", "system", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "аптайм", @@ -5890,9 +12433,11 @@ "homelab", "read_only", "system", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "аптайм, пожалуйста", @@ -6022,134 +12567,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "покажи диск", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-366", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сколько места на диске", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-367", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "покажи диск, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-368", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сколько места на диске, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-369", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь покажи диск, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-370", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь сколько места на диске, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-371", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу покажи диск", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-372", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу сколько места на диске", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "act-disk-373", - "split_group": "act-disk", - "tags": [ - "homelab", - "read_only", - "system", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "покажи память", "route": "action", @@ -7286,902 +13703,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "включи свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-445", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-446", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-447", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-448", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-449", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-450", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-451", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-452", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-453", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-454", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-455", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи свет в коридоре, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-456", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-457", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-458", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-459", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включить свет в коридоре, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-460", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи свет в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-461", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи свет в спальне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-462", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи свет на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-463", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи свет на кухне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-464", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи свет в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-465", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи свет в гостиной, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-466", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи свет в коридоре, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-467", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи свет в коридоре, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-468", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включить свет в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-469", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включить свет в спальне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-470", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включить свет на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-471", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включить свет на кухне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-472", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включить свет в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-473", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включить свет в гостиной, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-474", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включить свет в коридоре, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-475", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включить свет в коридоре, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-476", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-477", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-478", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-479", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-480", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-481", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-482", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-483", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-484", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включить свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-485", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включить свет в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-486", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включить свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-487", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включить свет на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-488", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включить свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-489", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включить свет в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-490", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включить свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-491", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включить свет в коридоре", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-492", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в спальне включи свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-493", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "на кухне включи свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-494", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в гостиной включи свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-495", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в коридоре включи свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-496", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в спальне включить свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-497", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "на кухне включить свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-498", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в гостиной включить свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-499", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в коридоре включить свет", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-light-on-500", - "split_group": "ha-light-on", - "tags": [ - "ha", - "light", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "выключи свет в спальне", "route": "action", @@ -10422,454 +15943,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "закрой жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-641", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "закрой жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-642", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "опусти жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-643", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "опусти жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-644", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "закрой жалюзи в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-645", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "закрой жалюзи в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-646", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "опусти жалюзи в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-647", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "опусти жалюзи в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-648", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь закрой жалюзи в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-649", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you закрой жалюзи в спальне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-650", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь закрой жалюзи в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-651", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you закрой жалюзи в гостиной, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-652", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь опусти жалюзи в спальне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-653", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you опусти жалюзи в спальне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-654", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь опусти жалюзи в гостиной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-655", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you опусти жалюзи в гостиной, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-656", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу закрой жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-657", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы закрой жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-658", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу закрой жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-659", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы закрой жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-660", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу опусти жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-661", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы опусти жалюзи в спальне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-662", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу опусти жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-663", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы опусти жалюзи в гостиной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-664", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в спальне закрой жалюзи", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-665", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в гостиной закрой жалюзи", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-666", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в спальне опусти жалюзи", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-667", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в гостиной опусти жалюзи", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-cover-close-668", - "split_group": "ha-cover-close", - "tags": [ - "ha", - "cover", - "close", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "запри дверь входную", "route": "action", @@ -11766,230 +16839,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "включи вентилятор в ванной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-725", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи вентилятор на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-726", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи вентилятор в ванной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-727", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "включи вентилятор на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-728", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи вентилятор в ванной, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-729", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи вентилятор в ванной, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-730", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "можешь включи вентилятор на кухне, пожалуйста", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-731", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "can you включи вентилятор на кухне, please", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-732", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "modal_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи вентилятор в ванной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-733", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи вентилятор в ванной", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-734", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу включи вентилятор на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-735", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы включи вентилятор на кухне", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-736", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "в ванной включи вентилятор", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-737", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "на кухне включи вентилятор", - "route": "action", - "source": "corpus_factory_v2", - "source_id": "ha-fan-on-738", - "split_group": "ha-fan-on", - "tags": [ - "ha", - "fan", - "turn_on", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "выключи вентилятор в ванной", "route": "action", @@ -12223,11 +17072,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрыть", @@ -12238,11 +17085,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "resolve", @@ -12253,11 +17098,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "close", @@ -12268,11 +17111,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрой, пожалуйста", @@ -12493,11 +17334,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "ack", @@ -12508,11 +17347,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "принято, пожалуйста", @@ -12703,11 +17540,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "игнорировать", @@ -12718,11 +17553,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "пропусти", @@ -12733,11 +17566,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "ignore", @@ -12748,11 +17579,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "skip", @@ -12763,11 +17592,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "игнорируй, пожалуйста", @@ -13003,11 +17830,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрепить", @@ -13018,11 +17843,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "pin", @@ -13033,11 +17856,9 @@ "tags": [ "praxis", "lifecycle", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрепи, пожалуйста", @@ -13183,11 +18004,9 @@ "tags": [ "praxis", "attention", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что нового по задачам", @@ -13198,11 +18017,9 @@ "tags": [ "praxis", "attention", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что требует внимания, пожалуйста", @@ -13228,11 +18045,9 @@ "tags": [ "praxis", "attention", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "можешь что требует внимания, пожалуйста", @@ -13258,11 +18073,9 @@ "tags": [ "praxis", "attention", - "modal_request", - "router_residual" + "modal_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что требует внимания", @@ -13288,11 +18101,9 @@ "tags": [ "praxis", "attention", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что изменилось", @@ -13303,11 +18114,9 @@ "tags": [ "praxis", "changes", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие изменения", @@ -13318,11 +18127,9 @@ "tags": [ "praxis", "changes", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что изменилось, пожалуйста", @@ -13423,11 +18230,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрой задачу оплатить интернет", @@ -13438,11 +18243,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрой задачу починить кран", @@ -13453,11 +18256,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу купить молоко", @@ -13468,11 +18269,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу оплатить интернет", @@ -13483,11 +18282,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу починить кран", @@ -13498,11 +18295,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "close the task купить молоко", @@ -13591,11 +18386,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрой задачу оплатить интернет, пожалуйста", @@ -13606,11 +18399,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "закрой задачу починить кран, пожалуйста", @@ -13621,11 +18412,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу купить молоко, пожалуйста", @@ -13636,11 +18425,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу оплатить интернет, пожалуйста", @@ -13651,11 +18438,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "заверши задачу починить кран, пожалуйста", @@ -13666,11 +18451,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "close the task купить молоко, пожалуйста", @@ -14659,11 +19442,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "убери задачу оплатить интернет", @@ -14674,11 +19455,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "удали задачу купить молоко", @@ -14689,11 +19468,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "удали задачу оплатить интернет", @@ -14704,11 +19481,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "отмени задачу купить молоко", @@ -14719,11 +19494,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "отмени задачу оплатить интернет", @@ -14734,11 +19507,9 @@ "tags": [ "task", "status", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "drop the task купить молоко", @@ -14801,11 +19572,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "убери задачу оплатить интернет, пожалуйста", @@ -14816,11 +19585,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "удали задачу купить молоко, пожалуйста", @@ -14831,11 +19598,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "удали задачу оплатить интернет, пожалуйста", @@ -14846,11 +19611,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "отмени задачу купить молоко, пожалуйста", @@ -14861,11 +19624,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "отмени задачу оплатить интернет, пожалуйста", @@ -14876,11 +19637,9 @@ "tags": [ "task", "status", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "drop the task купить молоко, пожалуйста", @@ -15692,11 +20451,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на послезавтра", @@ -15706,11 +20463,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на эту неделю", @@ -15720,11 +20475,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на следующую неделю", @@ -15734,11 +20487,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на завтра", @@ -15748,11 +20499,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на послезавтра", @@ -15762,11 +20511,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на эту неделю", @@ -15804,11 +20551,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на послезавтра", @@ -15818,11 +20563,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на эту неделю", @@ -15832,11 +20575,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на следующую неделю", @@ -15846,11 +20587,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на завтра, пожалуйста", @@ -15860,11 +20599,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на послезавтра, пожалуйста", @@ -15874,11 +20611,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на эту неделю, пожалуйста", @@ -15888,11 +20623,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на следующую неделю, пожалуйста", @@ -15902,11 +20635,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на завтра, пожалуйста", @@ -15972,11 +20703,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на послезавтра, пожалуйста", @@ -15986,11 +20715,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на эту неделю, пожалуйста", @@ -16000,11 +20727,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на следующую неделю, пожалуйста", @@ -16014,11 +20739,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня в календаре на завтра", @@ -16028,11 +20751,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что у меня в календаре на завтра", @@ -16042,11 +20763,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня в календаре на послезавтра", @@ -16056,11 +20775,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что у меня в календаре на послезавтра", @@ -16070,11 +20787,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня в календаре на эту неделю", @@ -16084,11 +20799,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что у меня в календаре на эту неделю", @@ -16098,11 +20811,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня в календаре на следующую неделю", @@ -16112,11 +20823,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что у меня в календаре на следующую неделю", @@ -16126,11 +20835,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу какие планы на завтра", @@ -16140,11 +20847,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы какие планы на завтра", @@ -16154,11 +20859,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу какие планы на послезавтра", @@ -16168,11 +20871,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы какие планы на послезавтра", @@ -16182,11 +20883,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу какие планы на эту неделю", @@ -16252,11 +20951,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что стоит в календаре на завтра", @@ -16266,11 +20963,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что стоит в календаре на послезавтра", @@ -16280,11 +20975,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что стоит в календаре на послезавтра", @@ -16294,11 +20987,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что стоит в календаре на эту неделю", @@ -16308,11 +20999,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что стоит в календаре на эту неделю", @@ -16322,11 +21011,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что стоит в календаре на следующую неделю", @@ -16336,11 +21023,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что стоит в календаре на следующую неделю", @@ -16350,11 +21035,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на завтра что у меня в календаре", @@ -16364,11 +21047,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на послезавтра что у меня в календаре", @@ -16378,11 +21059,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на эту неделю что у меня в календаре", @@ -16392,11 +21071,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на следующую неделю что у меня в календаре", @@ -16406,11 +21083,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на завтра какие планы", @@ -16476,11 +21151,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на послезавтра что стоит в календаре", @@ -16490,11 +21163,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на эту неделю что стоит в календаре", @@ -16504,11 +21175,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "на следующую неделю что стоит в календаре", @@ -16518,11 +21187,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на завтра?", @@ -16532,11 +21199,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на послезавтра?", @@ -16546,11 +21211,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на эту неделю?", @@ -16560,11 +21223,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре на следующую неделю?", @@ -16574,11 +21235,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на завтра?", @@ -16588,11 +21247,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на послезавтра?", @@ -16602,11 +21259,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие планы на эту неделю?", @@ -16644,11 +21299,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на послезавтра?", @@ -16658,11 +21311,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на эту неделю?", @@ -16672,11 +21323,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что стоит в календаре на следующую неделю?", @@ -16686,11 +21335,9 @@ "split_group": "knowledge:calendar", "tags": [ "calendar", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "во сколько встреча", @@ -16701,11 +21348,9 @@ "tags": [ "calendar", "temporal", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "когда планёрка", @@ -16716,11 +21361,9 @@ "tags": [ "calendar", "temporal", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "когда собес", @@ -16836,11 +21479,9 @@ "tags": [ "calendar", "temporal", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "когда планёрка?", @@ -16851,11 +21492,9 @@ "tags": [ "calendar", "temporal", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "когда собес?", @@ -16881,11 +21520,9 @@ "tags": [ "calendar", "hard", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что дальше по плану", @@ -16896,11 +21533,9 @@ "tags": [ "calendar", "hard", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что дальше, пожалуйста", @@ -16926,11 +21561,9 @@ "tags": [ "calendar", "hard", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что дальше", @@ -16971,11 +21604,9 @@ "tags": [ "calendar", "hard", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что дальше по плану?", @@ -16986,11 +21617,9 @@ "tags": [ "calendar", "hard", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "сколько воды я выпил", @@ -17844,198 +22473,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "во сколько я лёг", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1139", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "когда я в последний раз принимал", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1140", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "давно я не тренировался", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1141", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "во сколько я лёг, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1142", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "когда я в последний раз принимал, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1143", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "давно я не тренировался, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1144", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу во сколько я лёг", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1145", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу когда я в последний раз принимал", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1146", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу давно я не тренировался", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1147", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "во сколько я лёг?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1148", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "когда я в последний раз принимал?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1149", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "давно я не тренировался?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-recall-temporal-1150", - "split_group": "knowledge:recall-temporal", - "tags": [ - "recall", - "temporal", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "какой у меня любимый язык", "route": "knowledge", @@ -18075,11 +22512,9 @@ "tags": [ "recall", "possessive", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "мой вес за последний язык", @@ -18120,11 +22555,9 @@ "tags": [ "recall", "possessive", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня язык", @@ -18135,11 +22568,9 @@ "tags": [ "recall", "possessive", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня месяц", @@ -18150,11 +22581,9 @@ "tags": [ "recall", "possessive", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре", @@ -18165,11 +22594,9 @@ "tags": [ "recall", "possessive", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какой у меня любимый язык, пожалуйста", @@ -18210,11 +22637,9 @@ "tags": [ "recall", "possessive", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "мой вес за последний язык, пожалуйста", @@ -18255,11 +22680,9 @@ "tags": [ "recall", "possessive", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня язык, пожалуйста", @@ -18270,11 +22693,9 @@ "tags": [ "recall", "possessive", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня месяц, пожалуйста", @@ -18285,11 +22706,9 @@ "tags": [ "recall", "possessive", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре, пожалуйста", @@ -18300,11 +22719,9 @@ "tags": [ "recall", "possessive", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу какой у меня любимый язык", @@ -18375,11 +22792,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы какой у меня любимый в календаре", @@ -18390,11 +22805,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу мой вес за последний язык", @@ -18465,11 +22878,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы мой вес за последний в календаре", @@ -18480,11 +22891,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня язык", @@ -18555,11 +22964,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "надо бы что у меня в календаре", @@ -18570,11 +22977,9 @@ "tags": [ "recall", "possessive", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "язык какой у меня любимый", @@ -18615,11 +23020,9 @@ "tags": [ "recall", "possessive", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "язык мой вес за последний", @@ -18660,11 +23063,9 @@ "tags": [ "recall", "possessive", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "язык что у меня", @@ -18705,11 +23106,9 @@ "tags": [ "recall", "possessive", - "reordered_target", - "router_residual" + "reordered_target" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какой у меня любимый язык?", @@ -18750,11 +23149,9 @@ "tags": [ "recall", "possessive", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "мой вес за последний язык?", @@ -18795,11 +23192,9 @@ "tags": [ "recall", "possessive", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня язык?", @@ -18810,11 +23205,9 @@ "tags": [ "recall", "possessive", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня месяц?", @@ -18825,11 +23218,9 @@ "tags": [ "recall", "possessive", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня в календаре?", @@ -18840,11 +23231,9 @@ "tags": [ "recall", "possessive", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое TCP", @@ -18855,11 +23244,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Docker", @@ -18870,11 +23257,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Kubernetes", @@ -18885,11 +23270,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Linus Torvalds", @@ -18900,11 +23283,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое React", @@ -18915,11 +23296,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой TCP", @@ -18930,11 +23309,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Docker", @@ -18945,11 +23322,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Kubernetes", @@ -18960,11 +23335,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Linus Torvalds", @@ -18975,11 +23348,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой React", @@ -18990,11 +23361,9 @@ "tags": [ "world", "definition", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что значит TCP", @@ -19080,11 +23449,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Docker, пожалуйста", @@ -19095,11 +23462,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Kubernetes, пожалуйста", @@ -19110,11 +23475,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Linus Torvalds, пожалуйста", @@ -19125,11 +23488,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое React, пожалуйста", @@ -19140,11 +23501,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой TCP, пожалуйста", @@ -19155,11 +23514,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Docker, пожалуйста", @@ -19170,11 +23527,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Kubernetes, пожалуйста", @@ -19185,11 +23540,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Linus Torvalds, пожалуйста", @@ -19200,11 +23553,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой React, пожалуйста", @@ -19215,11 +23566,9 @@ "tags": [ "world", "definition", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что значит TCP, пожалуйста", @@ -19980,11 +24329,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Docker?", @@ -19995,11 +24342,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Kubernetes?", @@ -20010,11 +24355,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое Linus Torvalds?", @@ -20025,11 +24368,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что такое React?", @@ -20040,11 +24381,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой TCP?", @@ -20055,11 +24394,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Docker?", @@ -20070,11 +24407,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Kubernetes?", @@ -20085,11 +24420,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой Linus Torvalds?", @@ -20100,11 +24433,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "кто такой React?", @@ -20115,11 +24446,9 @@ "tags": [ "world", "definition", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что значит TCP?", @@ -20205,11 +24534,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про машинное обучение", @@ -20220,11 +24547,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни битву при Ватерлоо", @@ -20235,11 +24560,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни quantum computing", @@ -20250,11 +24573,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни машинное обучение", @@ -20265,11 +24586,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши битву при Ватерлоо", @@ -20280,11 +24599,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши quantum computing", @@ -20295,11 +24612,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши машинное обучение", @@ -20310,11 +24625,9 @@ "tags": [ "world", "narrative", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про битву при Ватерлоо, пожалуйста", @@ -20325,11 +24638,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про quantum computing, пожалуйста", @@ -20340,11 +24651,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про машинное обучение, пожалуйста", @@ -20355,11 +24664,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни битву при Ватерлоо, пожалуйста", @@ -20370,11 +24677,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни quantum computing, пожалуйста", @@ -20385,11 +24690,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни машинное обучение, пожалуйста", @@ -20400,11 +24703,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши битву при Ватерлоо, пожалуйста", @@ -20415,11 +24716,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши quantum computing, пожалуйста", @@ -20430,11 +24729,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши машинное обучение, пожалуйста", @@ -20445,11 +24742,9 @@ "tags": [ "world", "narrative", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу расскажи про битву при Ватерлоо", @@ -20865,11 +25160,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про quantum computing?", @@ -20880,11 +25173,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "расскажи про машинное обучение?", @@ -20895,11 +25186,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни битву при Ватерлоо?", @@ -20910,11 +25199,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни quantum computing?", @@ -20925,11 +25212,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "объясни машинное обучение?", @@ -20940,11 +25225,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши битву при Ватерлоо?", @@ -20955,11 +25238,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши quantum computing?", @@ -20970,11 +25251,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "опиши машинное обучение?", @@ -20985,1091 +25264,9 @@ "tags": [ "world", "narrative", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1349", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1350", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1351", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1352", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1353", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1354", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1355", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1356", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1357", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1358", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1359", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1360", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает nginx, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1361", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает docker, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1362", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает Git, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1363", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает SSH, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1364", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить nginx, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1365", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить docker, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1366", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить Git, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1367", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить SSH, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1368", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить nginx, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1369", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить docker, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1370", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить Git, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1371", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить SSH, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1372", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1373", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1374", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1375", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1376", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как работает Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1377", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как работает Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1378", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как работает SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1379", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как работает SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1380", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как настроить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1381", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как настроить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1382", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как настроить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1383", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как настроить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1384", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как настроить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1385", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как настроить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1386", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как настроить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1387", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как настроить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1388", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как починить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1389", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как починить nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1390", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как починить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1391", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как починить docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1392", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как починить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1393", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как починить Git", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1394", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу как починить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1395", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы как починить SSH", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1396", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "nginx как работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1397", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "docker как работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1398", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "Git как работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1399", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "SSH как работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1400", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "nginx как настроить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1401", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "docker как настроить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1402", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "Git как настроить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1403", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "SSH как настроить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1404", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "nginx как починить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1405", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "docker как починить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1406", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "Git как починить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1407", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "SSH как починить", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1408", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает nginx?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1409", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает docker?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1410", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает Git?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1411", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как работает SSH?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1412", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить nginx?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1413", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить docker?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1414", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить Git?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1415", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как настроить SSH?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1416", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить nginx?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1417", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить docker?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1418", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить Git?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1419", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "как починить SSH?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-world-how-1420", - "split_group": "knowledge:world-how", - "tags": [ - "world", - "howto", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "есть новости по бэкапами", @@ -23439,546 +26636,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "почему сервер тормозит nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1517", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1518", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1519", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1520", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1521", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1522", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит nginx, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1523", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит docker, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1524", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит DNS, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1525", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает nginx, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1526", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает docker, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1527", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает DNS, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1528", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему сервер тормозит nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1529", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему сервер тормозит nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1530", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему сервер тормозит docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1531", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему сервер тормозит docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1532", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему сервер тормозит DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1533", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему сервер тормозит DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1534", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему не работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1535", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему не работает nginx", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1536", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему не работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1537", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему не работает docker", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1538", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу почему не работает DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1539", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы почему не работает DNS", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1540", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "nginx почему сервер тормозит", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1541", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "docker почему сервер тормозит", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1542", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "DNS почему сервер тормозит", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1543", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "nginx почему не работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1544", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "docker почему не работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1545", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "DNS почему не работает", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1546", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит nginx?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1547", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит docker?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1548", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему сервер тормозит DNS?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1549", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает nginx?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1550", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает docker?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1551", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "почему не работает DNS?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-homelab-why-1552", - "split_group": "knowledge:homelab-why", - "tags": [ - "homelab", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "сколько я прошёл шагов неделю", "route": "knowledge", @@ -25622,546 +28279,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "напоминания на завтра есть завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1662", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1663", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1664", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1665", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1666", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1667", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть завтра, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1668", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть послезавтра, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1669", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть эту неделю, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1670", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на завтра, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1671", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на послезавтра, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1672", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на эту неделю, пожалуйста", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1673", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу напоминания на завтра есть завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1674", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы напоминания на завтра есть завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1675", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу напоминания на завтра есть послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1676", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы напоминания на завтра есть послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1677", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу напоминания на завтра есть эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1678", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы напоминания на завтра есть эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1679", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу есть напоминания на завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1680", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы есть напоминания на завтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1681", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу есть напоминания на послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1682", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы есть напоминания на послезавтра", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1683", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу есть напоминания на эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1684", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы есть напоминания на эту неделю", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1685", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "завтра напоминания на завтра есть", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1686", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "послезавтра напоминания на завтра есть", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1687", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "эту неделю напоминания на завтра есть", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1688", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "завтра есть напоминания на", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1689", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "послезавтра есть напоминания на", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1690", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "эту неделю есть напоминания на", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1691", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть завтра?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1692", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть послезавтра?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1693", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "напоминания на завтра есть эту неделю?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1694", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на завтра?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1695", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на послезавтра?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1696", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "есть напоминания на эту неделю?", - "route": "knowledge", - "source": "corpus_factory_v2", - "source_id": "kq-reminder-check-1697", - "split_group": "knowledge:reminder-check", - "tags": [ - "reminder-shaped", - "hard", - "question", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "что у меня по задачам", "route": "knowledge", @@ -26171,11 +28288,9 @@ "tags": [ "task", "hard", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие задачи есть", @@ -26186,11 +28301,9 @@ "tags": [ "task", "hard", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "покажи задачи", @@ -26201,11 +28314,9 @@ "tags": [ "task", "hard", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня по задачам, пожалуйста", @@ -26216,11 +28327,9 @@ "tags": [ "task", "hard", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие задачи есть, пожалуйста", @@ -26231,11 +28340,9 @@ "tags": [ "task", "hard", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "покажи задачи, пожалуйста", @@ -26246,11 +28353,9 @@ "tags": [ "task", "hard", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу что у меня по задачам", @@ -26261,11 +28366,9 @@ "tags": [ "task", "hard", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу какие задачи есть", @@ -26276,11 +28379,9 @@ "tags": [ "task", "hard", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу покажи задачи", @@ -26291,11 +28392,9 @@ "tags": [ "task", "hard", - "first_person_request", - "router_residual" + "first_person_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "что у меня по задачам?", @@ -26306,11 +28405,9 @@ "tags": [ "task", "hard", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "какие задачи есть?", @@ -26321,11 +28418,9 @@ "tags": [ "task", "hard", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "покажи задачи?", @@ -26336,11 +28431,9 @@ "tags": [ "task", "hard", - "question", - "router_residual" + "question" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я успеваю до дедлайна по проекту", @@ -33176,681 +35269,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "запиши вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2174", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2175", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2176", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2177", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2178", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2179", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2180", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2181", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2182", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши вес 74 килограмма, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2183", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши вес 75 кг, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2184", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши вес 80 kilograms, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2185", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 74 килограмма, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2186", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 75 кг, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2187", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "отметь вес 80 kilograms, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2188", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 74 килограмма, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2189", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 75 кг, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2190", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "мой вес 80 kilograms, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2191", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запиши вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2192", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2193", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запиши вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2194", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2195", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запиши вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2196", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2197", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу отметь вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2198", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы отметь вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2199", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу отметь вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2200", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы отметь вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2201", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу отметь вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2202", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы отметь вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2203", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу мой вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2204", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы мой вес 74 килограмма", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2205", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу мой вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2206", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы мой вес 75 кг", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2207", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу мой вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2208", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы мой вес 80 kilograms", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2209", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "74 килограмма запиши вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2210", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "75 кг запиши вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2211", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "80 kilograms запиши вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2212", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "74 килограмма отметь вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2213", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "75 кг отметь вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2214", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "80 kilograms отметь вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2215", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "74 килограмма мой вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2216", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "75 кг мой вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2217", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "80 kilograms мой вес", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-fact-weight-2218", - "split_group": "fact:weight", - "tags": [ - "fact", - "unparsed-key", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "отметь что я выпил таблетки утром", "route": "memory_write", @@ -34976,894 +36394,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "запиши что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2294", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2295", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2296", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2297", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2298", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2299", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2300", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2301", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2302", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "note: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2303", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative" - ], - "fast_path_resolved": true - }, - { - "text": "note: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2304", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative" - ], - "fast_path_resolved": true - }, - { - "text": "note: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2305", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "direct_imperative" - ], - "fast_path_resolved": true - }, - { - "text": "запиши что кран на кухне капает, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2306", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши что домен продлить в августе, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2307", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запиши что сосед просил номер электрика, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2308", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: кран на кухне капает, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2309", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: домен продлить в августе, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2310", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "заметка: сосед просил номер электрика, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2311", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что кран на кухне капает, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2312", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что домен продлить в августе, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2313", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "запомни что сосед просил номер электрика, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2314", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "note: кран на кухне капает, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2315", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request" - ], - "fast_path_resolved": true - }, - { - "text": "note: домен продлить в августе, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2316", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request" - ], - "fast_path_resolved": true - }, - { - "text": "note: сосед просил номер электрика, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2317", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "polite_request" - ], - "fast_path_resolved": true - }, - { - "text": "я хочу запиши что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2318", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2319", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запиши что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2320", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2321", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запиши что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2322", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запиши что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2323", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу заметка: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2324", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы заметка: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2325", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу заметка: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2326", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы заметка: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2327", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу заметка: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2328", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы заметка: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2329", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запомни что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2330", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запомни что кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2331", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запомни что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2332", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запомни что домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2333", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу запомни что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2334", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы запомни что сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2335", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу note: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2336", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы note: кран на кухне капает", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2337", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу note: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2338", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы note: домен продлить в августе", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2339", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу note: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2340", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы note: сосед просил номер электрика", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2341", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "кран на кухне капает запиши что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2342", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "домен продлить в августе запиши что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2343", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сосед просил номер электрика запиши что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2344", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "кран на кухне капает заметка:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2345", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "домен продлить в августе заметка:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2346", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сосед просил номер электрика заметка:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2347", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "кран на кухне капает запомни что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2348", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "домен продлить в августе запомни что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2349", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сосед просил номер электрика запомни что", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2350", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "кран на кухне капает note:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2351", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "домен продлить в августе note:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2352", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сосед просил номер электрика note:", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-note-explicit-2353", - "split_group": "note:explicit", - "tags": [ - "note", - "capture", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "запиши идею: сервер в шкаф", "route": "memory_write", @@ -36984,11 +37514,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "добавь в задачи починить кран", @@ -37000,11 +37528,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "добавь в задачи обновить сервер", @@ -37016,11 +37542,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу купить молоко", @@ -37032,11 +37556,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу починить кран", @@ -37048,11 +37570,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу обновить сервер", @@ -37064,11 +37584,9 @@ "note", "capture", "task", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "добавь в задачи купить молоко, пожалуйста", @@ -37080,11 +37598,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "добавь в задачи починить кран, пожалуйста", @@ -37096,11 +37612,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "добавь в задачи обновить сервер, пожалуйста", @@ -37112,11 +37626,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу купить молоко, пожалуйста", @@ -37128,11 +37640,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу починить кран, пожалуйста", @@ -37144,11 +37654,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "запиши задачу обновить сервер, пожалуйста", @@ -37160,11 +37668,9 @@ "note", "capture", "task", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу добавь в задачи купить молоко", @@ -38354,681 +38860,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "я чувствую себя хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2519", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я чувствую себя голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2520", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я чувствую себя сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2521", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2522", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2523", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2524", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2525", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2526", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2527", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я чувствую себя хорошо, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2528", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я чувствую себя голова, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2529", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я чувствую себя сегодня, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2530", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит хорошо, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2531", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит голова, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2532", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "у меня болит сегодня, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2533", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал хорошо, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2534", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал голова, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2535", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я устал сегодня, пожалуйста", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2536", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я чувствую себя хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2537", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я чувствую себя хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2538", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я чувствую себя голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2539", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я чувствую себя голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2540", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я чувствую себя сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2541", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я чувствую себя сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2542", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу у меня болит хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2543", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы у меня болит хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2544", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу у меня болит голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2545", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы у меня болит голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2546", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу у меня болит сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2547", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы у меня болит сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2548", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я устал хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2549", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я устал хорошо", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2550", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я устал голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2551", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я устал голова", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2552", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу я устал сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2553", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "надо бы я устал сегодня", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2554", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "хорошо я чувствую себя", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2555", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "голова я чувствую себя", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2556", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сегодня я чувствую себя", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2557", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "хорошо у меня болит", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2558", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "голова у меня болит", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2559", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сегодня у меня болит", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2560", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "хорошо я устал", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2561", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "голова я устал", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2562", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "сегодня я устал", - "route": "memory_write", - "source": "corpus_factory_v2", - "source_id": "mw-free-state-2563", - "split_group": "free:state", - "tags": [ - "free_form", - "personal_state", - "reordered_target", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "тихий режим", "route": "system", @@ -39037,9 +38868,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "режим тишина", @@ -39049,9 +38882,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "будь потише", @@ -39061,9 +38896,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "говори тихий", @@ -39087,9 +38924,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet on", @@ -39099,9 +38938,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "тихий режим, пожалуйста", @@ -39111,9 +38952,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "режим тишина, пожалуйста", @@ -39123,9 +38966,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "будь потише, пожалуйста", @@ -39135,9 +38980,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "говори тихий, пожалуйста", @@ -39161,9 +39008,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet on, пожалуйста", @@ -39173,9 +39022,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу тихий режим", @@ -39185,9 +39036,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу режим тишина", @@ -39197,9 +39050,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу будь потише", @@ -39209,9 +39064,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу говори тихий", @@ -39235,9 +39092,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу quiet on", @@ -39247,9 +39106,11 @@ "split_group": "system:quiet-on", "tags": [ "quiet", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "хватит тихого режима", @@ -39260,9 +39121,11 @@ "tags": [ "quiet", "hard", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "громкий режим", @@ -39273,9 +39136,11 @@ "tags": [ "quiet", "hard", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "выключи тихий", @@ -39286,9 +39151,11 @@ "tags": [ "quiet", "hard", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet off", @@ -39299,9 +39166,11 @@ "tags": [ "quiet", "hard", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet end", @@ -39312,9 +39181,11 @@ "tags": [ "quiet", "hard", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "хватит тихого режима, пожалуйста", @@ -39325,9 +39196,11 @@ "tags": [ "quiet", "hard", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "громкий режим, пожалуйста", @@ -39338,9 +39211,11 @@ "tags": [ "quiet", "hard", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "выключи тихий, пожалуйста", @@ -39351,9 +39226,11 @@ "tags": [ "quiet", "hard", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet off, пожалуйста", @@ -39364,9 +39241,11 @@ "tags": [ "quiet", "hard", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "quiet end, пожалуйста", @@ -39377,9 +39256,11 @@ "tags": [ "quiet", "hard", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу хватит тихого режима", @@ -39390,9 +39271,11 @@ "tags": [ "quiet", "hard", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу громкий режим", @@ -39403,9 +39286,11 @@ "tags": [ "quiet", "hard", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу выключи тихий", @@ -39416,9 +39301,11 @@ "tags": [ "quiet", "hard", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу quiet off", @@ -39429,9 +39316,11 @@ "tags": [ "quiet", "hard", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу quiet end", @@ -39442,9 +39331,11 @@ "tags": [ "quiet", "hard", - "first_person_request" + "first_person_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "сколько времени сейчас", @@ -39454,11 +39345,9 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "сколько времени в киеве", @@ -39468,11 +39357,9 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "сколько времени в москве", @@ -39482,11 +39369,9 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "который час сейчас", @@ -39538,9 +39423,11 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what time is it в киеве", @@ -39550,9 +39437,11 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what time is it в москве", @@ -39562,9 +39451,11 @@ "split_group": "system:time-now", "tags": [ "time", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "сколько времени сейчас, пожалуйста", @@ -39574,11 +39465,9 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "сколько времени в киеве, пожалуйста", @@ -39588,11 +39477,9 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "сколько времени в москве, пожалуйста", @@ -39602,11 +39489,9 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "который час сейчас, пожалуйста", @@ -39658,9 +39543,11 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what time is it в киеве, пожалуйста", @@ -39670,9 +39557,11 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what time is it в москве, пожалуйста", @@ -39682,9 +39571,11 @@ "split_group": "system:time-now", "tags": [ "time", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу сколько времени сейчас", @@ -40156,9 +40047,11 @@ "split_group": "system:date-today", "tags": [ "date", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what's the date завтра", @@ -40168,9 +40061,11 @@ "split_group": "system:date-today", "tags": [ "date", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what's the date послезавтра", @@ -40180,9 +40075,11 @@ "split_group": "system:date-today", "tags": [ "date", - "direct_imperative" + "direct_imperative", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "какое число сегодня, пожалуйста", @@ -40276,9 +40173,11 @@ "split_group": "system:date-today", "tags": [ "date", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what's the date завтра, пожалуйста", @@ -40288,9 +40187,11 @@ "split_group": "system:date-today", "tags": [ "date", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "what's the date послезавтра, пожалуйста", @@ -40300,9 +40201,11 @@ "split_group": "system:date-today", "tags": [ "date", - "polite_request" + "polite_request", + "router_residual" ], - "fast_path_resolved": true + "fast_path_resolved": false, + "router_residual": true }, { "text": "я хочу какое число сегодня", @@ -42475,11 +42378,9 @@ "split_group": "conversation:mood", "tags": [ "mood", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "i had a rough day", @@ -42531,11 +42432,9 @@ "split_group": "conversation:mood", "tags": [ "mood", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "i had a rough day, пожалуйста", @@ -42607,132 +42506,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "расскажи анекдот", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2820", - "split_group": "conversation:joke", - "tags": [ - "joke", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "шутка", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2821", - "split_group": "conversation:joke", - "tags": [ - "joke", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "tell me a joke", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2822", - "split_group": "conversation:joke", - "tags": [ - "joke", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "расскажи анекдот, пожалуйста", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2823", - "split_group": "conversation:joke", - "tags": [ - "joke", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "шутка, пожалуйста", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2824", - "split_group": "conversation:joke", - "tags": [ - "joke", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "tell me a joke, пожалуйста", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2825", - "split_group": "conversation:joke", - "tags": [ - "joke", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу расскажи анекдот", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2826", - "split_group": "conversation:joke", - "tags": [ - "joke", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу шутка", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2827", - "split_group": "conversation:joke", - "tags": [ - "joke", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу tell me a joke", - "route": "conversation", - "source": "corpus_factory_v2", - "source_id": "conv-joke-2828", - "split_group": "conversation:joke", - "tags": [ - "joke", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "спасибо", "route": "conversation", @@ -43834,11 +43607,9 @@ "tags": [ "ambiguous", "filler", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "та штука", @@ -43864,11 +43635,9 @@ "tags": [ "ambiguous", "filler", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "ну это, пожалуйста", @@ -43879,11 +43648,9 @@ "tags": [ "ambiguous", "filler", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "потом, пожалуйста", @@ -43894,11 +43661,9 @@ "tags": [ "ambiguous", "filler", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "та штука, пожалуйста", @@ -43924,11 +43689,9 @@ "tags": [ "ambiguous", "filler", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу ну это", @@ -44179,11 +43942,9 @@ "tags": [ "ambiguous", "reminder", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "ну напомни же, пожалуйста", @@ -44299,11 +44060,9 @@ "tags": [ "ambiguous", "filler", - "direct_imperative", - "router_residual" + "direct_imperative" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "ну надо бы, пожалуйста", @@ -44344,11 +44103,9 @@ "tags": [ "ambiguous", "filler", - "polite_request", - "router_residual" + "polite_request" ], - "fast_path_resolved": false, - "router_residual": true + "fast_path_resolved": true }, { "text": "я хочу ну надо бы", @@ -44530,141 +44287,6 @@ "fast_path_resolved": false, "router_residual": true }, - { - "text": "то что я говорил", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2955", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "про это", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2956", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "из предыдущего", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2957", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "direct_imperative", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "то что я говорил, пожалуйста", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2958", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "про это, пожалуйста", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2959", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "из предыдущего, пожалуйста", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2960", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "polite_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу то что я говорил", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2961", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу про это", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2962", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, - { - "text": "я хочу из предыдущего", - "route": "uncertain", - "source": "corpus_factory_v2", - "source_id": "unc-referral-2963", - "split_group": "uncertain:referral", - "tags": [ - "ambiguous", - "anaphora", - "first_person_request", - "router_residual" - ], - "fast_path_resolved": false, - "router_residual": true - }, { "text": "может быть", "route": "uncertain", diff --git a/internal/router/semantic/eval_test.go b/internal/router/semantic/eval_test.go index 54560cf..101b969 100644 --- a/internal/router/semantic/eval_test.go +++ b/internal/router/semantic/eval_test.go @@ -142,7 +142,7 @@ func TestLegacyBaseline(t *testing.T) { func buildMinimalRouter(t *testing.T) LegacyRouter { t.Helper() // Use the same act matcher and seed loading as the eval package. - acts := router.DefaultActMatcher{Fns: actVerbList()} + acts := router.DefaultActMatcher{Fns: ExperimentActVerbs()} cls := buildSeededClassifier(t, router.NewHashEmbedder(1024)) r := router.New(router.Config{ Grammars: router.StageZeroGrammars(acts), diff --git a/internal/router/semantic/fastpath.go b/internal/router/semantic/fastpath.go new file mode 100644 index 0000000..6642a42 --- /dev/null +++ b/internal/router/semantic/fastpath.go @@ -0,0 +1,82 @@ +package semantic + +import ( + "context" + "sync" + "time" + + "github.com/kami/maven/internal/router" +) + +// ExperimentActVerbs is the act allowlist shared by the experiment's legacy +// baseline (the eval fixture and the slice-22 harness), the routed-heads +// harness, and the corpus fast-path derivation. One non-test list so the +// corpus derivation can never drift from what the measurement router accepts. +func ExperimentActVerbs() []string { + return []string{ + "перезапусти", "перезагрузи", "выключи", "включи", "останови", "запусти", + "закрой", "открой", "сделай", "поставь", + "restart", "reboot", "stop", "start", "turn off", "turn on", "open", "close", + } +} + +func experimentActMatcher() router.ActMatcher { + return router.DefaultActMatcher{Fns: ExperimentActVerbs()} +} + +// FastPathOutcome is the derived fast-path classification for one surface. +// Matched mirrors TryFastPath; Grammar names the winning stage-0 grammar for +// attribution, or the empty string when nothing resolved. +type FastPathOutcome struct { + Matched bool + Grammar string +} + +var ( + fastPathOnce sync.Once + fastPathRouter *router.Router + fastPathGrammars []router.Grammar +) + +// DeriveFastPath mirrors the production fast path for a surface: it runs +// TryFastPath over the daemon's ordered stage-0 grammar list with the +// experiment's act allowlist — the exact router the legacy baseline measures — +// and reports whether a grammar resolved the utterance. This is the +// authoritative derivation for corpus fast_path_resolved metadata. The +// classifier, threshold and LLM never run on the fast path, so they are not +// wired here. +func DeriveFastPath(text string) FastPathOutcome { + fastPathOnce.Do(func() { + acts := experimentActMatcher() + fastPathGrammars = router.StageZeroGrammars(acts) + fastPathRouter = router.New(router.Config{ + Grammars: fastPathGrammars, + Extractor: router.Extractor{ + Time: router.StubDateTimeParser{}, + Acts: acts, + Facts: router.DefaultFactParser{}, + }, + }) + }) + res, err := fastPathRouter.TryFastPath(context.Background(), router.NormalizedInput{ + Text: text, + MatchText: router.NormalizeMatchText(text), + }, time.Now()) + if err != nil || !res.Matched { + return FastPathOutcome{} + } + // Attribute the winner by replaying TryFastPath's ordered first-accept + // walk, including the wake-stripped alternate. A matcher that matched the + // shape but declined the content falls through, exactly as the router does. + stripped, hadWake := router.StripWakeToken(text) + for _, g := range fastPathGrammars { + _, matched, ok := g.Evaluate(text) + if !matched && hadWake { + _, matched, ok = g.Evaluate(stripped) + } + if matched && ok { + return FastPathOutcome{Matched: true, Grammar: g.Name} + } + } + return FastPathOutcome{Matched: true} +} \ No newline at end of file diff --git a/internal/router/semantic/fastpath_invariant_test.go b/internal/router/semantic/fastpath_invariant_test.go new file mode 100644 index 0000000..b7e2bbe --- /dev/null +++ b/internal/router/semantic/fastpath_invariant_test.go @@ -0,0 +1,36 @@ +package semantic + +import "testing" + +// TestFastPathDerivationInvariant asserts that every development-pool row's +// stored fast-path flag exactly matches what the production fast path derives +// today (DeriveFastPath runs TryFastPath over the stage-0 grammars with the +// experiment's act allowlist). Frozen holdout rows are preserved verbatim +// across merges and are exempt — their drift is reported, never silently +// rewritten. A stale development value is a corpus-build error. +func TestFastPathDerivationInvariant(t *testing.T) { + exs, err := LoadCorpus() + if err != nil { + t.Fatalf("load corpus: %v", err) + } + _, dev, _ := FrozenHoldoutSplit(exs) + devSet := make(map[string]bool, len(dev)) + for _, e := range dev { + devSet[e.SourceID] = true + } + + stale := 0 + for _, e := range exs { + if !devSet[e.SourceID] { + continue + } + if got := DeriveFastPath(e.Text).Matched; got != e.FastPathResolved { + t.Errorf("dev row %s (route=%s) fast_path_resolved=%v but router derives %v: %q", + e.SourceID, e.Route, e.FastPathResolved, got, e.Text) + stale++ + } + } + if stale > 0 { + t.Fatalf("%d development rows have stale fast-path metadata", stale) + } +} \ No newline at end of file diff --git a/internal/router/semantic/helpers_test.go b/internal/router/semantic/helpers_test.go index 266aeda..a66c69c 100644 --- a/internal/router/semantic/helpers_test.go +++ b/internal/router/semantic/helpers_test.go @@ -19,14 +19,6 @@ var seedIntents = []router.Intent{ router.IntentNote, router.IntentQuery, router.IntentChat, router.IntentSystem, } -func actVerbList() []string { - return []string{ - "перезапусти", "перезагрузи", "выключи", "включи", "останови", "запусти", - "закрой", "открой", "сделай", "поставь", - "restart", "reboot", "stop", "start", "turn off", "turn on", "open", "close", - } -} - func buildSeededClassifier(t *testing.T, emb router.Embedder) *router.Classifier { t.Helper() cls := router.NewClassifier(emb)