26 lines
969 B
Python
26 lines
969 B
Python
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
"""Utility functions for processing chat messages."""
|
|
|
|
|
|
def extract_user_text(messages) -> str:
|
|
"""Extract and concatenate text content from user messages."""
|
|
user_texts = []
|
|
for message in messages:
|
|
if message.role == "user":
|
|
# Collect all text content items from this user message
|
|
text_parts = []
|
|
for item in message.content:
|
|
if item.type == "text" and item.text:
|
|
text_parts.append(item.text)
|
|
# If this user message has text content, join it and add to user_texts
|
|
if text_parts:
|
|
user_texts.append("".join(text_parts))
|
|
|
|
if not user_texts:
|
|
raise ValueError("No text content found in user messages")
|
|
|
|
# Join all user turns with newline separator
|
|
return "\n".join(user_texts)
|