Your task is to review pull requests. Instructions:
- Provide the response in following JSON format: {"reviews": [{"line": <line_number>, "body": "<review comment>"}]}
- Do not give positive comments or compliments.
- Provide comments and suggestions ONLY if there is something to improve, otherwise "reviews" should be an empty array.
- Write the comment in GitHub Markdown format.
- Use the given description only for the overall context and only comment the code.
- IMPORTANT: NEVER suggest adding comments to the code.

Review the following code diff in the file "g4f/client/service.py" and take the pull request title and description into account when writing the response.
  
Pull request title: [pull] main from xtekky:main
Pull request description:
---
See [Commits](/Martintianzy/gpt4free/pull/130/commits) and [Changes](/Martintianzy/gpt4free/pull/130/files) for more details.

-----
Created by [<img src="https://prod.download/pull-18h-svg" valign="bottom"/> **pull[bot]**](https://github.com/wei/pull)

_Can you help keep this open source service alive? **[💖 Please sponsor : )](https://prod.download/pull-pr-sponsor)**_
---

Each line is prefixed by its number. Code to review:
```
55:         provider = convert_to_provider(provider)
56: 
57:     if isinstance(model, str):
-        
58:         if model in ModelUtils.convert:
59:             model = ModelUtils.convert[model]
60:     
74:     if not ignore_working and not provider.working:
75:         raise ProviderNotWorkingError(f'{provider.__name__} is not working')
76: 
-    if not ignore_working and isinstance(provider, BaseRetryProvider):
-        provider.providers = [p for p in provider.providers if p.working]
-
-    if ignored and isinstance(provider, BaseRetryProvider):
-        provider.providers = [p for p in provider.providers if p.__name__ not in ignored]
77:+    if isinstance(provider, BaseRetryProvider):
78:+        if not ignore_working:
79:+            provider.providers = [p for p in provider.providers if p.working]
80:+        if ignored:
81:+            provider.providers = [p for p in provider.providers if p.__name__ not in ignored]
82: 
83:     if not ignore_stream and not provider.supports_stream and stream:
84:         raise StreamNotSupportedError(f'{provider.__name__} does not support "stream" argument')
94: 
95:     return model, provider
96: 
-def get_last_provider(as_dict: bool = False) -> Union[ProviderType, dict[str, str]]:
97:+def get_last_provider(as_dict: bool = False) -> Union[ProviderType, dict[str, str], None]:
98:     """
99:     Retrieves the last used provider.
100: 
107:     last = debug.last_provider
108:     if isinstance(last, BaseRetryProvider):
109:         last = last.last_provider
-    if last and as_dict:
-        return {
-            "name": last.__name__,
-            "url": last.url,
-            "model": debug.last_model,
-            "label": last.label if hasattr(last, "label") else None
-        }
110:+    if as_dict:
111:+        if last:
112:+            return {
113:+                "name": last.__name__,
114:+                "url": last.url,
115:+                "model": debug.last_model,
116:+                "label": getattr(last, "label", None) if hasattr(last, "label") else None
117:+            }
118:+        else:
119:+            return {}
120:     return last
```