mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-06 05:25:04 +00:00
openai: audio modality, remove sockets from unit tests (#27436)
This commit is contained in:
@@ -129,6 +129,8 @@ def _convert_dict_to_message(_dict: Mapping[str, Any]) -> BaseMessage:
|
||||
invalid_tool_calls.append(
|
||||
make_invalid_tool_call(raw_tool_call, str(e))
|
||||
)
|
||||
if audio := _dict.get("audio"):
|
||||
additional_kwargs["audio"] = audio
|
||||
return AIMessage(
|
||||
content=content,
|
||||
additional_kwargs=additional_kwargs,
|
||||
@@ -219,6 +221,17 @@ def _convert_message_to_dict(message: BaseMessage) -> dict:
|
||||
# If tool calls present, content null value should be None not empty string.
|
||||
if "function_call" in message_dict or "tool_calls" in message_dict:
|
||||
message_dict["content"] = message_dict["content"] or None
|
||||
|
||||
if "audio" in message.additional_kwargs:
|
||||
# openai doesn't support passing the data back - only the id
|
||||
# https://platform.openai.com/docs/guides/audio/multi-turn-conversations
|
||||
raw_audio = message.additional_kwargs["audio"]
|
||||
audio = (
|
||||
{"id": message.additional_kwargs["audio"]["id"]}
|
||||
if "id" in raw_audio
|
||||
else raw_audio
|
||||
)
|
||||
message_dict["audio"] = audio
|
||||
elif isinstance(message, SystemMessage):
|
||||
message_dict["role"] = "system"
|
||||
elif isinstance(message, FunctionMessage):
|
||||
|
Reference in New Issue
Block a user