Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions services/chat-backend/src/routers/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
)
from src.services.azure import apply_azure_ad_token
from src.services.chat_config import get_reference_config
from src.services.chat_log_filter import filter_log
from src.schemas.chat.input import ChatLogField
from src.utils.models import registry as model_registry


Expand Down Expand Up @@ -59,7 +59,7 @@ async def score(


@azure_router.post(
"/{model_name}/chat/completions",
"/{model_name:path}/chat/completions",
responses={
200: {"model": ChatResponse},
},
Expand Down Expand Up @@ -98,18 +98,23 @@ async def _handle_request(

# TODO:properly handle multiple completions
# or maybe don't support n > 1 for now
model_completion, score = completions[0]
model_completion, tlm_score = completions[0]

result = {
**model_completion.model_dump(),
"tlm_metadata": {
"trustworthiness_score": float(score),
"trustworthiness_score": float(tlm_score.trustworthiness_score),
},
}

filtered_log = filter_log(log, input.options.log)
if metadata_log := filtered_log.get(str(0), {}):
result["tlm_metadata"]["metadata"] = metadata_log
# add explanation to the result if specified
if ChatLogField.EXPLANATION in input.options.log:
result["tlm_metadata"]["log"] = {"explanation": tlm_score.explanation}

# TODO: these are internal logs, do not expose for now
# filtered_log = filter_log(log, input.options.log)
# if metadata_log := filtered_log.get(str(0), {}):
# result["tlm_metadata"]["metadata"] = metadata_log

return result

Expand Down
2 changes: 2 additions & 0 deletions services/chat-backend/src/schemas/chat/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
class ChatLogField(enum.Enum):
"""The fields to log for a chat completion."""

EXPLANATION = "explanation"

RESULT_COMPLETION = "result_completion"
RESULT_SCORE = "result_score"

Expand Down
Loading