Skip to content

Commit f680921

Browse files
committed
map openai correctly
1 parent ae8e359 commit f680921

1 file changed

Lines changed: 15 additions & 27 deletions

File tree

  • sentry_sdk/integrations/openai_agents

sentry_sdk/integrations/openai_agents/utils.py

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -94,43 +94,31 @@ def _set_input_data(span, get_response_kwargs):
9494
# type: (sentry_sdk.tracing.Span, dict[str, Any]) -> None
9595
if not should_send_default_pii():
9696
return
97+
request_messages = []
9798

98-
messages_by_role = {
99-
"system": [],
100-
"user": [],
101-
"assistant": [],
102-
"tool": [],
103-
} # type: (dict[str, list[Any]])
10499
system_instructions = get_response_kwargs.get("system_instructions")
105100
if system_instructions:
106-
messages_by_role["system"].append({"type": "text", "text": system_instructions})
101+
request_messages.append(
102+
{
103+
"role": "system",
104+
"content": [{"type": "text", "text": system_instructions}],
105+
}
106+
)
107107

108108
for message in get_response_kwargs.get("input", []):
109109
if "role" in message:
110-
# Normalize role to standard gen_ai values
111110
normalized_role = normalize_message_role(message.get("role"))
112-
# Ensure we have a valid bucket for the normalized role
113-
if normalized_role not in messages_by_role:
114-
# Map any unrecognized roles to appropriate defaults
115-
if normalized_role == "tool_call":
116-
normalized_role = (
117-
"tool" # OpenAI Agents uses "tool" instead of "tool_call"
118-
)
119-
120-
if normalized_role in messages_by_role:
121-
messages_by_role[normalized_role].append(
122-
{"type": "text", "text": message.get("content")}
123-
)
111+
request_messages.append(
112+
{
113+
"role": normalized_role,
114+
"content": [{"type": "text", "text": message.get("content")}],
115+
}
116+
)
124117
else:
125118
if message.get("type") == "function_call":
126-
messages_by_role["assistant"].append(message)
119+
request_messages.append({"role": "assistant", "content": [message]})
127120
elif message.get("type") == "function_call_output":
128-
messages_by_role["tool"].append(message)
129-
130-
request_messages = []
131-
for role, messages in messages_by_role.items():
132-
if len(messages) > 0:
133-
request_messages.append({"role": role, "content": messages})
121+
request_messages.append({"role": "tool", "content": [message]})
134122

135123
set_data_normalized(
136124
span, SPANDATA.GEN_AI_REQUEST_MESSAGES, request_messages, unpack=False

0 commit comments

Comments
 (0)