forked from open-webui/open-webui
		
	feat: better error handling for ollama reverse proxy
This commit is contained in:
		
							parent
							
								
									346b0df811
								
							
						
					
					
						commit
						25987fe3c9
					
				
					 1 changed files with 22 additions and 17 deletions
				
			
		|  | @ -59,27 +59,32 @@ def proxy(path): | ||||||
|     else: |     else: | ||||||
|         pass |         pass | ||||||
| 
 | 
 | ||||||
|     # Make a request to the target server |     try: | ||||||
|     target_response = requests.request( |         # Make a request to the target server | ||||||
|         method=request.method, |         target_response = requests.request( | ||||||
|         url=target_url, |             method=request.method, | ||||||
|         data=data, |             url=target_url, | ||||||
|         headers=headers, |             data=data, | ||||||
|         stream=True,  # Enable streaming for server-sent events |             headers=headers, | ||||||
|     ) |             stream=True,  # Enable streaming for server-sent events | ||||||
|  |         ) | ||||||
| 
 | 
 | ||||||
|     # Proxy the target server's response to the client |         target_response.raise_for_status() | ||||||
|     def generate(): |  | ||||||
|         for chunk in target_response.iter_content(chunk_size=8192): |  | ||||||
|             yield chunk |  | ||||||
| 
 | 
 | ||||||
|     response = Response(generate(), status=target_response.status_code) |         # Proxy the target server's response to the client | ||||||
|  |         def generate(): | ||||||
|  |             for chunk in target_response.iter_content(chunk_size=8192): | ||||||
|  |                 yield chunk | ||||||
| 
 | 
 | ||||||
|     # Copy headers from the target server's response to the client's response |         response = Response(generate(), status=target_response.status_code) | ||||||
|     for key, value in target_response.headers.items(): |  | ||||||
|         response.headers[key] = value |  | ||||||
| 
 | 
 | ||||||
|     return response |         # Copy headers from the target server's response to the client's response | ||||||
|  |         for key, value in target_response.headers.items(): | ||||||
|  |             response.headers[key] = value | ||||||
|  | 
 | ||||||
|  |         return response | ||||||
|  |     except Exception as e: | ||||||
|  |         return jsonify({"detail": "Server Connection Error", "message": str(e)}), 400 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| if __name__ == "__main__": | if __name__ == "__main__": | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek