jianghuyihei commited on
Commit
867ffb5
1 Parent(s): f3b97a0
Files changed (1) hide show
  1. app.py +38 -33
app.py CHANGED
@@ -329,7 +329,7 @@ html_template = """
329
  <div class="example-topics">
330
  <button onclick="fillTopic('Realistic Image Synthesis in Medical Imaging')">Realistic Image Synthesis in Medical Imaging</button>
331
  <button onclick="fillTopic('Using diffusion to generate road layout')">Using diffusion to generate road layout</button>
332
- <button onclick="fillTopic('Using LLM-based agent to generate idea')">Using LLM-based agent to generate idea</button>
333
  </div>
334
  </div>
335
  <div id="loading" class="loading">{{ loading_text }}</div>
@@ -433,40 +433,45 @@ def form_post(topic: str = Form(...), user_id: str = Form(...), state: str = For
433
  script = script_template.format(user_id=user_id, state=new_state)
434
  print(f"current2 user_id={user_id}, state={new_state}")
435
  # 判断当前是否轮到该用户,如果没轮到则一直等待到轮到为止
436
- print(len(queue.queue),queue.queue[0])
437
  while queue.queue[0] != [user_id,topic]:
438
  time.sleep(10)
439
  continue
440
-
441
- user_id, topic = queue.get()
442
- with lock:
443
- logging.info(f"Processing request for topic: {topic}")
444
- start_time = time.time()
445
- error_message = None
446
- idea = ""
447
- time_taken = 0
448
- # 检查是否超过每日最大回复次数
449
- if reply_count >= MAX_REPLIES_PER_DAY:
450
- error_message = "Today's maximum number of replies has been reached. Please try again tomorrow."
451
- logging.info(f"Today's maximum number of replies has been reached. Please try again tomorrow.")
452
- try:
453
- main_llm, cheap_llm = get_llms()
454
- deep_research_agent = DeepResearchAgent(llm=main_llm, cheap_llm=cheap_llm, improve_cnt=1, max_chain_length=5, min_chain_length=3, max_chain_numbers=1)
455
- print(f"begin to generate idea of topic {topic}")
456
- idea, related_experiments, entities, idea_chain, ideas, trend, future, human, year = deep_research_agent.generate_idea_with_chain(topic)
457
 
458
- idea = fix_markdown(idea)
459
- idea = markdown.markdown(idea)
460
- # 更新每日回复次数
461
- reply_count += 1
462
- end_time = time.time()
463
- time_taken = round(end_time - start_time, 2)
464
- logging.info(f"Successfully generated idea for topic: {topic}")
465
- except Exception as e:
466
- end_time = time.time()
467
- time_taken = round(end_time - start_time, 2)
468
- logging.error(f"Failed to generate idea for topic: {topic}, Error: {str(e)}")
469
- error_message = str(e)
470
- # 从队列中移除当前用户
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
  queue.get()
472
- return Template(html_template).render(idea=idea, error=error_message, reply_count=reply_count, time_taken=time_taken,button_text=new_button_text,loading_text=loading_text,script=script)
 
329
  <div class="example-topics">
330
  <button onclick="fillTopic('Realistic Image Synthesis in Medical Imaging')">Realistic Image Synthesis in Medical Imaging</button>
331
  <button onclick="fillTopic('Using diffusion to generate road layout')">Using diffusion to generate road layout</button>
332
+ <button onclick="fillTopic('Using LLM-based agent to generate research ideas')">Using LLM-based agent to generate research ideas</button>
333
  </div>
334
  </div>
335
  <div id="loading" class="loading">{{ loading_text }}</div>
 
433
  script = script_template.format(user_id=user_id, state=new_state)
434
  print(f"current2 user_id={user_id}, state={new_state}")
435
  # 判断当前是否轮到该用户,如果没轮到则一直等待到轮到为止
436
+ print(queue.queue[0], [user_id,topic])
437
  while queue.queue[0] != [user_id,topic]:
438
  time.sleep(10)
439
  continue
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
 
441
+ try:
442
+ with lock:
443
+ logging.info(f"Processing request for topic: {topic}")
444
+ start_time = time.time()
445
+ error_message = None
446
+ idea = ""
447
+ time_taken = 0
448
+ # 检查是否超过每日最大回复次数
449
+ if reply_count >= MAX_REPLIES_PER_DAY:
450
+ error_message = "Today's maximum number of replies has been reached. Please try again tomorrow."
451
+ logging.info(f"Today's maximum number of replies has been reached. Please try again tomorrow.")
452
+ try:
453
+ main_llm, cheap_llm = get_llms()
454
+ deep_research_agent = DeepResearchAgent(llm=main_llm, cheap_llm=cheap_llm, improve_cnt=1, max_chain_length=5, min_chain_length=3, max_chain_numbers=1)
455
+ print(f"begin to generate idea of topic {topic}")
456
+ idea, related_experiments, entities, idea_chain, ideas, trend, future, human, year = deep_research_agent.generate_idea_with_chain(topic)
457
+
458
+ idea = fix_markdown(idea)
459
+ idea = markdown.markdown(idea)
460
+ # 更新每日回复次数
461
+ reply_count += 1
462
+ end_time = time.time()
463
+ time_taken = round(end_time - start_time, 2)
464
+ logging.info(f"Successfully generated idea for topic: {topic}")
465
+ except Exception as e:
466
+ end_time = time.time()
467
+ time_taken = round(end_time - start_time, 2)
468
+ logging.error(f"Failed to generate idea for topic: {topic}, Error: {str(e)}")
469
+ error_message = str(e)
470
+ # 从队列中移除当前用户
471
+ finished = queue.get()
472
+ print(f"finished: {finished}, still in queue: {queue.qsize()}")
473
+ return Template(html_template).render(idea=idea, error=error_message, reply_count=reply_count, time_taken=time_taken,button_text=new_button_text,loading_text=loading_text,script=script)
474
+ except Exception as e:
475
+ error_message = str(e)
476
  queue.get()
477
+ return Template(html_template).render(idea="", error=error_message, reply_count=reply_count, button_text="Generate",loading_text=loading_text,script=script)