from flask import Flask, request, jsonify, render_template, send_from_directory import base64 import re import os from datetime import datetime import requests # OpenAI API Key api_key = "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" app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/save_image', methods=['POST']) def save_image(): data = request.get_json() image_data = data['image'] # Decode the base64 image data image_data = re.sub('^data:image/.+;base64,', '', image_data) image_data = base64.b64decode(image_data) # Encode image to base64 string base64_image = base64.b64encode(image_data).decode('utf-8') headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } payload = { "model": "gpt-4", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "이미지를 입력받으면 당류가 몇 g인지 예시와 같은 형식만 출력하시오.\n예) 당류 : 10g \n상품분석표가 아니라면 'error'를 출력하시오." }, { "type": "image_url", "image_url": { "url": f"data:image/jpeg;base64,{base64_image}" } } ] } ], "max_tokens": 300 } response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload) if response.status_code == 200: result = response.json() analysis_result = result['choices'][0]['message']['content'] else: analysis_result = "Error: 당류를 찾을 수 없습니다." print(analysis_result) return jsonify({'message': '분석이 완료되었습니다.', 'analysis_result': analysis_result}) if __name__ == '__main__': app.run(host='0.0.0.0', port=7860, debug=True)