community: tongyi multimodal response format fix to support langchain (#28645)

Description: The multimodal(tongyi) response format "message": {"role":
"assistant", "content": [{"text": "图像"}]}}]} is not compatible with
LangChain.
Dependencies: No

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
like 2024-12-11 05:13:26 +08:00 committed by GitHub
parent d0e662e43b
commit 3048a9a26d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -547,6 +547,19 @@ class ChatTongyi(BaseChatModel):
if _kwargs.get("stream") and not _kwargs.get(
"incremental_output", False
):
# inline fix response text logic
resp_copy = json.loads(json.dumps(resp))
if resp_copy.get("output") and resp_copy["output"].get("choices"):
choice = resp_copy["output"]["choices"][0]
message = choice["message"]
if isinstance(message.get("content"), list):
content_text = "".join(
item.get("text", "")
for item in message["content"]
if isinstance(item, dict)
)
message["content"] = content_text
resp = resp_copy
if prev_resp is None:
delta_resp = resp
else: