Skip to content

Commit b2c0fe3

Browse files
committed
Merge branch 'master' into fix/add-system-prompt-to-anthropic-wrappers
2 parents 09c8a85 + d1e2218 commit b2c0fe3

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

posthog/ai/langchain/callbacks.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,10 +333,8 @@ def _convert_message_to_dict(message: BaseMessage) -> Dict[str, Any]:
333333
else:
334334
message_dict = {"role": message.type, "content": str(message.content)}
335335

336-
if "name" in message.additional_kwargs:
337-
message_dict["name"] = message.additional_kwargs["name"]
338336
if message.additional_kwargs:
339-
message_dict["additional_kwargs"] = message.additional_kwargs
337+
message_dict.update(message.additional_kwargs)
340338

341339
return message_dict
342340

posthog/test/ai/langchain/test_callbacks.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,3 +731,43 @@ async def test_async_anthropic_streaming(mock_client):
731731
assert first_call_props["$ai_http_status"] == 200
732732
assert first_call_props["$ai_input_tokens"] == 17
733733
assert first_call_props["$ai_output_tokens"] is not None
734+
735+
736+
def test_tool_calls(mock_client):
737+
prompt = ChatPromptTemplate.from_messages([("user", "Foo")])
738+
model = FakeMessagesListChatModel(
739+
responses=[
740+
AIMessage(
741+
content="Bar",
742+
additional_kwargs={
743+
"tool_calls": [
744+
{
745+
"type": "function",
746+
"id": "123",
747+
"function": {
748+
"name": "test",
749+
"args": '{"a": 1}',
750+
},
751+
}
752+
]
753+
},
754+
)
755+
]
756+
)
757+
chain = prompt | model
758+
callbacks = CallbackHandler(mock_client)
759+
chain.invoke({}, config={"callbacks": [callbacks]})
760+
761+
assert mock_client.capture.call_count == 1
762+
call = mock_client.capture.call_args[1]
763+
assert call["properties"]["$ai_output_choices"][0]["tool_calls"] == [
764+
{
765+
"type": "function",
766+
"id": "123",
767+
"function": {
768+
"name": "test",
769+
"args": '{"a": 1}',
770+
},
771+
}
772+
]
773+
assert "additional_kwargs" not in call["properties"]["$ai_output_choices"][0]

0 commit comments

Comments
 (0)