Генератор MindMap

Генератор MindMap


import openai

import os

from graphviz import Digraph


openai.api_key = "sk-..." # Вставь свой ключ


def extract_mindmap(prompt: str) -> dict:

  system = {

    "role": "system",

    "content": "Ты — помощник, который превращает идеи в mindmap. Верни JSON вида: {'Тема': ['подтема1', 'подтема2', ...]}"

  }


  user = {

    "role": "user",

    "content": f"Вот идея: {prompt}"

  }


  response = openai.ChatCompletion.create(

    model="gpt-4",

    messages=[system, user],

    temperature=0.5

  )


  content = response.choices[0].message.content


  try:

    mindmap = eval(content) # Преобразуем в словарь (безопаснее использовать ast.literal_eval)

    return mindmap

  except Exception as e:

    print("Ошибка в формате ответа:", e)

    return {}


def create_graph(mindmap: dict, filename="mindmap"):

  dot = Digraph(comment="MindMap", format='png')


  for topic, subtopics in mindmap.items():

    dot.node(topic)

    for sub in subtopics:

      dot.node(sub)

      dot.edge(topic, sub)


  dot.render(filename, view=True)

  print(f"[✔] Mindmap сохранена в {filename}.png")


# --- Пример запуска ---

if __name__ == "__main__":

  user_idea = input("💬 Опиши свою идею:\n> ")

  structure = extract_mindmap(user_idea)

  print("🧠 Структура:", structure)

  create_graph(structure)

Report Page