import gradio as gr from pyvis.network import Network def create_knowledge_graph(): # Создаем граф с pyvis net = Network( height="600px", width="100%", bgcolor="#222222", font_color="white", cdn_resources="in_line" # Встраиваем JS/CSS в HTML ) # Добавляем узлы (концепции) nodes = ["Python", "Gradio", "Pyvis", "Data Science", "Machine Learning"] for node in nodes: net.add_node(node, label=node) # Добавляем ребра (связи между концепциями) edges = [ ("Python", "Gradio"), ("Python", "Pyvis"), ("Python", "Data Science"), ("Data Science", "Machine Learning"), ("Gradio", "Machine Learning"), ("Pyvis", "Data Science") ] for source, target in edges: net.add_edge(source, target) # Генерируем HTML-код графа html_content = net.generate_html(notebook=False) # Экранируем двойные кавычки для корректной вставки в srcdoc html_content_escaped = html_content.replace('"', '"') # Оборачиваем HTML в iframe iframe_code = f''' ''' return iframe_code with gr.Blocks() as demo: gr.Markdown("# Граф Знаний с Pyvis и Gradio (Blocks)") # Кнопка для генерации графа generate_button = gr.Button("Создать граф") # Выводим результат в виде HTML graph_html = gr.HTML() # Связываем кнопку с функцией generate_button.click( fn=create_knowledge_graph, inputs=[], outputs=graph_html ) demo.launch()