instructor
39 строк · 958.0 Байт
1import instructor2from openai import OpenAI3from typing import Optional4from sqlmodel import Field, SQLModel, create_engine, Session5
6
7# Define the model that will serve as a Table for the database
8class Hero(SQLModel, instructor.OpenAISchema, table=True):9id: Optional[int] = Field(default=None, primary_key=True)10name: str11secret_name: str12age: Optional[int] = None13
14
15# Function to query OpenAI for a Hero record
16client = instructor.from_openai(OpenAI())17
18
19def create_hero() -> Hero:20return client.chat.completions.create(21model="gpt-3.5-turbo",22response_model=Hero,23messages=[24{"role": "user", "content": "Make a new superhero"},25],26)27
28
29# Insert the response into the database
30engine = create_engine("sqlite:///database.db")31SQLModel.metadata.create_all(engine)32
33hero = create_hero()34print(hero.model_dump())35
36
37with Session(engine) as session:38session.add(hero)39session.commit()40