Обнаружение ошибки 400 BAD REQUEST в POST-запросе приложения FlaskPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обнаружение ошибки 400 BAD REQUEST в POST-запросе приложения Flask

Сообщение Anonymous »

При запуске приложения Flask я столкнулся с ошибкой 400 BAD REQUEST. Ошибка возникает, когда я отправляю запрос POST на адрес http://127.0.0.1:5000/predict. В журналах консоли отображается следующее сообщение:

Код: Выделить всё

POST http://127.0.0.1:5000/predict 400 (BAD REQUEST)
sendRequest @ script.js:3
onclick @ (index):13
Кроме того, я вижу в консоли следующую ошибку:

Код: Выделить всё

script.js:20 Error: Error: Server error: BAD REQUEST at script.js:12:19
Файлы, предоставленные для проверки:
1 app.py:

Код: Выделить всё

from flask import Flask, request, jsonify, send_from_directory
from flask_cors import CORS
import logging
from transformers import TFGPT2LMHeadModel, GPT2Tokenizer
import os

# Configure logging
logging.basicConfig(level=logging.DEBUG)

# Load the GPT-2 model and tokenizer
model_name = "gpt2"
model = TFGPT2LMHeadModel.from_pretrained(model_name)
tokenizer = GPT2Tokenizer.from_pretrained(model_name)

app = Flask(__name__, static_folder='static')
CORS(app)

@app.route('/')
def serve_index():
try:
return send_from_directory(app.static_folder, 'index.html')
except FileNotFoundError:
return jsonify({'error': 'index.html not found'}), 404

@app.route('/predict', methods=['POST'])
def predict():
try:
data = request.get_json()
print(f"Incoming request data: {data}")  # Log incoming data for debugging
if not data:
return jsonify({'error': 'No JSON data provided'}), 400
text = data.get('text')
if not text:
return jsonify({'error': 'No text provided'}), 400

# Generate a response using GPT-2 with attention mask
max_length = 150  # Adjust as needed
inputs = tokenizer.encode_plus(
text,
return_tensors='tf',
padding='max_length',  # Use padding='max_length'
truncation=True,
max_length=max_length  # Crucial: Set max_length
)
input_ids = inputs['input_ids']
attention_mask = inputs['attention_mask']
outputs = model.generate(
input_ids,
attention_mask=attention_mask,
max_length=max_length,
num_return_sequences=1,
pad_token_id=tokenizer.eos_token_id
)
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
logging.debug(f"Generated response: {response_text}")
return jsonify({'response': response_text})
except ValueError as e:
logging.error(f"Input Error: {e}")
return jsonify({'error': str(e)}), 400  # 400 Bad Request for input errors
except Exception as e:
logging.error(f"Model Error: {e}")
return jsonify({'error': 'An error occurred during prediction'}), 500

if __name__ == '__main__':
try:
app.run(host='0.0.0.0', port=5000, debug=True)  # Set debug=False for production
except Exception as e:
logging.error(f"Failed to start the Flask server: {e}")
raise
  • script.js:

Код: Выделить всё

function sendRequest() {
const textInput = document.getElementById('textInput').value;
fetch('/predict', {  // Switch to port 5000
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ text: textInput })  // This is the JSON sent to Flask
})
.then(response => {
if (!response.ok) {
throw new Error(`Server error: ${response.statusText}`);
}
return response.json();
})
.then(data => {
document.getElementById('response').innerText = `Response: ${data.response}`;
})
.catch(error => {
console.error('Error:', error);
document.getElementById('response').innerText = `Error: ${error}`;
});
}
Я пробовал менять порт, пользовался разными браузерами - перенастраивал сеть, отключал брандмауэр, но ничего не помогает. Страница загружает штрафы, но во время запроса POST выдает ошибку.

Подробнее здесь: https://stackoverflow.com/questions/791 ... st-request
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»