Генератор 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)