Home > Mobile >  Getting 400 Bad Request from ChatGPT using Python Flask
Getting 400 Bad Request from ChatGPT using Python Flask

Time:01-17

I want to get response using Flask from Chatgpt api. Whether I am getting Status 400 Bad Request from Browser through http://127.0.0.1:5000/chat

Bad Request

The browser (or proxy) sent a request that this server could not understand.

Also I am checking this from Postman

import requests

app = Flask(__name__)

@app.route('/')
def index():
    return 'Welcome to ChatGPT app!'

@app.route('/chat', methods=['GET', 'POST'])
def chat():
    user_input = request.form['text']
    # Use OpenAI's API to generate a response from ChatGPT
    response = generate_response_from_chatgpt(user_input)
    return response

def generate_response_from_chatgpt(user_input):
    api_key = "YOUR_API_KEY"
    url = "https://api.openai.com/v1/engines/davinci/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {api_key}"
    }
    data = {
        "prompt": user_input,
        "engine": "davinci"
    }
    response = requests.post(url, headers=headers, json=data)
    return response.json()["choices"][0]["text"]


if __name__ == '__main__':
    app.run()

CodePudding user response:

It would be best if you check the openai documentation to make sure you are using the correct endpoint and data format in your request. Also, you should check your API key, if it is correct and if you have reached the limit of requests.

Also, it's worth noting that the code you provided is missing the import statement for Flask. You will need to add the following line at the top of your file:

from flask import Flask, request Also, I see that you're using request.form['text'] but you should check if the request is a GET or POST request.

if request.method == 'POST':
    user_input = request.form['text']
else:
    user_input = request.args.get('text')

This is to avoid a KeyError being raised when the request is a GET request.

  • Related