-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
I use the Openai package in the Flask program, but the app sometimes blocks, and nothing output in console.
After KeyboardInterrupt:
return super().create(*args, **kwargs)
File "/data/python_group/py38/lib/python3.8/site-packages/openai/api_resources/abstract/engine_api_resource.py", line 153, in create
response, _, api_key = requestor.request(
File "/data/python_group/py38/lib/python3.8/site-packages/openai/api_requestor.py", line 288, in request
result = self.request_raw(
File "/data/python_group/py38/lib/python3.8/site-packages/openai/api_requestor.py", line 596, in request_raw
result = _thread_context.session.request(
File "/data/python_group/py38/lib/python3.8/site-packages/requests/sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "/data/python_group/py38/lib/python3.8/site-packages/requests/sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "/data/python_group/py38/lib/python3.8/site-packages/requests/adapters.py", line 489, in send
resp = conn.urlopen(
File "/data/python_group/py38/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
httplib_response = self._make_request(
File "/data/python_group/py38/lib/python3.8/site-packages/urllib3/connectionpool.py", line 449, in _make_request
six.raise_from(e, None)
File "<string>", line 3, in raise_from
File "/data/python_group/py38/lib/python3.8/site-packages/urllib3/connectionpool.py", line 444, in _make_request
httplib_response = conn.getresponse()
File "/usr/local/python3/lib/python3.8/http/client.py", line 1322, in getresponse
response.begin()
File "/usr/local/python3/lib/python3.8/http/client.py", line 303, in begin
version, status, reason = self._read_status()
File "/usr/local/python3/lib/python3.8/http/client.py", line 264, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/local/python3/lib/python3.8/socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "/usr/local/python3/lib/python3.8/ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "/usr/local/python3/lib/python3.8/ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
KeyboardInterruptTo Reproduce
here is my flask code:
# -*- coding:utf-8 _*-
import logging
import time
from logging import handlers
import tiktoken
from flask import Flask, render_template, request, jsonify
import openai
from gevent.pywsgi import WSGIServer
# Setup logging
logger = logging.getLogger('MainProgram')
logger.setLevel(10)
logHandler = handlers.RotatingFileHandler('flask.log', maxBytes=10000000, backupCount=10)
logger.addHandler(logHandler)
logger.info(f'{time.strftime("%Y-%m-%d %H:%M:%S")} Logging configuration done')
app = Flask(__name__)
openai.api_key = ''
openai.api_base = ''
openai.api_type = 'azure'
openai.api_version = ''
deployment_name = ''
encoding = tiktoken.get_encoding("cl100k_base")
max_len = 8192
@app.route('/')
def index():
return render_template('home.html')
@app.route('/chat', methods=['POST'])
def handle_message():
data = request.get_json()
message = data['message']
messages = [{'role': 'system',
'content': f'You are ChatGPT, a large language model trained by OpenAI.\nKnowledge cutoff: 2021-09\n'
f'Current date: {time.strftime("%Y-%m-%d", time.localtime())}'},
*message]
input_len = sum(len(encoding.encode(msg['content'])) for msg in messages)
if max_len - input_len < 0:
raise Exception('input too long')
response = openai.ChatCompletion.create(
engine=deployment_name,
# model="gpt-3.5-turbo",
messages=messages,
temperature=1,
max_tokens=max_len - input_len
)
result = ''
for choice in response.choices:
result += choice.message.content
return jsonify({'result': result})
if __name__ == '__main__':
http_server = WSGIServer(('0.0.0.0', 8095), app, log=logger)
http_server.serve_forever()Code snippets
No response
OS
centos and windows10
Python version
pythonv3.8.0
Library version
0.27.8
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working