-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathserver.py
49 lines (44 loc) · 2.04 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import os
import openai
from dotenv import load_dotenv
from flask import Flask, render_template, request
load_dotenv() # load env vars from .env file
openai.api_key = os.getenv("OPENAI_API_KEY")
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/get_response", methods=['GET', 'POST'])
def get_response():
if request.method == 'POST':
message = request.form.get("message")
else: # This handles the GET request case
message = request.args.get("message")
if 'sql' in message.lower():
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": "Given the following SQL tables, your job is to write queries given a user’s request.\n\nCREATE TABLE Orders (\n OrderID int,\n CustomerID int,\n OrderDate datetime,\n OrderTime varchar(8),\n PRIMARY KEY (OrderID)\n);\n\nCREATE TABLE OrderDetails (\n OrderDetailID int,\n OrderID int,\n ProductID int,\n Quantity int,\n PRIMARY KEY (OrderDetailID)\n);\n\nCREATE TABLE Products (\n ProductID int,\n ProductName varchar(50),\n Category varchar(50),\n UnitPrice decimal(10, 2),\n Stock int,\n PRIMARY KEY (ProductID)\n);\n\nCREATE TABLE Customers (\n CustomerID int,\n FirstName varchar(50),\n LastName varchar(50),\n Email varchar(100),\n Phone varchar(20),\n PRIMARY KEY (CustomerID)\n);"
},
{
"role": "user",
"content": message
}
],
temperature=0,
max_tokens=1000,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0
)
else:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": message}],
)
response_content = response["choices"][0]["message"]["content"]
return response_content
if __name__ == "__main__":
app.run(debug=True)