Skip to content

Commit 932ff18

Browse files
committed
Update sample app to include more example routes for openai
1 parent 31a3d75 commit 932ff18

1 file changed

Lines changed: 30 additions & 8 deletions

File tree

  • sample-apps/flask-openai

sample-apps/flask-openai/app.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from flask import Flask, render_template, request
66
import psycopg2
77
import openai
8+
from pydantic import BaseModel
89

910
app = Flask(__name__)
1011
client = 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'])
7496
def ask_openai_completions():
7597
question = request.form['question']
7698

0 commit comments

Comments
 (0)