Update prompt
This commit is contained in:
@@ -27,7 +27,7 @@ from easycom_event_taxonomy import EXCLUDE_REASONS, exclude_reason_group
|
||||
from prepare_easycom_eot_int_review import requires_semantic_adjudication
|
||||
|
||||
|
||||
PROMPT_VERSION = "easycom-wearer-boundary-semantic-prelabel-v14"
|
||||
PROMPT_VERSION = "easycom-wearer-boundary-semantic-prelabel-v15"
|
||||
DEFAULT_MODEL = "deepseek-v4-flash"
|
||||
DEFAULT_BASE_URL = "https://api.deepseek.com"
|
||||
VERDICTS = {"POSITIVE", "HARD_NEGATIVE", "EXCLUDE"}
|
||||
@@ -92,7 +92,11 @@ Evidence rules:
|
||||
2. Never alter or propose an event timestamp. Do not infer prosody, gaze, intention, or acoustic cues that were not supplied.
|
||||
3. Every supplied WEARER_ONSET and WEARER_OFFSET is a raw observed wearer activity boundary. Candidate generation has made no floor-entry, within-turn-resumption, interruption, or takeover decision. A raw wearer onset is not automatically a floor entry; a wearer offset is not automatically a yield; an other onset is not automatically a takeover. A pause is not automatically a release, overlap is not automatically interruption, and words such as "yeah" are not automatically backchannels. Determine what the utterance does in context, not only how long it lasts.
|
||||
4. EXCLUDE is the sole non-scoring outcome. Use it both for insufficient/unresolvable evidence and for clear out-of-scope non-events that should not enter evaluation, including a normal wearer completion that merely coincides with laughter or feedback. Never force such a region into HARD_NEGATIVE for coverage.
|
||||
5. For every WEARER_ONSET, decide whether the wearer genuinely enters or re-enters the conversational floor. First inspect the previous wearer offset and silence gap, gap_other_intervals, nearby other activity, transcript, and Target_of_Speech. A short within-turn pause followed by continuation of the same wearer contribution is not a new entry; use EXCLUDE unless the region is a valid named false-positive opportunity. A POSITIVE WEARER_ENTRY does not require a preceding non-wearer release: it may occur after a release, from silence, or while another speaker is active. temporal_evidence.opportunity_options contains nearby preceding other offsets with factual relation flags, not pre-approved causes. If one supplied release clearly prompted the entry, selected_opportunity_uid may contain its uid; otherwise return null. Never invent a trigger or timestamp. A direct, semantically complete answer can be a genuine entry even when short. Do not call it a backchannel merely because it lasts less than one second or because another participant speaks later. For example, "Nope." beginning 0.15 s after an addressed question ends is normally WEARER_ENTRY, not ENTRY_WEARER_BACKCHANNEL. Later conversation does not retroactively cancel a completed entry.
|
||||
5. For every WEARER_ONSET, decide whether the wearer genuinely enters or re-enters the conversational floor. First inspect the previous wearer offset and silence gap, gap_other_intervals, nearby other activity, transcript, and Target_of_Speech. A short within-turn pause followed by continuation of the same wearer contribution is not a new entry; use EXCLUDE unless the region is a valid named false-positive opportunity. A POSITIVE WEARER_ENTRY does not require a preceding non-wearer release: it may occur after a release, from silence, or while another speaker is active. temporal_evidence.opportunity_options contains nearby preceding other offsets with factual relation flags, not pre-approved causes. If one supplied release clearly prompted the entry, selected_opportunity_uid may contain its uid; otherwise return null. Never invent a trigger or timestamp.
|
||||
|
||||
Apply this adjacency-pair rule before using brevity or later speaker activity as evidence: when a participant addresses the wearer with a question, request, proposal, or other first-pair part and the wearer supplies its contextually complete second-pair part, classify the wearer contribution as POSITIVE / WEARER_ENTRY. A polar-question answer such as "yes", "no", or "Nope." is complete even if it is one word and lasts less than one second. Reciprocal Target_of_Speech evidence (question targets wearer; answer targets questioner) strengthens this reading. Floor entry here means making the committed conversational response; it does not require monopolizing or retaining the floor afterward. Therefore, the questioner or another participant speaking after the answer does not turn that completed answer into a backchannel.
|
||||
|
||||
Use HARD_NEGATIVE / ENTRY_WEARER_BACKCHANNEL only when the wearer vocalization functions merely as feedback on another participant's still-ongoing contribution and does not answer a question, accept or reject a proposal, provide requested information, or otherwise complete an adjacency pair. Lexical form alone is insufficient: "yeah" may answer a yes/no question or may be a continuer, depending on the preceding utterance and addressee evidence. For the supplied audit pattern, participant 3 asks the wearer "Have you ever analyzed documents?" and releases at 54.00 s; the wearer answers "Nope." at 54.15 s. This is POSITIVE / WEARER_ENTRY, not ENTRY_WEARER_BACKCHANNEL, even though it is brief and participant 3 later speaks again.
|
||||
6. For every WEARER_OFFSET, answer the central question: did the wearer stop because a non-wearer genuinely took over the conversational floor? Reconstruct the wearer activity-run start and offset, every nearby other onset and offset, which others are active immediately before and after the offset, whether each other is pre-existing or starts during wearer speech, whether it crosses the offset, overlap duration, who speaks next, transcript content, and Target_of_Speech. All temporal booleans are descriptive evidence, not prerequisite labels. A valid INT_YIELD may involve a newly entering or pre-existing competitor if the chronology and semantics establish genuine takeover and wearer relinquishment. Conversely, crossing the offset or satisfying t_w < t_o < t_y never proves takeover by itself. Verify that the relevant non-wearer actually takes and sustains the next floor. A different participant's later substantive turn is not evidence that the proposed competitor took over. Do not label INT_WEARER_HOLDS_FLOOR merely because the wearer speaks again later: if a competitor establishes an intervening substantive floor and the wearer has an intervening silent interval, the later wearer onset is a new WEARER_ENTRY and does not invalidate the earlier INT_YIELD. Natural completion, completion-to-silence, a within-turn wearer pause, or a post-completion other onset that could not have caused the stop is normally EXCLUDE unless the region is a valid named hard-negative opportunity. If the wearer reaches a semantically complete natural ending while overlapping activity is only [L] or feedback and that contributor does not take the next substantive floor, return EXCLUDE.
|
||||
7. Transcript event markers are evidence, not lexical turns. In EasyCom, a transcription consisting of [L] denotes laughter-only vocalization. Do not treat [L] as a sustained floor entry or interruption takeover merely because its activity interval creates an onset, offset, or overlap candidate. Specifically:
|
||||
- wearer [L] during a non-wearer's retained turn is normally HARD_NEGATIVE / ENTRY_WEARER_BACKCHANNEL, not WEARER_ENTRY;
|
||||
|
||||
@@ -140,9 +140,14 @@ non-backchannel overlap after which the wearer demonstrably holds or resumes
|
||||
the floor, and finally another interpretable overlap that fails to become a
|
||||
sustained takeover. `OTHER_HARD_NEGATIVE` is reserved for valid false-positive
|
||||
opportunities outside these named behaviors; it is never an uncertainty
|
||||
fallback. A short but complete answer to an addressed question remains a
|
||||
positive wearer entry; duration alone and later resumption by another speaker
|
||||
do not turn it into a wearer backchannel.
|
||||
fallback. Prompt v15 gives adjacency-pair completion priority over duration:
|
||||
a short but complete answer to an addressed question remains a positive wearer
|
||||
entry, and floor entry does not require the wearer to retain the next turn.
|
||||
Later resumption by the questioner or another speaker therefore does not turn
|
||||
the completed answer into a wearer backchannel. `ENTRY_WEARER_BACKCHANNEL` is
|
||||
reserved for feedback that does not answer a question, accept or reject a
|
||||
proposal, provide requested information, or otherwise complete an adjacency
|
||||
pair.
|
||||
|
||||
During live adjudication, the CLI displays a dependency-free progress bar over
|
||||
all candidate/pass work, including the current pass, batch, percentage, and
|
||||
|
||||
@@ -33,7 +33,7 @@ class EntryINTAdjudicationTests(unittest.TestCase):
|
||||
self.assertIn("Yes.", prompt)
|
||||
|
||||
def test_system_prompt_treats_laughter_as_nonlexical_floor_feedback(self) -> None:
|
||||
self.assertEqual(PROMPT_VERSION, "easycom-wearer-boundary-semantic-prelabel-v14")
|
||||
self.assertEqual(PROMPT_VERSION, "easycom-wearer-boundary-semantic-prelabel-v15")
|
||||
self.assertIn("opportunity_options", SYSTEM_PROMPT)
|
||||
self.assertIn("t_w < t_o < t_y never proves takeover", SYSTEM_PROMPT)
|
||||
self.assertIn("Every supplied WEARER_ONSET and WEARER_OFFSET is a raw observed", SYSTEM_PROMPT)
|
||||
@@ -44,7 +44,11 @@ class EntryINTAdjudicationTests(unittest.TestCase):
|
||||
self.assertIn("same non-wearer resumes", SYSTEM_PROMPT)
|
||||
self.assertIn("different non-wearer takes", SYSTEM_PROMPT)
|
||||
self.assertIn("This is not an uncertainty fallback", SYSTEM_PROMPT)
|
||||
self.assertIn('"Nope." beginning 0.15 s after an addressed question ends', SYSTEM_PROMPT)
|
||||
self.assertIn("Apply this adjacency-pair rule before using brevity", SYSTEM_PROMPT)
|
||||
self.assertIn("Floor entry here means making the committed conversational response", SYSTEM_PROMPT)
|
||||
self.assertIn("does not answer a question, accept or reject a proposal", SYSTEM_PROMPT)
|
||||
self.assertIn('the wearer answers "Nope." at 54.15 s', SYSTEM_PROMPT)
|
||||
self.assertIn("participant 3 later speaks again", SYSTEM_PROMPT)
|
||||
self.assertIn("does not require a preceding non-wearer release", SYSTEM_PROMPT)
|
||||
self.assertIn("duration alone never determines floor function", SYSTEM_PROMPT)
|
||||
self.assertIn("normal wearer completion", SYSTEM_PROMPT)
|
||||
|
||||
Reference in New Issue
Block a user