convoviz 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- convoviz-0.3.2/PKG-INFO +145 -0
- convoviz-0.3.2/README.md +120 -0
- convoviz-0.3.2/convoviz/__init__.py +34 -0
- convoviz-0.3.2/convoviz/__main__.py +6 -0
- convoviz-0.3.2/convoviz/analysis/__init__.py +22 -0
- convoviz-0.3.2/convoviz/analysis/graphs.py +875 -0
- convoviz-0.3.2/convoviz/analysis/wordcloud.py +196 -0
- convoviz-0.3.2/convoviz/assets/colormaps.txt +15 -0
- convoviz-0.3.2/convoviz/assets/fonts/AmaticSC-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/ArchitectsDaughter-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/BebasNeue-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Borel-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Courgette-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/CroissantOne-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Handjet-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/IndieFlower-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Kalam-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Lobster-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/MartianMono-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/MartianMono-Thin.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Montserrat-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Mooli-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Pacifico-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/PlayfairDisplay-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Raleway-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/RobotoMono-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/RobotoMono-Thin.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/RobotoSlab-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/RobotoSlab-Thin.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Ruwudu-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Sacramento-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/SedgwickAveDisplay-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/ShadowsIntoLight-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/TitilliumWeb-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Yellowtail-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/YsabeauOffice-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/YsabeauSC-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/YsabeauSC-Thin.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/fonts/Zeyada-Regular.ttf +0 -0
- convoviz-0.3.2/convoviz/assets/stopwords.txt +1 -0
- convoviz-0.3.2/convoviz/cli.py +125 -0
- convoviz-0.3.2/convoviz/config.py +120 -0
- convoviz-0.3.2/convoviz/exceptions.py +47 -0
- convoviz-0.3.2/convoviz/interactive.py +255 -0
- convoviz-0.3.2/convoviz/io/__init__.py +21 -0
- convoviz-0.3.2/convoviz/io/assets.py +98 -0
- convoviz-0.3.2/convoviz/io/loaders.py +186 -0
- convoviz-0.3.2/convoviz/io/writers.py +225 -0
- convoviz-0.3.2/convoviz/models/__init__.py +24 -0
- convoviz-0.3.2/convoviz/models/collection.py +115 -0
- convoviz-0.3.2/convoviz/models/conversation.py +158 -0
- convoviz-0.3.2/convoviz/models/message.py +218 -0
- convoviz-0.3.2/convoviz/models/node.py +66 -0
- convoviz-0.3.2/convoviz/pipeline.py +176 -0
- convoviz-0.3.2/convoviz/py.typed +0 -0
- convoviz-0.3.2/convoviz/renderers/__init__.py +10 -0
- convoviz-0.3.2/convoviz/renderers/markdown.py +269 -0
- convoviz-0.3.2/convoviz/renderers/yaml.py +119 -0
- convoviz-0.3.2/convoviz/utils.py +155 -0
- convoviz-0.3.2/pyproject.toml +105 -0
convoviz-0.3.2/PKG-INFO
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: convoviz
|
|
3
|
+
Version: 0.3.2
|
|
4
|
+
Summary: Get analytics and visualizations on your ChatGPT data!
|
|
5
|
+
Keywords: markdown,chatgpt,openai,visualization,analytics,json,export,data-analysis,obsidian
|
|
6
|
+
Author: Mohamed Cheikh Sidiya
|
|
7
|
+
Author-email: Mohamed Cheikh Sidiya <mohamedcheikhsidiya77@gmail.com>
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Requires-Dist: orjson>=3.11.5
|
|
13
|
+
Requires-Dist: pydantic>=2.12.5
|
|
14
|
+
Requires-Dist: pydantic-settings>=2.7.0
|
|
15
|
+
Requires-Dist: questionary>=2.1.1
|
|
16
|
+
Requires-Dist: rich>=14.2.0
|
|
17
|
+
Requires-Dist: tqdm>=4.67.1
|
|
18
|
+
Requires-Dist: typer>=0.21.0
|
|
19
|
+
Requires-Dist: nltk>=3.9.2 ; extra == 'viz'
|
|
20
|
+
Requires-Dist: wordcloud>=1.9.5 ; extra == 'viz'
|
|
21
|
+
Requires-Python: >=3.12
|
|
22
|
+
Project-URL: Repository, https://github.com/mohamed-chs/chatgpt-history-export-to-md
|
|
23
|
+
Provides-Extra: viz
|
|
24
|
+
Description-Content-Type: text/markdown
|
|
25
|
+
|
|
26
|
+
# Convoviz ๐: Visualize your entire ChatGPT data
|
|
27
|
+
|
|
28
|
+
Convert your ChatGPT history into well-formatted Markdown files. Visualize your data with word clouds ๐กโ๏ธ and usage graphs ๐.
|
|
29
|
+
|
|
30
|
+

|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
## Features
|
|
34
|
+
|
|
35
|
+
- **YAML Headers**: Optional and included by default.
|
|
36
|
+
- **Inline Images**: Media attachments rendered directly in Markdown.
|
|
37
|
+
- **Data Visualizations**: Word clouds, graphs, and more.
|
|
38
|
+
|
|
39
|
+
See examples [here](demo).
|
|
40
|
+
|
|
41
|
+
## How to Use ๐
|
|
42
|
+
|
|
43
|
+
### 1. Export Your ChatGPT Data ๐
|
|
44
|
+
|
|
45
|
+
- Sign in at [chatgpt.com](https://chatgpt.com).
|
|
46
|
+
- Navigate: Profile Name (bottom left) -> **Settings** -> **Data controls** -> **Export** -> **Confirm export**.
|
|
47
|
+
- Await email from OpenAI and download the `.zip` file.
|
|
48
|
+
|
|
49
|
+
### 2. Install the tool ๐
|
|
50
|
+
|
|
51
|
+
First, install [uv](https://github.com/astral-sh/uv) (if you don't have it):
|
|
52
|
+
|
|
53
|
+
MacOS / Linux:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Windows (PowerShell):
|
|
60
|
+
|
|
61
|
+
```powershell
|
|
62
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Then install convoviz:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uv tool install "convoviz[viz]"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The `[viz]` extra includes graphs and word clouds. Skip it for a faster markdown-only install.
|
|
72
|
+
|
|
73
|
+
### 3. Run the tool ๐โโ๏ธ
|
|
74
|
+
|
|
75
|
+
Simply run the command and follow the prompts:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
convoviz
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
#### Command Line Arguments
|
|
82
|
+
|
|
83
|
+
You can provide arguments directly to skip the prompts:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
convoviz --input path/to/your/export.zip --output path/to/output/folder
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
##### Selective Output
|
|
90
|
+
|
|
91
|
+
By default, all outputs are generated. Use `--outputs` to pick specific ones:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
convoviz --input export.zip --outputs markdown --outputs graphs
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Options: `markdown`, `graphs`, `wordclouds`. In interactive mode, you'll be prompted.
|
|
98
|
+
|
|
99
|
+
##### Other Notes
|
|
100
|
+
|
|
101
|
+
- `--zip` / `-z` is kept as an alias for `--input` for convenience.
|
|
102
|
+
- You can force non-interactive mode with `--no-interactive`.
|
|
103
|
+
- Use `--flat` to put all Markdown files in a single folder instead of organizing by date.
|
|
104
|
+
|
|
105
|
+
For more options, run:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
convoviz --help
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 4. Check the Output ๐
|
|
112
|
+
|
|
113
|
+
And that's it! After running the script, head over to the output folder to see your neatly formatted Markdown files and visualizations.
|
|
114
|
+
|
|
115
|
+

|
|
116
|
+
|
|
117
|
+
## Share Your Feedback! ๐
|
|
118
|
+
|
|
119
|
+
I hope you find this tool useful. I'm continuously looking to improve on this, but I need your help for that.
|
|
120
|
+
|
|
121
|
+
Whether you're a tech wizard or you're new to all this, I'd love to hear about your journey with the tool. Found a quirk? Have a suggestion? Or just want to send some good vibes? I'm all ears! (see [issues](https://github.com/mohamed-chs/chatgpt-history-export-to-md/issues))
|
|
122
|
+
|
|
123
|
+
And if you've had a great experience, consider giving the project a star โญ. It keeps me motivated and helps others discover it!
|
|
124
|
+
|
|
125
|
+
## Notes
|
|
126
|
+
|
|
127
|
+
This is just a small thing I coded to help me see my convos in beautiful markdown. It was originally built with [Obsidian](https://obsidian.md/) (my go-to note-taking app) in mind, but the default output is standard Markdown.
|
|
128
|
+
|
|
129
|
+
I wasn't a fan of the clunky, and sometimes paid, browser extensions.
|
|
130
|
+
|
|
131
|
+
It was also a great opportunity to learn more about Python and type annotations. I had mypy, pyright, and ruff all on strict mode, 'twas fun.
|
|
132
|
+
|
|
133
|
+
It should(?) also work as library, so you can import and use the models and functions. I need to add more documentation for that tho. Feel free to reach out if you need help.
|
|
134
|
+
|
|
135
|
+
### Offline / reproducible runs
|
|
136
|
+
|
|
137
|
+
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
python -c "import nltk; nltk.download('stopwords')"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Bookmarklet
|
|
144
|
+
|
|
145
|
+
There's also a JavaScript bookmarklet flow under `js/` (experimental) for exporting additional conversation data outside the official ZIP export.
|
convoviz-0.3.2/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Convoviz ๐: Visualize your entire ChatGPT data
|
|
2
|
+
|
|
3
|
+
Convert your ChatGPT history into well-formatted Markdown files. Visualize your data with word clouds ๐กโ๏ธ and usage graphs ๐.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+

|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- **YAML Headers**: Optional and included by default.
|
|
11
|
+
- **Inline Images**: Media attachments rendered directly in Markdown.
|
|
12
|
+
- **Data Visualizations**: Word clouds, graphs, and more.
|
|
13
|
+
|
|
14
|
+
See examples [here](demo).
|
|
15
|
+
|
|
16
|
+
## How to Use ๐
|
|
17
|
+
|
|
18
|
+
### 1. Export Your ChatGPT Data ๐
|
|
19
|
+
|
|
20
|
+
- Sign in at [chatgpt.com](https://chatgpt.com).
|
|
21
|
+
- Navigate: Profile Name (bottom left) -> **Settings** -> **Data controls** -> **Export** -> **Confirm export**.
|
|
22
|
+
- Await email from OpenAI and download the `.zip` file.
|
|
23
|
+
|
|
24
|
+
### 2. Install the tool ๐
|
|
25
|
+
|
|
26
|
+
First, install [uv](https://github.com/astral-sh/uv) (if you don't have it):
|
|
27
|
+
|
|
28
|
+
MacOS / Linux:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Windows (PowerShell):
|
|
35
|
+
|
|
36
|
+
```powershell
|
|
37
|
+
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Then install convoviz:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
uv tool install "convoviz[viz]"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The `[viz]` extra includes graphs and word clouds. Skip it for a faster markdown-only install.
|
|
47
|
+
|
|
48
|
+
### 3. Run the tool ๐โโ๏ธ
|
|
49
|
+
|
|
50
|
+
Simply run the command and follow the prompts:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
convoviz
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### Command Line Arguments
|
|
57
|
+
|
|
58
|
+
You can provide arguments directly to skip the prompts:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
convoviz --input path/to/your/export.zip --output path/to/output/folder
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
##### Selective Output
|
|
65
|
+
|
|
66
|
+
By default, all outputs are generated. Use `--outputs` to pick specific ones:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
convoviz --input export.zip --outputs markdown --outputs graphs
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Options: `markdown`, `graphs`, `wordclouds`. In interactive mode, you'll be prompted.
|
|
73
|
+
|
|
74
|
+
##### Other Notes
|
|
75
|
+
|
|
76
|
+
- `--zip` / `-z` is kept as an alias for `--input` for convenience.
|
|
77
|
+
- You can force non-interactive mode with `--no-interactive`.
|
|
78
|
+
- Use `--flat` to put all Markdown files in a single folder instead of organizing by date.
|
|
79
|
+
|
|
80
|
+
For more options, run:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
convoviz --help
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 4. Check the Output ๐
|
|
87
|
+
|
|
88
|
+
And that's it! After running the script, head over to the output folder to see your neatly formatted Markdown files and visualizations.
|
|
89
|
+
|
|
90
|
+

|
|
91
|
+
|
|
92
|
+
## Share Your Feedback! ๐
|
|
93
|
+
|
|
94
|
+
I hope you find this tool useful. I'm continuously looking to improve on this, but I need your help for that.
|
|
95
|
+
|
|
96
|
+
Whether you're a tech wizard or you're new to all this, I'd love to hear about your journey with the tool. Found a quirk? Have a suggestion? Or just want to send some good vibes? I'm all ears! (see [issues](https://github.com/mohamed-chs/chatgpt-history-export-to-md/issues))
|
|
97
|
+
|
|
98
|
+
And if you've had a great experience, consider giving the project a star โญ. It keeps me motivated and helps others discover it!
|
|
99
|
+
|
|
100
|
+
## Notes
|
|
101
|
+
|
|
102
|
+
This is just a small thing I coded to help me see my convos in beautiful markdown. It was originally built with [Obsidian](https://obsidian.md/) (my go-to note-taking app) in mind, but the default output is standard Markdown.
|
|
103
|
+
|
|
104
|
+
I wasn't a fan of the clunky, and sometimes paid, browser extensions.
|
|
105
|
+
|
|
106
|
+
It was also a great opportunity to learn more about Python and type annotations. I had mypy, pyright, and ruff all on strict mode, 'twas fun.
|
|
107
|
+
|
|
108
|
+
It should(?) also work as library, so you can import and use the models and functions. I need to add more documentation for that tho. Feel free to reach out if you need help.
|
|
109
|
+
|
|
110
|
+
### Offline / reproducible runs
|
|
111
|
+
|
|
112
|
+
Word clouds use NLTK stopwords. If you're offline and NLTK data isn't installed yet, pre-download it:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
python -c "import nltk; nltk.download('stopwords')"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Bookmarklet
|
|
119
|
+
|
|
120
|
+
There's also a JavaScript bookmarklet flow under `js/` (experimental) for exporting additional conversation data outside the official ZIP export.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"""Convoviz - ChatGPT data visualization and export tool."""
|
|
2
|
+
|
|
3
|
+
from convoviz import config, io, models, renderers, utils
|
|
4
|
+
from convoviz.config import ConvovizConfig, get_default_config
|
|
5
|
+
from convoviz.models import Conversation, ConversationCollection, Message, Node
|
|
6
|
+
from convoviz.pipeline import run_pipeline
|
|
7
|
+
|
|
8
|
+
__all__ = [
|
|
9
|
+
# Submodules
|
|
10
|
+
"analysis",
|
|
11
|
+
"config",
|
|
12
|
+
"io",
|
|
13
|
+
"models",
|
|
14
|
+
"renderers",
|
|
15
|
+
"utils",
|
|
16
|
+
# Main classes
|
|
17
|
+
"Conversation",
|
|
18
|
+
"ConversationCollection",
|
|
19
|
+
"ConvovizConfig",
|
|
20
|
+
"Message",
|
|
21
|
+
"Node",
|
|
22
|
+
# Functions
|
|
23
|
+
"get_default_config",
|
|
24
|
+
"run_pipeline",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def __getattr__(name: str):
|
|
29
|
+
"""Lazy import for optional submodules like analysis."""
|
|
30
|
+
if name == "analysis":
|
|
31
|
+
from convoviz import analysis
|
|
32
|
+
|
|
33
|
+
return analysis
|
|
34
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""Data analysis and visualization for convoviz.
|
|
2
|
+
|
|
3
|
+
Requires the [viz] extra: uv tool install "convoviz[viz]"
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
__all__ = [
|
|
7
|
+
"generate_week_barplot",
|
|
8
|
+
"generate_wordcloud",
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def __getattr__(name: str):
|
|
13
|
+
"""Lazy import for visualization functions requiring optional dependencies."""
|
|
14
|
+
if name == "generate_week_barplot":
|
|
15
|
+
from convoviz.analysis.graphs import generate_week_barplot
|
|
16
|
+
|
|
17
|
+
return generate_week_barplot
|
|
18
|
+
if name == "generate_wordcloud":
|
|
19
|
+
from convoviz.analysis.wordcloud import generate_wordcloud
|
|
20
|
+
|
|
21
|
+
return generate_wordcloud
|
|
22
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|