Files
instructor/tests/test_validators.py
T
Jason Liu 359c5f9295 Add multiple modalities: tools, functions, json_mode (#218)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-11-25 13:56:52 -05:00

39 lines
1.0 KiB
Python

import pytest
import instructor
from typing_extensions import Annotated
from pydantic import BaseModel, AfterValidator, BeforeValidator, ValidationError
from openai import OpenAI
from instructor.dsl.validators import llm_validator
client = instructor.patch(OpenAI())
def test_patch_completes_successfully():
class Response(BaseModel):
message: Annotated[
str, AfterValidator(instructor.openai_moderation(client=client))
]
with pytest.raises(ValidationError) as e:
Response(message="I want to make them suffer the consequences")
def test_runmodel_validator_error():
class QuestionAnswerNoEvil(BaseModel):
question: str
answer: Annotated[
str,
BeforeValidator(
llm_validator("don't say objectionable things", openai_client=client)
),
]
with pytest.raises(ValidationError):
QuestionAnswerNoEvil(
question="What is the meaning of life?",
answer="The meaning of life is to be evil and steal",
)