SWIP-16 Support LLM-as-Judge on Top of GenAI Observability - #13943
SWIP-16 Support LLM-as-Judge on Top of GenAI Observability#13943peachisai wants to merge 9 commits into
Conversation
| return new StorageID() | ||
| .append(TRACE_ID, traceId) | ||
| .append(SERVICE_ID, serviceId) | ||
| .append(SERVICE_INSTANCE_ID, serviceInstanceId) | ||
| .append(SPAN_ID, spanId) | ||
| .append(SPAN_TYPE, spanType) | ||
| .append(TASK_NAME, taskName) | ||
| .append(EVALUATION_LEVEL, evaluationLevel) | ||
| .append(EVALUATION_TIME, evaluationTime); |
There was a problem hiding this comment.
This looks dangerous, could you ref to existing app log?
I feel we have a uuid kind of thing?
There was a problem hiding this comment.
This looks dangerous, could you ref to existing app log? I feel we have a uuid kind of thing?
Fixed
|
Thanks for the work here — the module structure, the PPM sampling and pairing the records with a MAL metric are all the right shape. I want to focus this round entirely on the query API, because 1. The UI cannot render the page SWIP-16 specifies
The house convention is the opposite — type Log {
serviceName: String
serviceId: ID
serviceInstanceName: String
serviceInstanceId: ID
endpointName: String
endpointId: ID
...
}Worse, this is not fixable later without a data migration: Please add 2. The chart → records drill-down is not expressibleThe whole reason to pair a record list with a metric is that a user clicks a dip in the score chart and gets the responses behind it. (Separately, SWIP-16 names the metric 3. The primary filters do not work on Elasticsearch, and the trace drill-down silently returns nothing on BanyanDB
In
On BanyanDB the drill-down fails a different way: query.and(eq(GenAIEvaluationRecord.SPAN_ID, (long) relatedTrace.getSpanId())); // L89That binds an int64 against a tag registered from a Suggested fix: drop 4. "The 20 worst-scoring responses" cannot be asked
We already have precedent for both halves — 5. The filter dropdowns cannot be populatedTask names and level bands are operator config in They are also reachable only through the generic Every other family that offers Two smaller notes while the API is open: Lastly — nothing in the tree executes |
# Conflicts: # docs/en/changes/changes.md
CHANGESlog.