nanova commited on
Commit
7aa4134
·
1 Parent(s): bf32490

update stream

Browse files
Files changed (1) hide show
  1. app.py +25 -23
app.py CHANGED
@@ -30,10 +30,8 @@ def respond(
30
  ):
31
  messages = [{"role": "system", "content": system_message}]
32
 
33
- # 添加历史消息
34
  messages.extend(history)
35
 
36
- # 添加当前用户消息
37
  messages.append({"role": "user", "content": message})
38
 
39
  headers = {
@@ -43,7 +41,7 @@ def respond(
43
 
44
  data = {
45
  "model": "/data/DMind-1-mini",
46
- "stream": False,
47
  "messages": messages,
48
  "temperature": temperature,
49
  "top_p": top_p,
@@ -52,33 +50,37 @@ def respond(
52
  "max_tokens": 16384
53
  }
54
 
55
- print(f"[INFO] process user msg...")
56
- print(f"[INFO] userMsg: {message}")
57
 
58
  try:
59
- with requests.post(API_URL, headers=headers, json=data) as r:
60
- # print(f"[INFO] response status: {r.status_code}")
61
  if r.status_code == 200:
62
- json_response = r.json()
63
- # print(f"[INFO] response json: {json_response}")
64
- if 'choices' in json_response and len(json_response['choices']) > 0:
65
- content = json_response['choices'][0].get('message', {}).get('content', '')
66
- # print(f"[INFO] response content: {content}")
67
- if content:
68
- if '<think>' in content and '</think>' in content:
69
- content = content.split('</think>')[-1].strip()
70
- if '**Final Answer**' in content:
71
- content = content.split('**Final Answer**')[-1].strip()
72
- print(f"[INFO] final response: {content}")
73
- return content
74
- else:
75
- print(f"[ERROR] No choices in response: {json_response}")
 
 
 
 
 
76
  else:
77
  print(f"[ERROR] Bad status code: {r.status_code}, response: {r.text}")
78
- return "Service temporarily unavailable"
79
  except Exception as e:
80
  print(f"[ERROR] Request error: {e}")
81
- return "Service error occurred"
82
 
83
 
84
  """
 
30
  ):
31
  messages = [{"role": "system", "content": system_message}]
32
 
 
33
  messages.extend(history)
34
 
 
35
  messages.append({"role": "user", "content": message})
36
 
37
  headers = {
 
41
 
42
  data = {
43
  "model": "/data/DMind-1-mini",
44
+ "stream": True,
45
  "messages": messages,
46
  "temperature": temperature,
47
  "top_p": top_p,
 
50
  "max_tokens": 16384
51
  }
52
 
53
+ # print(f"[INFO] process user msg...")
54
+ # print(f"[INFO] userMsg: {message}")
55
 
56
  try:
57
+ with requests.post(API_URL, headers=headers, json=data, stream=True) as r:
 
58
  if r.status_code == 200:
59
+ current_response = ""
60
+ for line in r.iter_lines():
61
+ if line:
62
+ line = line.decode('utf-8')
63
+ if line.startswith('data: '):
64
+ try:
65
+ json_response = json.loads(line[6:])
66
+ if 'choices' in json_response and len(json_response['choices']) > 0:
67
+ delta = json_response['choices'][0].get('delta', {})
68
+ if 'content' in delta:
69
+ content = delta['content']
70
+ if content:
71
+ content = content.replace('<', '&lt;').replace('>', '&gt;')
72
+ content = content.replace('*', '\\*')
73
+ current_response += content
74
+ yield current_response
75
+ except json.JSONDecodeError:
76
+ continue
77
+ # print(f"[INFO] final response: {current_response}")
78
  else:
79
  print(f"[ERROR] Bad status code: {r.status_code}, response: {r.text}")
80
+ yield "Service temporarily unavailable"
81
  except Exception as e:
82
  print(f"[ERROR] Request error: {e}")
83
+ yield "Service error occurred"
84
 
85
 
86
  """