instructor

Форк
0
31 строка · 1012.0 Байт
1
from pydantic import BaseModel, ValidationError, field_validator, ValidationInfo
2

3

4
class AnswerWithCitation(BaseModel):
5
    answer: str
6
    citation: str
7

8
    @field_validator("citation")
9
    @classmethod
10
    def remove_stopwords(cls, v: str, info: ValidationInfo):
11
        context = info.context
12
        if context:
13
            text_chunks = context.get("text_chunk")
14
            if v not in text_chunks:
15
                raise ValueError(f"Citation `{v}` not found in text chunks")
16
        return v
17

18

19
try:
20
    AnswerWithCitation.model_validate(
21
        {"answer": "Jason is a cool guy", "citation": "Jason is cool"},
22
        context={"text_chunk": "Jason is just a guy"},
23
    )
24
except ValidationError as e:
25
    print(e)
26
    """
27
    1 validation error for AnswerWithCitation
28
    citation
29
    Value error, Citation `Jason is cool`` not found in text chunks [type=value_error, input_value='Jason is cool', input_type=str]
30
        For further information visit https://errors.pydantic.dev/2.4/v/value_error
31
    """
32

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.