PydanticUserError: If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`
Asked Answered
T

1

18

I want to execute this code in google colab but I get following error:

from llama_index.prompts.prompts import SimpleInputPrompt

# Create a system prompt 
system_prompt = """[INST] <>
more string here.<>
"""

query_wrapper_prompt = SimpleInputPrompt("{query_str} [/INST]")

Error:

/usr/local/lib/python3.10/dist-packages/pydantic/_internal/_config.py:269: UserWarning: Valid config keys have changed in V2:
* 'allow_population_by_field_name' has been renamed to 'populate_by_name'
  warnings.warn(message, UserWarning)
---------------------------------------------------------------------------
PydanticUserError                         Traceback (most recent call last)
<ipython-input-36-c45796b371fe> in <cell line: 3>()
      1 # Import the prompt wrapper...
      2 # but for llama index
----> 3 from llama_index.prompts.prompts import SimpleInputPrompt
      4 # Create a system prompt
      5 system_prompt = """[INST] <>

6 frames
/usr/local/lib/python3.10/dist-packages/pydantic/deprecated/class_validators.py in root_validator(pre, skip_on_failure, allow_reuse, *__args)
    226     mode: Literal['before', 'after'] = 'before' if pre is True else 'after'
    227     if pre is False and skip_on_failure is not True:
--> 228         raise PydanticUserError(
    229             'If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`.'
    230             ' Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.',

PydanticUserError: If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.

For further information visit https://errors.pydantic.dev/2.1.1/u/root-validator-pre-skip

If I follow the link, there is no solution for my case. How can I solve that problem?

Thanks in forward.

Tillett answered 19/8, 2023 at 10:11 Comment(2)
Pydantic got a new major version recently. It seems like the library you are using uses pydantic somewhere. May be an issue of the library code. You could track down, from which library it comes from.Musso
This worked for me thank youIzard
R
33

In my env, I have

pip list | grep pydantic
pydantic                     2.2.1

I fix the problem, by downgrading pydantic version

pip install pydantic==1.10.9
Roodepoortmaraisburg answered 23/8, 2023 at 6:20 Comment(3)
This did the trick for me thx! I was trying to use elg in case anyone also runs into this errorColophon
Curious to hear why we should even downgrade the Pydantic version to avoid clashes with Llama index?Alterative
I guess when LangChain was developed, it didn't test with the latest version of pydanticRoodepoortmaraisburg

© 2022 - 2024 — McMap. All rights reserved.