Adjust relationship prompt to infer connections from character traits

This commit is contained in:
_Yusaki 2026-03-13 19:34:51 +07:00
parent 10a85e76d6
commit 49a86c622a

View file

@ -36,18 +36,21 @@ ENTITY_EXTRACT_PROMPT = (
) )
RELATIONSHIP_EXTRACT_PROMPT = ( RELATIONSHIP_EXTRACT_PROMPT = (
"You are a knowledge graph relationship extraction engine. Given a text section, a list of known entities, " "You are a knowledge graph relationship inference engine. Given a text section describing characters/entities "
"and an ontology schema, extract all relationships between the entities.\n\n" "in a social simulation, a list of known entities, and relationship types, infer all plausible relationships.\n\n"
"ONTOLOGY SCHEMA (edge types):\n%s\n\n" "RELATIONSHIP TYPES:\n%s\n\n"
"KNOWN ENTITIES:\n%s\n\n" "KNOWN ENTITIES:\n%s\n\n"
"RULES:\n" "RULES:\n"
"1. Find relationships between the known entities that match the edge_types defined above.\n" "1. Infer relationships between the known entities based on their described traits, roles, goals, and behaviors.\n"
"2. Each relationship needs: name (must match an edge_type name), source (entity name), target (entity name), " "2. Each relationship needs: name (must match a relationship type name above), source (entity name), target (entity name), "
"fact (1 sentence describing the specific relationship found in the text).\n" "fact (1 sentence explaining WHY this relationship is likely based on the text).\n"
"3. Both source and target MUST be from the known entities list.\n" "3. Both source and target MUST be from the known entities list.\n"
"4. Only extract relationships explicitly stated or strongly implied in the text.\n" "4. Include both explicit relationships AND strongly implied ones based on complementary/conflicting traits.\n"
"5. Extract ALL relationships you can find — be thorough.\n" " Examples of inference: if player A 'trades supplies' and player B 'buys tools', infer TRADE_WITH.\n"
"6. If no relationships are found, return an empty array.\n\n" " If player A 'mediates conflicts' and player B 'causes chaos', infer OPPOSES.\n"
" If two players share goals or would naturally work together, infer COLLABORATES_WITH.\n"
"5. Be thorough — extract as many plausible relationships as the text supports.\n"
"6. Do NOT invent relationships with no textual basis. Each fact must reference something from the text.\n\n"
'Return JSON: a single key "relationships" with an array of objects, each having keys: name, source, target, fact.' 'Return JSON: a single key "relationships" with an array of objects, each having keys: name, source, target, fact.'
) )