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 "etc/tool/create_provider.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](/MeowCollections/gpt4free/pull/107/commits) and [Changes](/MeowCollections/gpt4free/pull/107/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:
```
33: from aiohttp import ClientSession
34: 
35: from ..typing import AsyncResult, Messages
-from .base_provider import AsyncGeneratorProvider
36:+from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
37: from .helper import format_prompt
38: 
39: 
-class ChatGpt(AsyncGeneratorProvider):
-    url = "https://chat-gpt.com"
40:+class {name}(AsyncGeneratorProvider, ProviderModelMixin):
41:+    label = ""
42:+    url = "https://example.com"
43:+    api_endpoint = "https://example.com/api/completion"
44:     working = True
-    supports_gpt_35_turbo = True
45:+    needs_auth = False
46:+    supports_stream = True
47:+    supports_system_message = True
48:+    supports_message_history = True
49:+    
50:+    default_model = ''
51:+    models = ['', '']
52:+    
53:+    model_aliases = {
54:+        "alias1": "model1",
55:+    }
56:+
57:+   @classmethod
58:+    def get_model(cls, model: str) -> str:
59:+        if model in cls.models:
60:+            return model
61:+        elif model in cls.model_aliases:
62:+            return cls.model_aliases[model]
63:+        else:
64:+            return cls.default_model
65: 
66:     @classmethod
67:     async def create_async_generator(
71:         proxy: str = None,
72:         **kwargs
73:     ) -> AsyncResult:
-        headers = {
-            "authority": "chat-gpt.com",
74:+        model = cls.get_model(model)
75:+        
76:+        headers = {{
77:+            "authority": "example.com",
78:             "accept": "application/json",
79:             "origin": cls.url,
-            "referer": f"{cls.url}/chat",
-        }
80:+            "referer": f"{{cls.url}}/chat",
81:+        }}
82:         async with ClientSession(headers=headers) as session:
83:             prompt = format_prompt(messages)
-            data = {
84:+            data = {{
85:                 "prompt": prompt,
-                "purpose": "",
-            }
-            async with session.post(f"{cls.url}/api/chat", json=data, proxy=proxy) as response:
86:+                "model": model,
87:+            }}
88:+            async with session.post(f"{{cls.url}}/api/chat", json=data, proxy=proxy) as response:
89:                 response.raise_for_status()
90:                 async for chunk in response.content:
91:                     if chunk:
101: {command}
102: ```
103: A example for a provider:
-```py
104:+```python
105: {example}
106: ```
107: The name for the provider class:
```