import json
from tqdm import tqdm


def qwen_api(prompt):
    import dashscope
    from http import HTTPStatus

    dashscope.api_key = "your key"
    prompt = "你是一位非常擅长将英文翻译成中文的专家。请你将下面的英文翻译成正确地道的中文,要求只返回翻译的中文句子:\n" + prompt
    response = dashscope.Generation.call(
        model='qwen-max',
        prompt=prompt,
        history=[],
    )

    if response.status_code == HTTPStatus.OK:
        result = response.output.text
        # print(result)
    else:
        result = 'ERROR'
    return result


def get_conversation_list():
    with open('./ESConv.json', 'rt', encoding='utf-8') as file:
        data = json.load(file)

    idx = 0
    conversation_list = []
    for itm in tqdm(data):
        one_conversation = {
            "conversation": []
        }
        dia_tuple = []
        for dia in tqdm(itm['dialog']):
            # print(dia['speaker'], dia['content'])
            if dia['speaker'] == 'seeker':
                dia_tuple.append(qwen_api(dia['content']))
            elif dia['speaker'] == 'supporter':
                dia_tuple.append(qwen_api(dia['content']))
            else:
                exit("不存在角色!")

            if len(dia_tuple) == 2 and len(one_conversation['conversation']) == 0:
                one_conversation['conversation'].append(
                    {
                        "system": "现在你是一个心理专家,我有一些心理问题,请你用专业的知识帮我解决。",
                        "input": dia_tuple[0],
                        "output": dia_tuple[1]
                    },
                )
                dia_tuple = []

            elif len(dia_tuple) == 2:
                one_conversation['conversation'].append(
                    {
                        "input": dia_tuple[0],
                        "output": dia_tuple[1]
                    },
                )
                dia_tuple = []

        conversation_list.append(one_conversation)
        idx += 1

        # if (idx == 1):
        #     print(conversation_list)
        #     break
        print(idx)
    return conversation_list


if __name__ == '__main__':
    conversation_list = get_conversation_list()
    # 将conversation_list保存为一个json文件
    with open('conversation_list.json', 'wt', encoding='utf-8') as f:
        json.dump(conversation_list, f, ensure_ascii=False)