Describe the bug
I'm trying to use the package to process my ChatGPT exported history zip file, but it encounters a bug when I try running it.
From a brief look at the terminal error output, I'm thinking it has to do with the fact the newer ChatGPT models allow for inputs that aren't just strings, but also images and such, so the exported zip file format may have changed since this repo was last updated (8 months ago).
To Reproduce
Steps to reproduce the behavior:
Run python -m convoviz
Follow all steps, using default settings for all.
Error output below.
Expected behavior
It should convert the zip file contents into markdown and run the program.
Screenshots
If applicable, add screenshots to help explain your problem.
OS
OS: MacOS Sonoma 14.5
Additional context
Terminal output:
Welcome to ChatGPT Data Visualizer β¨π!
Follow the instructions in the command line.
Press 'ENTER' to select the default options.
If you encounter any issues π, please report π¨ them here:
β‘οΈ https://github.com/mohamed-chs/chatgpt-history-export-to-md/issues/new/choose π
? Enter the path to the zip file : /Users/xxxxxxxx/Downloads/xxxxxxxxxxx.zip
? Enter the path to the output folder : /Users/xxxxxxxx/Documents/ChatGPT Data
? Enter the message header (#) for messages from 'system' : ### System
? Enter the message header (#) for messages from 'user' : # Me
? Enter the message header (#) for messages from 'assistant' : # ChatGPT
? Enter the message header (#) for messages from 'tool' : ### Tool output
? Select the LaTeX math delimiters you want to use : default
? Select the YAML metadata headers you want to include : done (10 selections)
? Select the font you want to use for the word clouds : RobotoSlab-Thin
? Select the color theme you want to use for the word clouds : prism
? Enter custom stopwords (separated by commas) : use, file,
And we're off! πππ
Loading data π ...
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/convoviz/__main__.py", line 5, in <module>
main()
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/convoviz/cli.py", line 38, in main
entire_collection = ConversationSet.from_zip(user.configs["zip_filepath"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/convoviz/models/_conversation_set.py", line 55, in from_zip
return cls.from_json(convos_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/convoviz/models/_conversation_set.py", line 47, in from_json
return cls(array=loads(file.read()))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pydantic/main.py", line 193, in __init__
self.__pydantic_validator__.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 142 validation errors for ConversationSet
array.2.mapping.44df367a-f6fa-472c-b512-69dd99f6a58e.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.6b75e4b4-761e-46ae-98a3-e38f8a22768a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.769ec4fa-1c90-411b-980d-4627e08766b6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.7574d0ff-2b16-47ab-aba6-19f7bf729f06.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.217e7351-66ff-4211-af3d-44fa47d1d82a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.d3d55588-092f-493a-9481-df55cf3c694a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.f667feb6-045b-40d5-903b-ec1cd9807010.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.2.mapping.8c0c1ed3-1089-4f32-a7cd-454022041c1b.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.16.mapping.406d8297-0541-478c-ad23-30a6275735bf.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.21.mapping.64042608-c628-4718-a935-a35d020cb2b6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.21.mapping.5d168447-20e9-47d5-98e0-e458eac13cf6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.21.mapping.b6a04e6c-1dfc-4b3b-a33b-1d311aa87481.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.aaa29596-c43c-4166-9529-ae5c6fae95a3.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.468b750a-4e6c-41c8-b683-20dec3c2d8e7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.192916f7-47dc-4658-b391-f65e0298b5a6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.aaa228b1-6e42-4c2a-9224-9b5331c45b30.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.c9d31680-7173-4b1d-88f8-76459e462613.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.bc410900-ff82-4452-89d7-1d5fc1458958.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.36.mapping.aaa2c605-7c23-48be-956b-a02f9f53d4a7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa23adc-bd58-474b-b15d-c238f0a9ff83.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa22cf2-f67f-424f-b642-1f50b4ab24c6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa296db-4202-45c0-9cce-80bd084345f1.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa2c94a-3b90-4ccc-bf8d-b91aee5368e4.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa20dba-95e1-4580-90bc-7482a35841e0.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa2c062-b4e0-43fa-9186-7b0d6a094e75.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa21a72-c43f-40a6-9bfb-5a5efee9d0e3.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa223d5-50d1-4320-8d6c-72fd35b333fa.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa27c5f-2aee-4ea3-849f-5f462d29080a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.42.mapping.aaa2b72e-7548-4d32-99fe-0b74e1616bd8.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa28c50-7db9-4af4-bae7-f2078a534ac1.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa2bf41-e105-4923-bc2e-8c68ef4084c9.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa22c78-e527-47fd-9b92-cfd1487a2a2a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa2e99d-ece3-4ad6-8b61-3f33fddaeb5f.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa2af1a-1662-4081-94ee-48b220e6126e.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa2a972-9f81-43be-a620-65c46b2476d0.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.44.mapping.aaa297c7-2fca-44d9-9889-f9195471e521.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.46.mapping.aaa2761e-3449-4fef-9cd2-b688714fb371.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2fd81-b4fd-4bee-b37c-1e10ea401d94.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2ed01-c3d6-42cf-977d-bd7f8de404ca.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa237ff-5b37-4feb-9dff-4f726c1c530a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa237ff-5b37-4feb-9dff-4f726c1c530a.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2b5ab-3096-4966-aac6-235d2b016600.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2b5ab-3096-4966-aac6-235d2b016600.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2fe9f-d600-4c64-a0c5-b4ee20f3f32d.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa2b862-f940-4892-ab13-b6479058a985.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.72.mapping.aaa29fc0-a402-4417-b036-63070bd14226.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa2030e-3608-4d55-a561-80d27518d5e6.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa24afe-eaaf-42bc-b44d-468220dfba36.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa24afe-eaaf-42bc-b44d-468220dfba36.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa26448-7b24-4cf1-aa90-76f6d37a0674.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa2d413-a9a3-4595-b7a1-c68151d6c216.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.73.mapping.aaa28141-2da4-4b87-8b6c-06fb2137d8d4.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.88.mapping.d0fbe852-b454-4217-b8d7-9c7c71755a92.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.93.mapping.aaa2f163-3675-44f6-a4b8-5b5cb23bc772.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.93.mapping.e37a7b7b-b883-4174-b620-fdf4cfbbb2a5.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.97.mapping.30c52dc8-9d6f-4bfc-925b-874387a9303f.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.97.mapping.25a7dea4-eb73-4d9e-bec1-8a7c2bed4eb9.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.97.mapping.25a7dea4-eb73-4d9e-bec1-8a7c2bed4eb9.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.97.mapping.4ff56d16-95bf-4a7c-95e6-e3bfbbd6f41b.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.101.mapping.f310fd26-ae9c-4be4-8970-e9eb681329c1.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.103.mapping.a938872c-2eed-4bcd-8110-25a91637cef7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.111.mapping.581a027b-2269-402d-93d9-84635b9fd370.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.111.mapping.d4a3a8db-e918-4246-a0dd-2d7e3c64ac25.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.125.mapping.a6d597fc-98d3-41eb-ba29-0a54a70935bd.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.125.mapping.a6d597fc-98d3-41eb-ba29-0a54a70935bd.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.125.mapping.a6d597fc-98d3-41eb-ba29-0a54a70935bd.message.content.parts.2
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.125.mapping.a6d597fc-98d3-41eb-ba29-0a54a70935bd.message.content.parts.3
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.172.mapping.60f5a059-c554-4cf2-8c67-d0fd871db249.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.188.mapping.3fe0af5a-a092-4982-a162-1b7991f0c3b2.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.188.mapping.3fe0af5a-a092-4982-a162-1b7991f0c3b2.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.188.mapping.3fe0af5a-a092-4982-a162-1b7991f0c3b2.message.content.parts.2
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.194.mapping.e51027a3-2b6e-45c8-9389-af07d636b3ae.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.222.mapping.ae49671b-f8dc-4ba6-bff3-9a2595e145dc.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...one, 'sanitized': True}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.298.mapping.2503db44-26e2-4e31-9ad7-e1e34ed11df8.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.381.mapping.4f066179-4d64-407a-9c2b-48b75ba5949a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.927e2791-65bd-4cd1-b003-428c1293a140.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.74806ce0-2f38-4b1e-87cd-dc9f9d1c4776.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.507d48d3-aa7a-4b10-a6d8-25d633934dcf.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.507d48d3-aa7a-4b10-a6d8-25d633934dcf.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.49671fc8-f363-4b91-907d-7016d1d68dc5.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.d2a9b34b-eb4f-4b28-8418-9fce0cae318d.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.458.mapping.2582360f-eacd-475f-b962-c8052b572e0a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.553.mapping.8f61b431-0261-425b-8ea3-b91b11070529.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.721.mapping.10367542-c9ba-4253-ad2c-0249c93fc6e1.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.721.mapping.c27b81d2-35cc-4ac2-a372-2fe831105058.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.757.mapping.3d0aa0f0-a7a4-44fb-8676-cafb7eaccf2c.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.772.mapping.3de69ee8-75ed-4fd7-8b48-f522c30151d9.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.800.mapping.b4025f7a-da90-4342-b3b3-b44be5c3d978.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.813.mapping.9db25f48-a1d0-4b82-9012-b4129a5752e5.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.824.mapping.bdd961dd-4c7a-43fb-9662-08c2afb9eb7b.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.838.mapping.aaa2558f-5f76-4de6-9ab9-4c063f0e716f.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.928.mapping.98d6f059-a388-45ff-bfdd-f050e6768d7b.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.928.mapping.98d6f059-a388-45ff-bfdd-f050e6768d7b.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.928.mapping.759553f5-5939-4896-9132-ef0112311cfc.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.928.mapping.759553f5-5939-4896-9132-ef0112311cfc.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.929.mapping.5b1f1b26-a005-4475-9a95-29d2c7351d13.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.929.mapping.5b1f1b26-a005-4475-9a95-29d2c7351d13.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.929.mapping.81c00153-acd1-4381-823f-e268c0a1d5d1.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.929.mapping.81c00153-acd1-4381-823f-e268c0a1d5d1.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.f933d473-c5de-47a3-ba5a-05aceb213812.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.f933d473-c5de-47a3-ba5a-05aceb213812.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.ccb12fc7-7200-4ad2-98d7-9e56e0866198.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.ccb12fc7-7200-4ad2-98d7-9e56e0866198.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.39aea845-5765-4ffd-b44d-3799d8e674ed.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.39aea845-5765-4ffd-b44d-3799d8e674ed.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.b7d9d4cf-5c87-4266-bb36-1de88d2311f4.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.b7d9d4cf-5c87-4266-bb36-1de88d2311f4.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.4ea9bda2-3e86-4b78-84fe-2a16a50007e4.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.4ea9bda2-3e86-4b78-84fe-2a16a50007e4.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.45ea1a5b-f93e-4c3b-b639-cd92e3319ab5.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.45ea1a5b-f93e-4c3b-b639-cd92e3319ab5.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.83b868e2-99fd-431f-944c-c14755bd7c0b.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.83b868e2-99fd-431f-944c-c14755bd7c0b.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.891cc41b-eee2-4e52-89df-8017e707f26f.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.891cc41b-eee2-4e52-89df-8017e707f26f.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.d83f4251-282e-4a8a-a4e6-e1268ff28ad7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.934.mapping.d83f4251-282e-4a8a-a4e6-e1268ff28ad7.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.935.mapping.98142634-a199-4173-8fb3-8bd5dcad5393.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.935.mapping.98142634-a199-4173-8fb3-8bd5dcad5393.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.968.mapping.7cf47e01-cc5a-455f-b2d2-2ef6b3df26c7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.991.mapping.aaa28e71-06e4-4aa1-83a5-92700f40950c.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1015.mapping.82119bf6-3b93-4a9c-91fb-b8b6874762df.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1020.mapping.1ce1bf35-5764-4c0e-91de-ddca2c1603cb.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1027.mapping.1dab6d10-0448-45d3-b0ec-ff12f62382fb.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1028.mapping.2da0adcf-07ee-4432-b250-879e96f44560.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1031.mapping.8f6ad0dd-df3a-4ce6-ab59-5d3582e2814a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1039.mapping.aaa2f382-7242-4b7f-9c11-db216cb52ab7.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1039.mapping.aaa2824c-9842-41a0-9887-676187ea6661.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1039.mapping.aaa2fb1d-fa8e-4ebc-8657-3a59539a48ee.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1039.mapping.aaa2733c-70ad-4816-b3f5-284aae722fae.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1040.mapping.7db867e2-9d91-441f-8227-b3697db1f41a.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1040.mapping.7db867e2-9d91-441f-8227-b3697db1f41a.message.content.parts.1
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1040.mapping.7db867e2-9d91-441f-8227-b3697db1f41a.message.content.parts.2
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1040.mapping.7db867e2-9d91-441f-8227-b3697db1f41a.message.content.parts.3
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a...ne, 'sanitized': False}}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1043.mapping.aaa20f9c-0d15-4689-9aa5-9f5b276f8ebf.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1043.mapping.aaa2c1aa-7c21-420b-a9cc-84d0309e9959.message.content.parts.0
Input should be a valid string [type=string_type, input_value={'content_type': 'image_a... None, 'metadata': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1599.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1600.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1601.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1602.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1603.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
array.1604.title
Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.8/v/string_type
Describe the bug I'm trying to use the package to process my ChatGPT exported history zip file, but it encounters a bug when I try running it.
From a brief look at the terminal error output, I'm thinking it has to do with the fact the newer ChatGPT models allow for inputs that aren't just strings, but also images and such, so the exported zip file format may have changed since this repo was last updated (8 months ago).
To Reproduce Steps to reproduce the behavior:
Expected behavior It should convert the zip file contents into markdown and run the program.
Screenshots If applicable, add screenshots to help explain your problem.
OS
Additional context Terminal output: