trashchenkov commited on
Commit
cd9ea1c
·
verified ·
1 Parent(s): 9d4a299

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from pyvis.network import Network
3
+ import base64
4
+
5
+ def create_knowledge_graph():
6
+ # Создаем граф с pyvis
7
+ net = Network(
8
+ height="600px",
9
+ width="100%",
10
+ bgcolor="#222222",
11
+ font_color="white",
12
+ cdn_resources="in_line" # Все необходимые JS/CSS будут встроены в HTML
13
+ )
14
+
15
+ # Добавляем узлы (концепции)
16
+ nodes = ["Python", "Gradio", "Pyvis", "Data Science", "Machine Learning"]
17
+ for node in nodes:
18
+ net.add_node(node, label=node)
19
+
20
+ # Добавляем ребра (связи между концепциями)
21
+ edges = [
22
+ ("Python", "Gradio"),
23
+ ("Python", "Pyvis"),
24
+ ("Python", "Data Science"),
25
+ ("Data Science", "Machine Learning"),
26
+ ("Gradio", "Machine Learning"),
27
+ ("Pyvis", "Data Science")
28
+ ]
29
+ for source, target in edges:
30
+ net.add_edge(source, target)
31
+
32
+ # Генерируем HTML-код графа
33
+ html_content = net.generate_html(notebook=False)
34
+
35
+ # Кодируем HTML в base64 и формируем data URL
36
+ html_bytes = html_content.encode("utf-8")
37
+ b64_html = base64.b64encode(html_bytes).decode("utf-8")
38
+ data_uri = f"data:text/html;base64,{b64_html}"
39
+
40
+ # Возвращаем ссылку, которая откроется в новой вкладке
41
+ return f'<a href="{data_uri}" target="_blank">Открыть граф в новой вкладке</a>'
42
+
43
+ with gr.Blocks() as demo:
44
+ gr.Markdown("# Открытие графа в новой вкладке")
45
+ generate_button = gr.Button("Создать граф")
46
+ html_out = gr.HTML()
47
+
48
+ generate_button.click(fn=create_knowledge_graph, inputs=[], outputs=html_out)
49
+
50
+ demo.launch(inline=True)