import json import openai from flask import Flask, request, jsonify, send_from_directory, url_for import re import os import time from openai import ChatCompletion app = Flask(__name__) ssl = None # ssl =('/etc/ssl/sample.crt', '/etc/ssl/sample.pem') openai_key = os.environ.get("OPENAI_KEY", "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") openai.api_key = openai_key app.chat_messages = [ {"role": "system", "content": "Jawab hanya dengan bahasa Indonesia"} ] UPLOAD_FOLDER = 'files' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER @app.route('/files/') def download_file(name): return send_from_directory(app.config["UPLOAD_FOLDER"], name) @app.route('/', methods=['GET', 'POST']) def test(): return jsonify({"status": "0"}) @app.route('/gpt', methods=['POST']) def gpt(): chat_messages = app.chat_messages.copy() use_video = False json_payload = request.get_json() if not json_payload: json_payload = [] has_named_params = False if isinstance(json_payload, dict): 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:] for message in json_payload: content = message['content'] content_arr = content.split(" ") new_content_arr = content[:250].split(" ") new_content_len = len(new_content_arr) arr = [] for i in range(new_content_len): arr.append(content_arr[i]) message['content'] = " ".join(arr) chat_messages.append(message) print(chat_messages) result = {} try: json_response = openai.ChatCompletion.create(model="gpt-3.5-turbo", # GPT-3.5 Turbo engine messages=chat_messages, max_tokens=300, temperature=0.6) print(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: print(error_print) result = {}, 405 return result # Press the green button in the gutter to run the script. if __name__ == '__main__': app.run(host='0.0.0.0', port=8348, debug=True, ssl_context=ssl) # See PyCharm help at https://www.jetbrains.com/help/pycharm/