05ff5e8407
also optimizing the merge_json.py
79 lines
2.4 KiB
Python
79 lines
2.4 KiB
Python
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)
|