如何重写下列代码,实现类似ChatGPT官网式样的问答。另外如果没有收到返回值时,显示等待,并且禁止输入新的提问。from flask import Flask, jsonify #from flask_restful import Resource, Api import openai app = Flask(__name__) openai.api_key = "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" @app.route('/') def generate_text(): prompt = "如何做像肯德基一样的炸鸡?" try: response = openai.Completion.create( engine="text-davinci-002", prompt=prompt, max_tokens=1024, n=1, stop=None, temperature=0.5 ) return jsonify(response["choices"][0]["text"]) except openai.exceptions.OpenAiError as e: return jsonify(error=str(e)) except Exception as e: return jsonify(error=str(e)) if __name__ == '__main__': app.config['JSON_AS_ASCII'] = False app.run(debug=True)
时间: 2023-02-14 11:43:50 浏览: 138
基于python flask的简易版chatgpt网站源码,拿来即用,让你快速搭建属于自己的chatgpt问答机器人
为了实现类似ChatGPT官网样式的问答,可以使用JavaScript或jQuery在页面上实现实时输入和输出的功能。可以使用Ajax请求来与服务器进行通信,在服务器没有返回结果之前禁止用户输入新的提问。
下面是一个简单的示例代码:
```python
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
user_input = request.form['input']
# 在这里调用模型并处理用户输入
response = model.generate(user_input)
return jsonify({'response': response})
return '''
<form method="post">
<input type="text" name="input" id="input" onkeydown="if(event.keyCode==13)event.returnValue=false;">
<input type="button" value="Submit" onclick="submitForm()">
</form>
<script>
function submitForm(){
var input = document.getElementById('input').value;
if(input.trim() === '') return;
document.getElementById('input').setAttribute('readonly', true);
document.getElementById('input').value = "等待中...";
var xhr = new XMLHttpRequest();
xhr.open('POST', '/');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onload = function() {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
console.log(response);
document.getElementById('input').value = response.response;
document.getElementById('input').removeAttribute('readonly');
}
};
xhr.send(JSON.stringify({'input': input}));
}
</script>
'''
if __name__ == '__main__':
app.run()
```
这段代码将会在页面上显示一个简单的文本输入框和一个提交按钮。当用户在输入框中输入内容并按下提交按钮
阅读全文