You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure AI服务对话摘要API遇错误,求代码问题排查

Azure AI对话摘要功能代码错误排查

问题场景

运行Azure AI服务的对话摘要功能时触发代码错误,以下是相关核心调用代码与文本转JSON格式的处理代码,转换后的输出结构已符合文档要求,请求排查代码问题:

核心调用代码

# analyze query
client = ConversationAnalysisClient(endpoint, AzureKeyCredential(key))
with client:
    poller = client.begin_conversation_analysis(
        task={
            "displayName": "Analyze conversations from xxx",
            "analysisInput": {
                "conversations": [
                    {
                    "conversationItems": json_objects_output,
                    "modality": "text",
                    "id": "conversation1",
                    "language": "en"
                    },
                ]
            },
            "tasks": [
                {
                    "taskName": "Chapter title task",
                    "kind": "ConversationalSummarizationTask",
                    "parameters": {
                        "summaryAspects": ["chapterTitle"]
                    }
                },
                {
                    "taskName": "Narrative task",
                    "kind": "ConversationalSummarizationTask",
                    "parameters": {
                        "summaryAspects": ["narrative"]
                    }
                },
            ]
        }
    )
    # view result
    result = poller.result()
    task_results = result["tasks"]["items"]
    for task in task_results:
        print(f"\n{task['taskName']} status: {task['status']}")
        task_result = task["results"]
        if task_result["errors"]:
            print("... errors occurred ...")
            for error in task_result["errors"]:
                print(error)
        else:
            conversation_result = task_result["conversations"][0]
            if conversation_result["warnings"]:
                print("... view warnings ...")
                for warning in conversation_result["warnings"]:
                    print(warning)
            else:
                summaries = conversation_result["summaries"]
                print("... view task result ...")
                for summary in summaries:
                    print(f"{summary['aspect']}: {summary['text']}")

文本转JSON格式代码

import json
def convert_to_json(transcript_text):
    lines = transcript_text.strip().split('\n')
    json_objects = []
    for i, line in enumerate(lines, start=1):
        json_obj = {
            "text": line.strip(),
            "modality": "text",
            "id": str(i),
            "role": "Speaker_1",
            "participantId": "Speaker_1"
        }
        json_objects.append(json_obj)
    return json_objects
# Read transcript from text file
with open('/content/input.txt', 'r') as file:
    transcript_text = file.read()
# Convert transcript to JSON format
json_objects_output=json.dumps(convert_to_json(transcript_text), indent=2)
print(json_objects_output)
# json dumps file
with open('/content/output.json','w') as json:
  json.write(json_objects_output)

错误原因

json_objects_output被json.dumps()序列化为了JSON字符串,但Azure AI的begin_conversation_analysis接口中,conversationItems参数要求传入Python列表对象,而非字符串格式的JSON。API无法解析字符串格式的对话条目,因此触发错误。

修改方案

1. 调整JSON转换逻辑

保留转换后的Python列表对象,仅在需要写入文件时才进行序列化:

修改后的文本转JSON代码:

import json
def convert_to_json(transcript_text):
    lines = transcript_text.strip().split('\n')
    json_objects = []
    for i, line in enumerate(lines, start=1):
        json_obj = {
            "text": line.strip(),
            "modality": "text",
            "id": str(i),
            "role": "Speaker_1",
            "participantId": "Speaker_1"
        }
        json_objects.append(json_obj)
    return json_objects
# Read transcript from text file
with open('/content/input.txt', 'r') as file:
    transcript_text = file.read()
# 保留Python列表对象,用于API调用
json_objects_output = convert_to_json(transcript_text)
# 仅在写入文件时进行JSON序列化
with open('/content/output.json','w') as json_file:
  json.dump(json_objects_output, json_file, indent=2)
# 打印输出时可选序列化
print(json.dumps(json_objects_output, indent=2))

2. 核心调用代码无需修改

确保conversationItems传入的是修改后的json_objects_output(Python列表)即可,原核心代码的结构无需调整。

验证逻辑

修改后,json_objects_output是包含对话条目的Python列表,符合Azure AI对话分析接口对conversationItems的参数要求,API可以正确解析对话内容并生成摘要。

内容的提问来源于stack exchange,提问作者JaS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:26:00