|
@@ -1,6 +1,6 @@
|
|
import json
|
|
import json
|
|
import openai
|
|
import openai
|
|
-from flask import Flask, request, jsonify
|
|
|
|
|
|
+from flask import Flask, request, jsonify, send_from_directory, url_for
|
|
import re
|
|
import re
|
|
import os
|
|
import os
|
|
import time
|
|
import time
|
|
@@ -15,7 +15,12 @@ app.chat_messages = [
|
|
{"role": "system",
|
|
{"role": "system",
|
|
"content": "Jawab hanya dengan bahasa Indonesia"}
|
|
"content": "Jawab hanya dengan bahasa Indonesia"}
|
|
]
|
|
]
|
|
|
|
+UPLOAD_FOLDER = 'files'
|
|
|
|
+app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
|
|
|
|
|
|
|
|
+@app.route('/files/<name>')
|
|
|
|
+def download_file(name):
|
|
|
|
+ return send_from_directory(app.config["UPLOAD_FOLDER"], name)
|
|
|
|
|
|
@app.route('/', methods=['GET', 'POST'])
|
|
@app.route('/', methods=['GET', 'POST'])
|
|
def test():
|
|
def test():
|
|
@@ -24,11 +29,20 @@ def test():
|
|
@app.route('/gpt', methods=['POST'])
|
|
@app.route('/gpt', methods=['POST'])
|
|
def gpt():
|
|
def gpt():
|
|
chat_messages = app.chat_messages.copy()
|
|
chat_messages = app.chat_messages.copy()
|
|
|
|
+ use_video = False
|
|
json_payload = request.get_json()
|
|
json_payload = request.get_json()
|
|
if not json_payload:
|
|
if not json_payload:
|
|
json_payload = []
|
|
json_payload = []
|
|
|
|
+ has_named_params = False
|
|
if isinstance(json_payload, dict):
|
|
if isinstance(json_payload, dict):
|
|
- json_payload = [json_payload]
|
|
|
|
|
|
+ has_named_params = 'use_video' in json_payload or 'payload' in json_payload
|
|
|
|
+ if 'use_video' in json_payload and 'payload' in json_payload:
|
|
|
|
+ use_video = json_payload['use_video'] == "1"
|
|
|
|
+ json_payload = json_payload['payload']
|
|
|
|
+ if isinstance(json_payload, dict):
|
|
|
|
+ json_payload = [json_payload]
|
|
|
|
+ else:
|
|
|
|
+ json_payload = [json_payload]
|
|
json_payload = json_payload[-5:]
|
|
json_payload = json_payload[-5:]
|
|
for message in json_payload:
|
|
for message in json_payload:
|
|
content = message['content']
|
|
content = message['content']
|
|
@@ -47,7 +61,14 @@ def gpt():
|
|
messages=chat_messages,
|
|
messages=chat_messages,
|
|
max_tokens=300, temperature=0.6)
|
|
max_tokens=300, temperature=0.6)
|
|
print(json_response.choices[0].message)
|
|
print(json_response.choices[0].message)
|
|
- result = json_response.choices[0].message
|
|
|
|
|
|
+ if has_named_params:
|
|
|
|
+ if use_video:
|
|
|
|
+ # TODO: to be implemented
|
|
|
|
+ result = {"url": url_for('download_file', name="test.mp4", _external=True), "message": json_response.choices[0].message}
|
|
|
|
+ else:
|
|
|
|
+ result = {"url": "", "message": json_response.choices[0].message}
|
|
|
|
+ else:
|
|
|
|
+ result = json_response.choices[0].message
|
|
except Exception as error_print:
|
|
except Exception as error_print:
|
|
print(error_print)
|
|
print(error_print)
|
|
result = {}, 405
|
|
result = {}, 405
|