instructor

Форк
0
39 строк · 958.0 Байт
1
import instructor
2
from openai import OpenAI
3
from typing import Optional
4
from sqlmodel import Field, SQLModel, create_engine, Session
5

6

7
# Define the model that will serve as a Table for the database
8
class Hero(SQLModel, instructor.OpenAISchema, table=True):
9
    id: Optional[int] = Field(default=None, primary_key=True)
10
    name: str
11
    secret_name: str
12
    age: Optional[int] = None
13

14

15
# Function to query OpenAI for a Hero record
16
client = instructor.from_openai(OpenAI())
17

18

19
def create_hero() -> Hero:
20
    return client.chat.completions.create(
21
        model="gpt-3.5-turbo",
22
        response_model=Hero,
23
        messages=[
24
            {"role": "user", "content": "Make a new superhero"},
25
        ],
26
    )
27

28

29
# Insert the response into the database
30
engine = create_engine("sqlite:///database.db")
31
SQLModel.metadata.create_all(engine)
32

33
hero = create_hero()
34
print(hero.model_dump())
35

36

37
with Session(engine) as session:
38
    session.add(hero)
39
    session.commit()
40

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

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

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

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