Skip to content

Commit a8fc83f

Browse files
fix: add file_name and file_mime_type to token usage telemetry events
- Pass file metadata in TokenUsageScope for MapHandler, Summarize, GapAnalysis, and RAI executors so the workbook file-type query works - Fix dedup in model cost KQL query (workbook + queries file) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 5d85f65 commit a8fc83f

4 files changed

Lines changed: 15 additions & 0 deletions

File tree

src/ContentProcessor/src/libs/pipeline/handlers/map_handler.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,11 +266,14 @@ async def execute(self, context: MessageContext) -> StepResult:
266266
)
267267

268268
# Track token usage for this LLM call
269+
source_file = context.data_pipeline.get_source_files()[0]
269270
with TokenUsageScope(
270271
token_emitter,
271272
agent_name="MapHandler",
272273
model_deployment_name=self.application_context.configuration.app_azure_openai_model,
273274
process_id=context.data_pipeline.pipeline_status.process_id,
275+
file_name=source_file.name,
276+
file_mime_type=source_file.mime_type or "",
274277
) as scope:
275278
scope.add(gpt_response)
276279

src/ContentProcessorWorkflow/src/steps/gap_analysis/executor/gap_executor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,15 @@ async def handle_execute(
197197

198198
# Track token usage for gap analysis
199199
model_name = agent_framework_helper.settings.get_service_config("default").chat_deployment_name
200+
file_names = ", ".join(f.file_name for f in processed_files) if processed_files else ""
201+
file_types = ", ".join(set(f.mime_type for f in processed_files if f.mime_type)) if processed_files else ""
200202
with TokenUsageScope(
201203
token_emitter,
202204
agent_name="GapAnalysis",
203205
model_deployment_name=model_name,
204206
process_id=result.claim_process_id,
207+
file_name=file_names,
208+
file_mime_type=file_types,
205209
) as scope:
206210
scope.add(model_response)
207211

src/ContentProcessorWorkflow/src/steps/rai/executor/rai_executor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,11 +191,15 @@ async def handle_exectue(
191191

192192
# Track token usage for RAI check
193193
model_name = agent_framework_helper.settings.get_service_config("default").chat_deployment_name
194+
file_names = ", ".join(f.file_name for f in processed_files) if processed_files else ""
195+
file_types = ", ".join(set(f.mime_type for f in processed_files if f.mime_type)) if processed_files else ""
194196
with TokenUsageScope(
195197
token_emitter,
196198
agent_name="RAI",
197199
model_deployment_name=model_name,
198200
process_id=result.claim_process_id,
201+
file_name=file_names,
202+
file_mime_type=file_types,
199203
) as scope:
200204
scope.add(model_response)
201205

src/ContentProcessorWorkflow/src/steps/summarize/executor/summarize_executor.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,11 +197,15 @@ async def handle_execute(
197197

198198
# Track token usage for summarization
199199
model_name = agent_framework_helper.settings.get_service_config("default").chat_deployment_name
200+
file_names = ", ".join(f.file_name for f in processed_files) if processed_files else ""
201+
file_types = ", ".join(set(f.mime_type for f in processed_files if f.mime_type)) if processed_files else ""
200202
with TokenUsageScope(
201203
token_emitter,
202204
agent_name="Summarize",
203205
model_deployment_name=model_name,
204206
process_id=result.claim_process_id,
207+
file_name=file_names,
208+
file_mime_type=file_types,
205209
) as scope:
206210
scope.add(model_response)
207211

0 commit comments

Comments
 (0)