mirror of https://github.com/xtekky/gpt4free.git
62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
|
#### Create Provider with AI Tool
|
|||
|
|
|||
|
Call in your terminal the `create_provider` script:
|
|||
|
```bash
|
|||
|
python -m etc.tool.create_provider
|
|||
|
```
|
|||
|
1. Enter your name for the new provider.
|
|||
|
2. Copy and paste the `cURL` command from your browser developer tools.
|
|||
|
3. Let the AI create the provider for you.
|
|||
|
4. Customize the provider according to your needs.
|
|||
|
|
|||
|
#### Create Provider
|
|||
|
|
|||
|
1. Check out the current [list of potential providers](https://github.com/zukixa/cool-ai-stuff#ai-chat-websites), or find your own provider source!
|
|||
|
2. Create a new file in [g4f/Provider](/g4f/Provider) with the name of the Provider
|
|||
|
3. Implement a class that extends [BaseProvider](/g4f/providers/base_provider.py).
|
|||
|
|
|||
|
```py
|
|||
|
from __future__ import annotations
|
|||
|
|
|||
|
from ..typing import AsyncResult, Messages
|
|||
|
from .base_provider import AsyncGeneratorProvider
|
|||
|
|
|||
|
class HogeService(AsyncGeneratorProvider):
|
|||
|
url = "https://chat-gpt.com"
|
|||
|
working = True
|
|||
|
supports_gpt_35_turbo = True
|
|||
|
|
|||
|
@classmethod
|
|||
|
async def create_async_generator(
|
|||
|
cls,
|
|||
|
model: str,
|
|||
|
messages: Messages,
|
|||
|
proxy: str = None,
|
|||
|
**kwargs
|
|||
|
) -> AsyncResult:
|
|||
|
yield ""
|
|||
|
```
|
|||
|
|
|||
|
4. Here, you can adjust the settings, for example, if the website does support streaming, set `supports_stream` to `True`...
|
|||
|
5. Write code to request the provider in `create_async_generator` and `yield` the response, _even if_ it's a one-time response, do not hesitate to look at other providers for inspiration
|
|||
|
6. Add the Provider Import in [`g4f/Provider/__init__.py`](./g4f/Provider/__init__.py)
|
|||
|
|
|||
|
```py
|
|||
|
from .HogeService import HogeService
|
|||
|
|
|||
|
__all__ = [
|
|||
|
HogeService,
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
7. You are done !, test the provider by calling it:
|
|||
|
|
|||
|
```py
|
|||
|
import g4f
|
|||
|
|
|||
|
response = g4f.ChatCompletion.create(model='gpt-3.5-turbo', provider=g4f.Provider.PROVIDERNAME,
|
|||
|
messages=[{"role": "user", "content": "test"}], stream=g4f.Provider.PROVIDERNAME.supports_stream)
|
|||
|
|
|||
|
for message in response:
|
|||
|
print(message, flush=True, end='')
|
|||
|
```
|