Skip to content

Commit c820e72

Browse files
authored
fix completions request id (#402)
* fix completions request id
1 parent 2fdf23d commit c820e72

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1+
from typing import Optional
2+
13
from ddtrace import tracer
24

35

4-
def add_trace_request_id(request_id: str):
6+
def add_trace_request_id(request_id: Optional[str]):
57
"""Adds a custom tag to a given dd trace corresponding to the request id
68
so that we can filter in Datadog easier
79
"""
10+
if not request_id:
11+
return
12+
813
current_span = tracer.current_span()
914
if current_span:
1015
current_span.set_tag("launch.request_id", request_id)

model-engine/model_engine_server/common/dtos/llms.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class CompletionSyncV1Response(BaseModel):
199199
Response object for a synchronous prompt completion task.
200200
"""
201201

202-
request_id: str
202+
request_id: Optional[str]
203203
output: Optional[CompletionOutput] = None
204204

205205

@@ -273,7 +273,7 @@ class CompletionStreamV1Response(BaseModel):
273273
Response object for a stream prompt completion task.
274274
"""
275275

276-
request_id: str
276+
request_id: Optional[str]
277277
output: Optional[CompletionStreamOutput] = None
278278
error: Optional[StreamError] = None
279279
"""Error of the response (if any)."""

model-engine/model_engine_server/domain/use_cases/llm_model_endpoint_use_cases.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import os
1010
from dataclasses import asdict
1111
from typing import Any, AsyncIterable, Dict, List, Optional, Union
12-
from uuid import uuid4
1312

1413
from model_engine_server.common.config import hmi_config
1514
from model_engine_server.common.dtos.llms import (
@@ -35,7 +34,12 @@
3534
from model_engine_server.common.dtos.tasks import SyncEndpointPredictV1Request, TaskStatus
3635
from model_engine_server.common.resource_limits import validate_resource_requests
3736
from model_engine_server.core.auth.authentication_repository import User
38-
from model_engine_server.core.loggers import logger_name, make_logger
37+
from model_engine_server.core.loggers import (
38+
LoggerTagKey,
39+
LoggerTagManager,
40+
logger_name,
41+
make_logger,
42+
)
3943
from model_engine_server.domain.entities import (
4044
LLMInferenceFramework,
4145
LLMMetadata,
@@ -1448,7 +1452,7 @@ async def execute(
14481452
ObjectNotAuthorizedException: If the owner does not own the model endpoint.
14491453
"""
14501454

1451-
request_id = str(uuid4())
1455+
request_id = LoggerTagManager.get(LoggerTagKey.REQUEST_ID)
14521456
add_trace_request_id(request_id)
14531457

14541458
model_endpoints = await self.llm_model_endpoint_service.list_llm_model_endpoints(
@@ -1736,7 +1740,7 @@ async def execute(
17361740
ObjectNotAuthorizedException: If the owner does not own the model endpoint.
17371741
"""
17381742

1739-
request_id = str(uuid4())
1743+
request_id = LoggerTagManager.get(LoggerTagKey.REQUEST_ID)
17401744
add_trace_request_id(request_id)
17411745

17421746
model_endpoints = await self.llm_model_endpoint_service.list_llm_model_endpoints(

model-engine/tests/unit/domain/test_llm_use_cases.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -948,7 +948,6 @@ async def test_completion_stream_use_case_success(
948948
output_texts = ["I", " am", " a", " new", "bie", ".", "I am a newbie."]
949949
i = 0
950950
async for message in response_1:
951-
assert message.dict()["request_id"]
952951
assert message.dict()["output"]["text"] == output_texts[i]
953952
if i == 6:
954953
assert message.dict()["output"]["num_prompt_tokens"] == 7
@@ -1016,7 +1015,6 @@ async def test_completion_stream_text_generation_inference_use_case_success(
10161015
output_texts = ["I", " am", " a", " new", "bie", ".", "I am a newbie."]
10171016
i = 0
10181017
async for message in response_1:
1019-
assert message.dict()["request_id"]
10201018
assert message.dict()["output"]["text"] == output_texts[i]
10211019
if i == 5:
10221020
assert message.dict()["output"]["num_prompt_tokens"] == 7
@@ -1079,7 +1077,6 @@ async def test_completion_stream_trt_llm_use_case_success(
10791077
output_texts = ["Machine", "learning", "is", "a", "branch"]
10801078
i = 0
10811079
async for message in response_1:
1082-
assert message.dict()["request_id"]
10831080
assert message.dict()["output"]["text"] == output_texts[i]
10841081
assert message.dict()["output"]["num_prompt_tokens"] == 7
10851082
assert message.dict()["output"]["num_completion_tokens"] == i + 1

0 commit comments

Comments
 (0)