Sometimes the data you want to monitor isn’t available at inference time.
Openlayer lets you update existing traces after they were streamed to the platform.
Common use cases:
- Adding ground truths that only became available later.
- Logging human feedback (e.g., thumbs up/down, ratings).
- Attaching business signals such as conversions or revenue impact.
How updates work
Every trace streamed to Openlayer has an inference_id
, which is a unique identifier.
- If you provide your own inference IDs, you can easily reference and update those traces later.
- If you don’t, Openlayer auto-generates them for you.
For maximum flexibility, set custom inference IDs when tracing. This makes
it simple to tie traces to feedback, business outcomes, or other systems.
Example: Add a ground truth
Let’s say you want to add a ground_truth
column for a previously logged trace.
from openlayer import Openlayer
from openlayer.types.inference_pipelines import row_update_params
row_updates = {
"ground_truth": "The sun is 94.471 million miles from the earth."
}
config = row_update_params.Config(
ground_truth_column_name="ground_truth"
)
client = Openlayer()
client.inference_pipelines.rows.update(
inference_pipeline_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
inference_id="832y98d3",
row=row_updates,
config=config,
)
This updates the trace with inference_id="832y98d3"
by attaching a ground truth.
Using custom inference IDs
When tracing with the @trace
decorator, you can set your own inference IDs.
This makes it easy to correlate requests with later feedback or business signals.
from openlayer.lib import trace, update_current_trace
@trace()
def process_chat_message(user_id: str, message: str, conversation_id: str):
custom_id = f"chat_{conversation_id}_{user_id}"
update_current_trace(inference_id=custom_id)
response = generate_ai_response(message)
# Store custom_id in your DB for later updates
store_for_feedback(custom_id, user_id, message, response)
return response
Later, use that custom ID (chat_{conversation_id}_{user_id}
) in your update calls.