我正在尝试向我的网页添加 API,之前从未使用过任何 Flask 服务器,也从未使用过 Javascript,所以这是一次全新的学习体验。 我的问题是我不断收到 405 错误代码,指出该方法不被允许。我继续使用 POST 方法,但它不起作用,我相信我的问题可能更多地出在我的 HTML 代码而不是我的 Flask 服务器上,因为代码非常通用和简单。
import openai
from flask import Flask, request, jsonify
app = Flask(__name__)
openai.api_key = '**my key is in here**'
@app.route('/', methods=['POST'])
def chat():
data = request.get_json()
message = data.get('message')
response = openai.Completion.create(
model="gpt-3.5-turbo",
prompt=message,
max_tokens=50
)
return {'response': response.choices[0].text.strip()}
if __name__ == '__main__':
app.run(port=5000)
async function sendMessage() {
const message = document.getElementById('message').value;
document.getElementById('chat-box').innerHTML += `<div>You: ${message}</div>`;
const response = await fetch('/', {
method: "POST",
body: JSON.stringify({ message }),
headers: {
'Content-Type': 'application/json',
},
});
const data = await response.json();
document.getElementById('chat-box').innerHTML += `<div>Bot: ${data.reply}</div>`;
document.getElementById('message').value = '';
}
我尝试更改代码,我卸载了 Flask 并重新安装了它。我还广泛使用 chatgpt 来尝试编写更好的代码,但它只是让我一直在原地踏步。我希望有人能帮忙解决这个问题。我什至尝试了一个简单的服务器,它只说“你好,世界”,它有效,但我真的认为问题可能出在我的 JavaScript 上。另外,我是一个初学者,这应该是我的第一个编码项目之一,所以如果可能的话,请对我放轻松。谢谢。
405 错误表示正在尝试使用不被允许的方法访问的端点。尽管的 Flask 路由使用
methods=['POST']
设置为接受 POST 请求,但的 Javascript 代码中存在一个小的错误,导致它实际上并没有发送 POST 请求。
问题出在尝试访问响应数据的方式。的 Flask 代码返回一个包含键
response
的字典,但的 Javascript 代码尝试使用
data.reply
访问它。这会导致 Javascript 代码无法正确读取响应,从而导致错误。
要修复此问题,请将的 Javascript 代码中的
data.reply
更改为
data.response
。以下是更新后的 Javascript 代码:
async function sendMessage() {
const message = document.getElementById('message').value;
document.getElementById('chat-box').innerHTML += `<div>You: ${message}</div>`;
const response = await fetch('/', {
method: "POST",
body: JSON.stringify({ message }),
headers: {
'Content-Type': 'application/json',
},
});
const data = await response.json();
document.getElementById('chat-box').innerHTML += `<div>Bot: ${data.response}</div>`; // 这里改成了 data.response
document.getElementById('message').value = '';
}
通过进行此更改,的 Javascript 代码现在将能够正确读取来自 Flask 服务器的响应,并且应该不再遇到 405 错误。
标签:javascript,python,flask,openai-api From: 78775926