55from flask import Flask , render_template , request
66import psycopg2
77import openai
8+ from pydantic import BaseModel
89
910app = Flask (__name__ )
1011client = openai .OpenAI ()
@@ -50,12 +51,14 @@ def create_dog():
5051 conn .close ()
5152 return f'Dog { dog_name } created successfully'
5253
53- @app .route ("/ask_openai" , methods = ['GET' ])
54- def show_ask_openai_form ():
54+ # OpenAI
55+
56+ @app .route ("/openai/<string:subroute>" , methods = ['GET' ])
57+ def show_ask_openai_form (subroute ):
5558 return render_template ('ask_openai.html' )
5659
57- @app .route ("/ask_openai " , methods = ['POST' ])
58- def ask_openai ():
60+ @app .route ("/openai/responses_create " , methods = ['POST' ])
61+ def openai_responses_create ():
5962 question = request .form ['question' ]
6063
6164 response = client .responses .create (
@@ -66,11 +69,30 @@ def ask_openai():
6669
6770 return render_template ('ask_openai.html' , question = question , answer = answer )
6871
69- @app .route ("/ask_openai_completions" , methods = ['GET' ])
70- def show_ask_openai_completions_form ():
71- return render_template ('ask_openai.html' )
72+ @app .route ("/openai/responses_parse" , methods = ['POST' ])
73+ def openai_responses_parse ():
74+ question = request .form ['question' ]
75+
76+ class CalendarEvent (BaseModel ):
77+ name : str
78+ date : str
79+ participants : list [str ]
80+ response = client .responses .parse (
81+ model = "gpt-4o-2024-08-06" ,
82+ input = [
83+ {"role" : "system" , "content" : "Extract the event information." },
84+ {
85+ "role" : "user" ,
86+ "content" : question ,
87+ },
88+ ],
89+ text_format = CalendarEvent ,
90+ )
91+ answer = f"{ response .output_parsed .name } - On { response .output_parsed .date } | People: { response .output_parsed .participants } "
92+
93+ return render_template ('ask_openai.html' , question = question , answer = answer )
7294
73- @app .route ("/ask_openai_completions " , methods = ['POST' ])
95+ @app .route ("/openai/chat_completions_create " , methods = ['POST' ])
7496def ask_openai_completions ():
7597 question = request .form ['question' ]
7698
0 commit comments