项目简介
本项目是基于 Python 和 React 构建的心智图生成系统。系统具备多种模型选项,能依据用户输入的开放式问题生成对应的心智图。用户可通过 API 调用或者前端网页进行操作,并且支持缓存功能,能有效提高运行速度和节省成本,适用于各种决策前问题的深入思考与梳理场景。
项目的主要特性和功能
- 多模型支持:提供
inner_dialog
(本论文系统)、gemini
(Gemini - Pro 3 - round baseline)、chatgpt
(ChatGPT 3 - round baseline)、extract
(Google Search 前 5 篇人类文章人工整理生成心智图)等多种模型选项。 - 缓存机制:支持使用缓存资料,加快响应速度,可选择是否复写缓存资料。
- API 调用:提供 RESTful API 接口,方便其他系统集成调用,用户能自定义输入参数。
- 前端演示:采用 React 前端框架、Vite 前端建构工具和 TypeScript 编写前端代码,结合 Reactflow 绘制心智图,提供直观用户界面。
- 实验支持:提供实验脚本,便于对不同模型进行实验和记录结果。
安装使用步骤
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】