Repository navigation
Conversation
🦋 Changeset detectedLatest commit: 4b2db4d The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
68da9ab to
7604ce1
Compare
| // The words the judges read for this turn: the speaker's own, or as the | ||
| // other side heard them when those are unknown (the agent's, without a | ||
| // RemoteSession). | ||
| string text = 18; |
There was a problem hiding this comment.
| string text = 18; | |
| string heard_text = 18; |
There was a problem hiding this comment.
Nice, does that means we will also be able to compared the two transcripts for WER
There was a problem hiding this comment.
No, because Turn.text holds only one transcript per turn (usually what the speaker said, and what the other side heard only when that's unknown), while WER needs both the said and the heard versions of the same turn.
| message Impairments { | ||
| string background_noise = 1; // the ambience played under the caller, e.g. "cafe"; "" = none | ||
| bool low_quality_microphone = 2; | ||
| bool packet_loss = 3; |
There was a problem hiding this comment.
oh I wish we had a shared structs with the Create message
There was a problem hiding this comment.
No, in the create message it's a boolean, here it's a string so you can know which one it was.
There was a problem hiding this comment.
I changed the background noise to be sent as a boolean and moved it to it's own struct, but we don't have a way to reject out of date cli's from sending the wrong message so we'd have to accept the only version in create in perpetuity, until that mechanism is built first, so I left this as a todo there.
The service already records a machine-readable cause for a failed job (today: the agent never joined the room), but SimulationRun.Job had no field for it, so API clients could only pattern-match the error text.
…er sounded like JobMetrics gains end_reason, caller_language, caller_listen_language, impairments and conversation.backchannel_count. The simulator knows all of them, but until now they only reached its logs.
A job's transcript reached only the simulator's logs, so a client reading the job (lk agent simulate export, a CI check) could see each turn's timings and scores but not the words that were scored.
…Impairments So Create.Request can carry the same message if its flat impairment fields are ever replaced.
No consumer needs which ambience played, only whether one did. The bool matches Create.Request.background_noise.
1858d29 to
1e27e9a
Compare
…SimulationImpairments
Adds to
SimulationRunwhat agent-service already knows about each simulation job but couldn't return through the API. Today a client such aslk agent simulate exportor a CI check sees only that a job failed and its timings and scores. It can't see why the job failed, how the call ended, or what was said.SimulationRun.Job.failure_reason(field 19)A machine-readable cause for a failed job, with a
FailureReasonenum. Its one cause so far isFAILURE_REASON_AGENT_JOIN_TIMEOUT, meaning the agent under test never joined. agent-service already stores it on every failed job and gives it to the summarizer. Without the field, a client has to match on the human-readableerror. The enum numbers match agent-service's internaljobs.FailureReason, so the service copies the stored value straight across. It's field 19 because #1862 claims 17 and 18 on the same message.SimulationRun.JobMetrics: how the call ranThese are facts the simulator already knows, which until now only reached its logs:
end_reasonerror.caller_languagecaller_listen_language""means the same ascaller_language.impairmentsSimulationImpairmentswith the same three flags asCreate.Request. Absent for a clean call.conversation.backchannel_countSimulationRun.JobMetrics.Turn.text(field 18)Each turn's words as the simulation's judges read them: the speaker's own words, or, when those are unknown, the words as the other side heard them. The agent's own words are unknown when it has no RemoteSession, e.g. over SIP.
A job already reports one row per turn with timings and scores, but not what was said. So a reader can see that a turn was slow or interrupted but not what it said. They also can't check the judged transcript's shape, such as one caller line per turn with each reply after the line it answers.
Consumers
lk agent simulate exportkeeps them.