mohamed-chs / chatgpt-history-export-to-md

A script to effortlessly extract your entire ChatGPT data export from JSON files to nicely-formatted markdown files.
MIT License
707 stars 35 forks source link

Error loading data #37

Open owensantoso opened 4 months ago

owensantoso commented 4 months ago

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:

  1. Run python -m convoviz
  2. Follow all steps, using default settings for all.
  3. 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

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