Niansuh commited on
Commit
b0d426a
·
verified ·
1 Parent(s): 0aca819

Update api/utils.py

Browse files
Files changed (1) hide show
  1. api/utils.py +20 -1
api/utils.py CHANGED
@@ -84,10 +84,23 @@ def strip_model_prefix(content: str, model_prefix: Optional[str] = None) -> str:
84
  # Function to remove content between '$~~~$' tags
85
  def remove_message_between_special_tags(content: str) -> str:
86
  """Remove any content that starts with '$~~~$' and ends with '$~~~$', including the tags."""
87
- # Use regex to remove the entire block between '$~~~$' tags
88
  content = re.sub(r'\$~~~\$.*?\$~~~\$', '', content, flags=re.DOTALL)
89
  return content
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  # Process streaming response with headers from config.py
92
  async def process_streaming_response(request: ChatRequest):
93
  # Generate a unique ID for this request
@@ -172,6 +185,9 @@ async def process_streaming_response(request: ChatRequest):
172
 
173
  # Remove content between special tags
174
  content = remove_message_between_special_tags(content)
 
 
 
175
 
176
  cleaned_content = strip_model_prefix(content, model_prefix)
177
  yield f"data: {json.dumps(create_chat_completion_data(cleaned_content, request.model, timestamp))}\n\n"
@@ -287,6 +303,9 @@ async def process_non_streaming_response(request: ChatRequest):
287
  # Remove content between special tags
288
  full_response = remove_message_between_special_tags(full_response)
289
 
 
 
 
290
  cleaned_full_response = strip_model_prefix(full_response, model_prefix)
291
 
292
  return {
 
84
  # Function to remove content between '$~~~$' tags
85
  def remove_message_between_special_tags(content: str) -> str:
86
  """Remove any content that starts with '$~~~$' and ends with '$~~~$', including the tags."""
 
87
  content = re.sub(r'\$~~~\$.*?\$~~~\$', '', content, flags=re.DOTALL)
88
  return content
89
 
90
+ # Function to remove search results but keep the links
91
+ def remove_search_results(content: str) -> str:
92
+ """Remove search result sections, keeping the URLs intact."""
93
+ # Regex to match search result JSON (structured with `title`, `snippet`, `link`)
94
+ search_result_pattern = re.compile(r'(\{.*?"link":\s*"https?://[^\}]+.*?\})', re.DOTALL)
95
+
96
+ # Remove all search results but keep URLs intact by using a regex
97
+ cleaned_content = re.sub(search_result_pattern, '', content)
98
+
99
+ # Optional: clean up any unnecessary newlines or extra spaces left by the removal
100
+ cleaned_content = cleaned_content.strip()
101
+
102
+ return cleaned_content
103
+
104
  # Process streaming response with headers from config.py
105
  async def process_streaming_response(request: ChatRequest):
106
  # Generate a unique ID for this request
 
185
 
186
  # Remove content between special tags
187
  content = remove_message_between_special_tags(content)
188
+
189
+ # Remove search results but keep the links intact
190
+ content = remove_search_results(content)
191
 
192
  cleaned_content = strip_model_prefix(content, model_prefix)
193
  yield f"data: {json.dumps(create_chat_completion_data(cleaned_content, request.model, timestamp))}\n\n"
 
303
  # Remove content between special tags
304
  full_response = remove_message_between_special_tags(full_response)
305
 
306
+ # Remove search results but keep the links intact
307
+ full_response = remove_search_results(full_response)
308
+
309
  cleaned_full_response = strip_model_prefix(full_response, model_prefix)
310
 
311
  return {