import codecs
payload = data['text'].encode('utf-8')
decoder = codecs.getincrementaldecoder('utf-8')()
text, index, counter = '', 0, 0
while index < len(payload):
    size = data['chunk_sizes'][counter % len(data['chunk_sizes'])]
    text += decoder.decode(payload[index:index + size], final=False)
    index += size
    counter += 1
text += decoder.decode(b'', final=True)
check('实际UTF-8增量解码恢复中文emoji和金额', text == data['text'] == output['text'])
check('JSON转义与中文直写回读相同', json.loads(json.dumps(output, ensure_ascii=True)) == json.loads(json.dumps(output, ensure_ascii=False)))
result = {'recovered_text': text, 'chunks': counter, 'model_text': output['text']}
