-
Notifications
You must be signed in to change notification settings - Fork 126
/
process.py
78 lines (65 loc) · 2.41 KB
/
process.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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)