bibibi12345 commited on
Commit
9f7bae0
·
1 Parent(s): df13dd2

error response handling

Browse files
Files changed (1) hide show
  1. app.py +15 -8
app.py CHANGED
@@ -79,17 +79,24 @@ def chat_completions():
79
  response.raise_for_status()
80
 
81
  if stream:
82
- iterator = response.iter_content(chunk_size=8192)
83
  try:
84
- first_chunk = next(iterator)
85
  except StopIteration:
86
  return Response(status=204)
87
 
88
- if not first_chunk.strip().startswith(b'data:'):
89
- error_message = first_chunk.decode('utf-8')
 
 
 
 
 
 
 
90
  # Try to get more of the error message if it exists
91
  try:
92
- error_message += "".join(chunk.decode('utf-8') for chunk in iterator)
93
  except Exception:
94
  pass
95
  return jsonify({
@@ -102,9 +109,9 @@ def chat_completions():
102
  }), 400
103
 
104
  def generate():
105
- yield first_chunk
106
- for chunk in iterator:
107
- yield chunk
108
 
109
  return Response(generate(), content_type=response.headers['content-type'])
110
  else:
 
79
  response.raise_for_status()
80
 
81
  if stream:
82
+ iterator = response.iter_lines()
83
  try:
84
+ first_line = next(iterator)
85
  except StopIteration:
86
  return Response(status=204)
87
 
88
+ # The first line might be empty, skip it if so
89
+ if not first_line:
90
+ try:
91
+ first_line = next(iterator)
92
+ except StopIteration:
93
+ return Response(status=204)
94
+
95
+ if not first_line.strip().startswith(b'data:'):
96
+ error_message = first_line.decode('utf-8')
97
  # Try to get more of the error message if it exists
98
  try:
99
+ error_message += "\n" + "\n".join(line.decode('utf-8') for line in iterator)
100
  except Exception:
101
  pass
102
  return jsonify({
 
109
  }), 400
110
 
111
  def generate():
112
+ yield first_line + b'\n'
113
+ for line in iterator:
114
+ yield line + b'\n'
115
 
116
  return Response(generate(), content_type=response.headers['content-type'])
117
  else: