instructor

Форк
0
59 строк · 1.1 Кб
1
import instructor
2

3
from openai import OpenAI
4
from pydantic import BaseModel, Field
5
from typing import Optional
6

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

9

10
class UserDetail(BaseModel):
11
    age: int
12
    name: str
13
    role: Optional[str] = Field(default=None)
14

15

16
def get_user_detail(string) -> UserDetail:
17
    return client.chat.completions.create(
18
        model="gpt-3.5-turbo-0613",
19
        response_model=UserDetail,
20
        messages=[
21
            {
22
                "role": "user",
23
                "content": f"Get user details for {string}",
24
            },
25
        ],
26
    )  # type: ignore
27

28

29
user = get_user_detail("Jason is 25 years old")
30
print(user.model_dump_json(indent=2))
31
"""
32
{
33
  "age": 25,
34
  "name": "Jason",
35
  "role": null
36
}
37
"""
38

39
user = get_user_detail("Jason is a 25 years old scientist")
40
print(user.model_dump_json(indent=2))
41
"""
42
{
43
  "age": 25,
44
  "name": "Jason",
45
  "role": "scientist"
46
}
47
"""
48

49
# ! notice that the string should not contain anything
50
# ! but a user and age was still extracted ?!
51
user = get_user_detail("User not found")
52
print(user.model_dump_json(indent=2))
53
"""
54
{
55
  "age": 25,
56
  "name": "John Doe",
57
  "role": "null"
58
}
59
"""
60

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

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

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

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