documentation updates
This commit is contained in:
@@ -131,6 +131,20 @@ check alone won't reject.
|
||||
> imperfectly — switch to `/[^\p{L}\p{N}\s]/gu` if the set gains non-ASCII
|
||||
> entries.
|
||||
|
||||
**Regurgitation guard (`mentionedIn`):** the extraction prompt feeds the model
|
||||
a "known entities" hint block (the 20 most-recent entities) for spelling/type
|
||||
consistency. The small model (qwen2.5:3b) will sometimes echo that list back as
|
||||
if those entities appeared in the conversation — most visibly on contentless
|
||||
turns (a greeting produced fake extractions of unrelated authors, game titles,
|
||||
etc.). After parsing, each extracted name is checked against the actual
|
||||
`userMessage + aiResponse` text (case- and whitespace-normalized substring); any
|
||||
name not present is dropped before upsert. Since the prompt constrains names to
|
||||
short proper nouns, a genuinely-discussed entity appears verbatim while a
|
||||
regurgitated hint does not. Relationships referencing a dropped entity fall away
|
||||
automatically (they resolve against the surviving `entityMap`). A prompt line
|
||||
also tells the model the hint list is spelling-only — a backstop, with
|
||||
`mentionedIn` as the deterministic guarantee.
|
||||
|
||||
## Relationship Processing
|
||||
|
||||
After all entities are saved, relationships are processed:
|
||||
|
||||
Reference in New Issue
Block a user