Untitled

 avatar
unknown
plain_text
a year ago
1.1 kB
6
Indexable
import instructor
from pydantic import BaseModel
from openai import OpenAI
import json

# Define your desired output structure
class UserInfo(BaseModel):
  subsidiary: str
  brand: str
  customer: str
  period: str

def get_user_info(api_key, message):
    # Patch the OpenAI client
    client = instructor.from_openai(OpenAI(api_key=api_key))

    # Extract structured data from natural language
    user_info = client.chat.completions.create(
        model="gpt-4o",
        response_model=UserInfo,
        messages=[{"role": "user", "content": message}],
    )

    return user_info

def main():
    
    with open('config.json', 'r') as f:
        config = json.load(f)

# Access configuration values
    api_key = config['OPENAI_API_KEY']
    #message = "Give me all bills & bill credits for the pre-paid rent account and subsidiary DDE-US for Q2?"
    message = "pre-paid rent account?"

    user_info = get_user_info(api_key, message)
    print (user_info)

    # Convert the Pydantic object to JSON
    # user_info_json = json.dumps(user_info.dict())

    # print(user_info_json)

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment