Skip to content

Commit

Permalink
page update
Browse files Browse the repository at this point in the history
  • Loading branch information
jamiesun committed Nov 23, 2023
1 parent 819e570 commit 0eab459
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 60 deletions.
10 changes: 5 additions & 5 deletions common.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,24 +136,24 @@ def build_mind_map(graph, node, parent, structure, level=0, parent_color=None):
node_color = generate_random_dark_color()
graph.node(node, style='filled', color=node_color, fontsize="21", fontname='Noto Sans',
fontcolor='white',
shape='tripleoctagon', peripheries="2", label=node)
shape='ellipse', peripheries="2", label=node)
elif level == 1: # 第二层节点
node_color = generate_random_dark_color()
graph.node(node, style='filled', color=node_color, fontsize="18", fontname='Noto Sans',
fontcolor='white',
shape='hexagon', peripheries="2", label=node)
shape='egg', peripheries="2", label=node)
elif level == 2: # 第三层节点
node_color = generate_light_color(parent_color)
graph.node(node, style='filled', color=node_color, fontsize="16", shape='note', fontname='Noto Sans',
graph.node(node, style='filled', color=node_color, fontsize="16", shape='Mrecord', fontname='Noto Sans',
label=node)
else: # 其他层级
node_color = generate_light_color(parent_color)
graph.node(node, style='filled', color=node_color, fontsize="14", shape='egg', fontname='Noto Sans',
graph.node(node, style='filled', color=node_color, fontsize="14", shape='Mrecord', fontname='Noto Sans',
label=node)

# 连接节点
if parent:
graph.edge(parent, node, penwidth='2.0', color=parent_color if level == 1 else node_color)
graph.edge(parent, node, penwidth='3.0',arrowhead="diamond", color=node_color)

# 递归构建子节点
for child in structure.get(node, []):
Expand Down
54 changes: 3 additions & 51 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,26 +284,6 @@ async def create_image_ocr(file: UploadFile = File(...), td: TokenData = Depends
os.unlink(tmp_path)


# @app.post("/knowledge/mindmap/create", summary="Create a knowledge base mindmap from params",
# description="Generating mind maps from given structured data", include_in_schema=False)
# async def create_mindmap(item: MindmapItem, td: bool = Depends(verify_api_key)):
# try:
# log.info(f"create_mindmap: {item}")
# # 创建并构建思维导图
# graph = Digraph(comment=item.title, engine="sfdp")
# graph.attr(splines='curved', overlap='false', margin='0.4') # 设置图的大小为A4纸尺寸
# build_mind_map(graph, item.title, None, structure=item.structure)
# fileuuid = str(uuid.uuid4())
# graph.render(os.path.join(DATA_DIR, fileuuid), format='png', cleanup=True)
# server_url = os.environ.get("GPTS_API_SERVER")
# if server_url.endswith("/"):
# server_url = server_url[:-1]
# return RestResult(code=0, msg="success", result=dict(data=f"{server_url}/assets/{fileuuid}.png"))
# except Exception as e:
# log.error(f"create_mindmap error: {e}")
# raise HTTPException(status_code=500, detail=str(e))


def create_mindmap_task(task):
try:
log.info(f"generate_mindmap params: {task['content']}")
Expand All @@ -315,7 +295,7 @@ def create_mindmap_task(task):
# 使用 model_validate 方法创建 MindmapItem 实例
item = MindmapItem.model_validate(data)
graph = Digraph(comment=item.title, engine="sfdp")
graph.attr(splines='curved')
graph.attr(splines='compound')
build_mind_map(graph, item.title, None, structure=item.structure)
fileuuid = task["id"]
output_path = os.path.join(DATA_DIR, fileuuid)
Expand All @@ -334,32 +314,6 @@ def create_mindmap_task(task):
traceback.print_exc()


# @app.get("/knowledge/mindmap/generate", summary="Create a knowledge base mindmap from query content",
# description="Generating mind maps from given content")
# async def generate_mindmap(content: str = Query(...), td: bool = Depends(verify_api_key)):
# try:
# log.info(f"generate_mindmap params: {content}")
# airesp = await create_mindma_data_by_openai(content)
# log.info(f"generate_mindmap result: {airesp}")
# # 创建并构建思维导图
# # 将 JSON 字符串转换为 Python 字典
# data = json.loads(airesp)
# # 使用 model_validate 方法创建 MindmapItem 实例
# item = MindmapItem.model_validate(data)
# graph = Digraph(comment=item.title, engine="sfdp")
# graph.attr(splines='curved')
# build_mind_map(graph, item.title, None, structure=item.structure)
# fileuuid = str(uuid.uuid4())
# graph.render(os.path.join(DATA_DIR, fileuuid), format='png', cleanup=True)
# server_url = os.environ.get("GPTS_API_SERVER")
# if server_url.endswith("/"):
# server_url = server_url[:-1]
# return RestResult(code=0, msg="success", result=dict(data=f"{server_url}/assets/{fileuuid}.png"))
# except Exception as e:
# log.error(f"generate_mindmap error: {e}")
# raise HTTPException(status_code=500, detail=str(e))


@app.get("/knowledge/mindmap/task/add", summary="Create a mindmap generate task from content",
description="Create a mindmap generate task from content")
async def generate_mindmap_task_add(background_tasks: BackgroundTasks, content: str = Query(...),
Expand Down Expand Up @@ -407,8 +361,7 @@ async def generate_mindmap_task_result(taskid: str):
return RestResult(code=0, msg="success", result=dict(data=data))


@app.get("/knowledge/mindmap/task/result/view/{taskid}", summary="Get the mindmap generate task result",
description="Get the mindmap generate task result")
@app.get("/knowledge/mindmap/task/result/view/{taskid}", include_in_schema=False)
async def mindmap_task_result_view(request: Request, taskid: str):
if not re.match(r'^[\w-]+$', taskid):
raise HTTPException(status_code=400, detail="Invalid task ID format")
Expand All @@ -422,8 +375,7 @@ async def mindmap_task_result_view(request: Request, taskid: str):
return templates.TemplateResponse("gen_mindmap_result.html", {"request": request, "data": data})


@app.get("/knowledge/mindmap/task/viz/{taskid}", summary="Get the mindmap generate task result",
description="Get the mindmap generate task result")
@app.get("/knowledge/mindmap/task/viz/{taskid}", include_in_schema=False)
async def mindmap_vizview(request: Request, taskid: str):
if not re.match(r'^[\w-]+$', taskid):
raise HTTPException(status_code=400, detail="Invalid task ID format")
Expand Down
7 changes: 3 additions & 4 deletions tools/generate_mindmap.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@
from main import MindmapItem


def generate_mindmap():
def generate_mindmap(content: str):
try:
airesp = create_mindma_data_by_openai("根据微积分基础整理一个学习计划思维导图")
# 创建并构建思维导图
data = json.loads(airesp)
data = json.loads(content)
item = MindmapItem.model_validate(data)

graph = Digraph(comment=item.title, engine="Sfdp")
Expand Down Expand Up @@ -58,4 +57,4 @@ def generate_mindmap():
"📊 数据分析": []
}
}"""
generate_mindmap()
generate_mindmap(content)

0 comments on commit 0eab459

Please sign in to comment.