-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmain.py
More file actions
334 lines (317 loc) · 7.44 KB
/
main.py
File metadata and controls
334 lines (317 loc) · 7.44 KB
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
import time
import fire
from metagpt.logs import logger
from metagpt.team import Team
from agent.knowCleaner import knowCleaner
from agent.questionGenerator import questionGenerator
from utils.generate import MedicalKnowledgeFetcher
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
keywords = [
"肺炎链球菌",
"急性心肌梗死",
"高血压危象",
"冠状动脉搭桥手术",
"过敏性紫癜",
"慢性阻塞性肺疾病(COPD)",
"糖尿病酮症酸中毒",
"胃食管反流病(GERD)",
"阿尔茨海默病",
"急性肾衰竭",
"脑动脉瘤",
"急性白血病",
"乳腺癌分期",
"干燥综合症",
"狼疮性肾炎",
"高脂血症",
"甲亢",
"慢性肝炎",
"乙型肝炎病毒(HBV)",
"肝硬化",
"肝癌早期诊断",
"肺结核",
"膀胱癌",
"脑卒中后遗症",
"急性胰腺炎",
"糖尿病视网膜病变",
"突发性耳聋",
"哮喘发作",
"急性中毒性肝病",
"脊髓损伤",
"遗传性肾病",
"强直性脊柱炎",
"胰岛素抵抗",
"白细胞减少症",
"食物中毒",
"麻疹",
"肺部CT影像",
"X射线检查",
"心脏超声",
"胎儿心脏病筛查",
"耳鼻喉科急症",
"骨质疏松症",
"过敏性哮喘",
"免疫系统失调",
"抗体检测",
"癌症免疫治疗",
"抗生素耐药性",
"抗肿瘤药物",
"疼痛管理",
"肺癌早期筛查",
"慢性支气管炎",
"低血糖",
"抗病毒药物",
"高尿酸血症",
"小儿麻痹症",
"甲状腺结节",
"胰腺癌",
"肺部感染",
"维生素D缺乏",
"肾结石",
"骨髓增生异常综合症",
"肺动脉高压",
"急性肠胃炎",
"肠易激综合症",
"胃癌",
"乳腺癌基因检测",
"抗肿瘤免疫疗法",
"抗炎药物",
"肾脏移植",
"胆囊炎",
"急性阑尾炎",
"白内障手术",
"强迫症",
"吸烟与肺部健康",
"儿童哮喘",
"病毒性肝炎",
"甲状腺功能亢进症",
"多发性硬化症",
"系统性红斑狼疮",
"失眠症",
"疼痛管理",
"抗生素滥用",
"帕金森病",
"类风湿性关节炎",
"骨折复位",
"儿童免疫接种",
"慢性肾病",
"脓毒症",
"超声波诊断",
"小儿疝气",
"胃溃疡",
"肌肉萎缩症",
"过敏性休克",
"胰腺炎",
"老年痴呆",
"疱疹病毒",
"腹膜炎",
"心脏骤停",
"淋巴癌",
"自闭症谱系障碍",
"肺结节",
"胃癌分期",
"早产儿护理",
"肾衰竭",
"肺功能检查",
"糖尿病并发症",
"传染病防控",
"食管癌",
"神经退行性疾病",
"抗菌药物使用",
"骨髓穿刺",
"血液透析",
"肠梗阻",
"电子健康记录",
"疫苗接种",
"流感病毒",
"儿童肥胖症",
"遗传性心脏病",
"乳腺超声",
"癌症筛查",
"关节置换手术",
"急性心力衰竭",
"过敏性鼻炎",
"早期干预",
"癫痫发作",
"乳腺肿块",
"宫颈癌筛查",
"儿童肥胖",
"骨质疏松性骨折",
"新型冠状病毒",
"内镜检查",
"抗肿瘤化疗",
"慢性胃炎",
"类风湿性关节炎",
"结肠癌",
"癌症放疗",
"外科手术",
"慢性胃食管反流病",
"骨癌",
"心律失常",
"高血压",
"冠心病",
"心脏起搏器",
"心脏瓣膜病",
"糖尿病",
"高脂血症",
"甲状腺功能减退",
"肝功能异常",
"慢性胃炎",
"脊椎骨折",
"胃肠出血",
"腺垂体瘤",
"乳腺增生",
"内分泌失调",
"风湿性心脏病",
"痛风",
"肺炎",
"胆固醇过高",
"骨髓抑制",
"高钙血症",
"肾上腺疾病",
"多囊卵巢综合症",
"急性脑梗死",
"急性左心衰竭",
"外科创伤",
"骨髓穿刺",
"创伤后应激障碍(PTSD)",
"过敏性皮炎",
"支气管哮喘",
"颈椎病",
"青光眼",
"白内障",
"视网膜病变",
"眼底检查",
"胰腺功能不全",
"小儿高烧",
"新生儿黄疸",
"老年痴呆症",
"白血病",
"多发性骨髓瘤",
"病毒性脑炎",
"麻疹疫苗接种",
"HIV/AIDS",
"肝硬化腹水",
"脂肪肝",
"肺水肿",
"喉癌",
"口腔癌",
"膀胱炎",
"子宫内膜异位症",
"子宫肌瘤",
"精子功能障碍",
"卵巢癌",
"尿失禁",
"高尿酸血症",
"抑郁症",
"强迫症",
"创伤性脑损伤",
"脱水",
"便秘",
"乳腺癌遗传检测",
"原发性肝癌",
"肠道菌群失调",
"心脏支架",
"人工关节置换",
"化疗副作用",
"胃肠镜检查",
"乳腺X线检查",
"尿毒症",
"多囊肾",
"血友病",
"儿童白血病",
"骨盆底功能障碍",
"过敏性皮肤病",
"全身性红斑狼疮",
"低钠血症",
"高钾血症",
"肝功能衰竭",
"急性腹痛",
"前列腺癌",
"前列腺增生",
"子宫颈癌",
"原发性干眼症",
"乳头状癌",
"类风湿性关节炎筛查",
"自闭症",
"腮腺炎",
"狼疮",
"胃出血",
"急性过敏反应",
"膀胱炎",
"痛风性关节炎",
"呼吸衰竭",
"股骨头坏死",
"胆道感染",
"急性传染性肝炎",
"溃疡性结肠炎",
"内分泌瘤",
"脑瘤",
"耳鸣",
"传染性单核细胞增多症",
"淋巴结肿大",
"肠梗阻",
"肝胆系统疾病",
"消化性溃疡",
"幽门螺杆菌感染",
"过敏性支气管炎",
"气胸",
"软组织肿瘤",
"急性肠炎",
"胃肠炎",
"激素替代疗法",
"急性胃扩张",
"动脉硬化",
"颈动脉狭窄",
"糖尿病周围神经病变",
"尿路感染",
"霍奇金淋巴瘤",
"胸膜炎",
"颅内高压",
"胃肠道出血",
"慢性腰痛",
"小儿麻疹",
"儿童过敏",
"肺炎",
"糖尿病足",
"眼外伤",
"口腔溃疡"
]
fetcher = MedicalKnowledgeFetcher()
def calculate_time(func):
"""装饰器:计算异步函数执行时间"""
async def wrapper(*args, **kwargs):
start_time = time.time() # 获取开始时间
result = await func(*args, **kwargs) # 等待异步函数执行
end_time = time.time() # 获取结束时间
execution_time = end_time - start_time # 计算花费的时间
print(f"异步函数 {func.__name__} 执行时间: {execution_time:.6f} 秒")
return result
return wrapper
@calculate_time
async def main(
investment: float = 1000.0,
n_round: int = 2,
):
# 初始化团队
team = Team()
team.hire(
[
knowCleaner(),
questionGenerator(),
]
)
team.invest(investment=investment)
# 遍历关键词并逐一处理
for keyword in keywords:
logger.info(f"Fetching knowledge for keyword: {keyword}")
# 获取当前关键词的相关知识
knowledges = fetcher.query_knowledge(keyword)
idea = keyword + '\n'.join(knowledges)
logger.info(f"Processing knowledge for keyword: {keyword}")
logger.info(idea)
# 运行项目
team.run_project(idea)
res = await team.run(n_round=n_round)
if __name__ == "__main__":
fire.Fire(main)