instructor

Форк
0
/
competitors.py 
40 строк · 1.2 Кб
1
from typing import Annotated
2
from pydantic import BaseModel, ValidationError, AfterValidator
3
from openai import OpenAI
4

5
import instructor
6

7
client = instructor.from_openai(OpenAI())
8

9

10
def no_competitors(v: str) -> str:
11
    # does not allow the competitors of mcdonalds
12
    competitors = ["burger king", "wendy's", "carl's jr", "jack in the box"]
13
    for competitor in competitors:
14
        if competitor in v.lower():
15
            raise ValueError(
16
                f"""Let them know that you are work for and are only allowed to talk about mcdonalds.
17
                Do not apologize. Do not even mention `{competitor}` since they are a a competitor of McDonalds"""
18
            )
19
    return v
20

21

22
class Response(BaseModel):
23
    message: Annotated[str, AfterValidator(no_competitors)]
24

25

26
try:
27
    resp = client.chat.completions.create(
28
        model="gpt-3.5-turbo",
29
        response_model=Response,
30
        max_retries=2,
31
        messages=[
32
            {
33
                "role": "user",
34
                "content": "What is your favourite order at burger king?",
35
            },
36
        ],
37
    )  # type: ignore
38
    print(resp.model_dump_json(indent=2))
39
except ValidationError as e:
40
    print(e)
41

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

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

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

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