littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于 Python 和 React 的心智图生成系统

项目简介

本项目是基于 Python 和 React 构建的心智图生成系统。系统具备多种模型选项,能依据用户输入的开放式问题生成对应的心智图。用户可通过 API 调用或者前端网页进行操作,并且支持缓存功能,能有效提高运行速度和节省成本,适用于各种决策前问题的深入思考与梳理场景。

项目的主要特性和功能

  1. 多模型支持:提供 inner_dialog(本论文系统)、gemini(Gemini - Pro 3 - round baseline)、chatgpt(ChatGPT 3 - round baseline)、extract(Google Search 前 5 篇人类文章人工整理生成心智图)等多种模型选项。
  2. 缓存机制:支持使用缓存资料,加快响应速度,可选择是否复写缓存资料。
  3. API 调用:提供 RESTful API 接口,方便其他系统集成调用,用户能自定义输入参数。
  4. 前端演示:采用 React 前端框架、Vite 前端建构工具和 TypeScript 编写前端代码,结合 Reactflow 绘制心智图,提供直观用户界面。
  5. 实验支持:提供实验脚本,便于对不同模型进行实验和记录结果。

安装使用步骤

1. 准备开发环境

  • 安装 Python 套件管理工具 Poetry(参考 安装文档),本项目使用 Python 3.10 以上版本。
  • 复制项目并进入项目文件夹。
  • 安装依赖: $ poetry install
  • 设定 OpenAI API key:新增一个文件 .env,复制 .env.example 的内容到 .env,然后改写你的 OpenAI api key(注意不要将 .env 内的 API key push 到 git 上,已将 .env 加到 .gitignore)。

2. 启动 API server

$ poetry run uvicorn inner_dialog.api:app --reload - 用网页打开 http://127.0.0.1:8000。 - API 文档网址 http://127.0.0.1:8000/docs

3. 启动前端演示网页

  • 安装 NodeJS(参考 下载地址)。
  • 进入前端文件夹: $ cd inner_dialog/frontend
  • 安装前端依赖: $ npm install
  • 执行开发网页: $ npm run dev
  • 如果开发完成准备发布: $ npm run build
  • 预览待发布的内容: $ npm run preview

4. API 调用示例

  • 呼叫方式示例: shell curl -X 'GET' \ 'http://{IP}/gen_mindmap/?question=things%20to%20consider%20before%20choosing%20a%20career&model=inner_dialog&token=xxx&use_cache=true&foce_write_cache=false' \ -H 'accept: application/json'
  • Python 呼叫示例: ```python import requests import json

def test_api(): question = "things to consider before choosing a career" model = "inner_dialog" api_url = "http://{IP}/gen_mindmap/" res = requests.get( api_url, params={ "question": question, "model": model, "use_cache": True, "force_write_cache": False, "token": "xxx", }, headers={"Content - type": "application/json"}, )

if res.status_code == 200:
    print(res.content)
    data_dict = json.loads(res.content)
    print(data_dict)
else:
    print("request failed")

if name == "main": test_api()

```

5. 部署

  • 使用 docker - compose 一起构建应用和 API(将 localhost 替换为生产服务器 IP): $ IP=localhost docker - compose up --build -d
  • 停止容器: $ docker - compose down
  • 或者分别启动应用和 API 的 docker 容器:
  • 构建演示应用 docker 镜像: $ cd frontend $ docker build -t inner_dialog_app . --build - arg VITE_API_URL=http://localhost:3211 $ docker run -d --name inner_dialog_app -p 3210:80 inner_dialog_app:latest
  • 构建 API docker 镜像: $ docker build -t inner_dialog_api . $ docker run -d --name inner_dialog_api -p 3211:80 inner_dialog_api:latest

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】