liyaoshi commited on
Commit
4216e4b
·
verified ·
1 Parent(s): 8a55776

support stream

Browse files
Files changed (1) hide show
  1. app.py +33 -12
app.py CHANGED
@@ -205,23 +205,44 @@ def get_completion(message,history,profile: gr.OAuthProfile | None,oauth_token:
205
  'messages': messages,
206
  'temperature':temperature,
207
  'max_tokens':max_tokens,
208
- # 'stream':True,
 
209
  }
210
 
211
  # get response
212
- response = requests.post('https://burn.hair/v1/chat/completions', headers=headers, json=data)
213
- response_data = response.json()
214
- print(response_data)
215
- print('-----------------------------------\n')
216
- if 'error' in response_data:
217
- response_content = response_data['error']['message']
218
- else:
219
- response_content = response_data['choices'][0]['message']['content']
220
- usage = response_data['usage']
221
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
  supabase_insert_message(user_message,response_content,messages,response_data,user_name,user_oauth_token,ip,sign,cookie_value)
223
 
224
- return response_content
225
 
226
 
227
 
 
205
  'messages': messages,
206
  'temperature':temperature,
207
  'max_tokens':max_tokens,
208
+ 'stream':True,
209
+ 'stream_options':{"include_usage": True}, # retrieving token usage for stream response
210
  }
211
 
212
  # get response
213
+ # response = requests.post('https://burn.hair/v1/chat/completions', headers=headers, json=data)
214
+ # response_data = response.json()
215
+ # print(response_data)
216
+ # print('-----------------------------------\n')
217
+ # if 'error' in response_data:
218
+ # response_content = response_data['error']['message']
219
+ # else:
220
+ # response_content = response_data['choices'][0]['message']['content']
221
+ # usage = response_data['usage']
222
+ # return response_content
223
+
224
+ # get response with stream
225
+ response = requests.post('https://burn.hair/v1/chat/completions', headers=headers, json=data,stream=True)
226
+ response_content = ""
227
+ for line in response.iter_lines():
228
+ line = line.decode().strip()
229
+ if line == "data: [DONE]":
230
+ continue
231
+ elif line.startswith("data: "):
232
+ line = line[6:] # remove prefix "data: "
233
+ try:
234
+ data = json.loads(line)
235
+ if "delta" in data["choices"][0]:
236
+ content = data["choices"][0]["delta"].get("content", "")
237
+ response_content += content
238
+ yield response_content
239
+ except json.JSONDecodeError:
240
+ print(f"Error decoding line: {line}")
241
+
242
+ response_data = {}
243
+
244
  supabase_insert_message(user_message,response_content,messages,response_data,user_name,user_oauth_token,ip,sign,cookie_value)
245
 
 
246
 
247
 
248