返回提交历史
Modified
README.md
+0
-1
Deleted
etc/examples/ecosia.py
+0
-18
Deleted
g4f/Provider/Ecosia.py
+0
-47
Modified
g4f/Provider/__init__.py
+0
-1
Modified
g4f/models.py
+0
-3
XFEstudio/gpt4free
remove ecosia
dd409d3f
代码差异
5 个文件
+0
-70
@@ -352,7 +352,6 @@ While we wait for gpt-5, here is a list of new models that are at least better t
352
352
| [chatgptx.de](https://chatgptx.de) | `g4f.Provider.ChatgptX` | ✔️ | ❌ | ✔️ |  | ❌ |
353
353
| [f1.cnote.top](https://f1.cnote.top) | `g4f.Provider.Cnote` | ✔️ | ❌ | ✔️ |  | ❌ |
354
354
| [duckduckgo.com](https://duckduckgo.com/duckchat) | `g4f.Provider.DuckDuckGo` | ✔️ | ❌ | ✔️ |  | ❌ |
355
| [ecosia.org](https://www.ecosia.org) | `g4f.Provider.Ecosia` | ✔️ | ❌ | ✔️ |  | ❌ |
356
355
| [feedough.com](https://www.feedough.com) | `g4f.Provider.Feedough` | ✔️ | ❌ | ✔️ |  | ❌ |
357
356
| [flowgpt.com](https://flowgpt.com/chat) | `g4f.Provider.FlowGpt` | ✔️ | ❌ | ✔️ |  | ❌ |
358
357
| [freegptsnav.aifree.site](https://freegptsnav.aifree.site) | `g4f.Provider.FreeGpt` | ✔️ | ❌ | ✔️ |  | ❌ |
@@ -1,18 +0,0 @@
1
import asyncio
2
import g4f
3
from g4f.client import AsyncClient
4
5
async def main():
6
client = AsyncClient(
7
provider=g4f.Provider.Ecosia,
8
)
9
async for chunk in client.chat.completions.create(
10
[{"role": "user", "content": "happy dogs on work. write some lines"}],
11
g4f.models.default,
12
stream=True,
13
green=True,
14
):
15
print(chunk.choices[0].delta.content or "", end="")
16
print(f"\nwith {chunk.model}")
17
18
asyncio.run(main())
@@ -1,47 +0,0 @@
1
2
from __future__ import annotations
3
4
import base64
5
import json
6
from aiohttp import ClientSession, BaseConnector
7
8
from ..typing import AsyncResult, Messages
9
from ..requests.raise_for_status import raise_for_status
10
from .base_provider import AsyncGeneratorProvider, ProviderModelMixin
11
from .helper import get_connector
12
13
class Ecosia(AsyncGeneratorProvider, ProviderModelMixin):
14
url = "https://www.ecosia.org"
15
working = True
16
supports_gpt_35_turbo = True
17
default_model = "gpt-3.5-turbo-0125"
18
models = [default_model, "green"]
19
model_aliases = {"gpt-3.5-turbo": default_model}
20
21
@classmethod
22
async def create_async_generator(
23
cls,
24
model: str,
25
messages: Messages,
26
connector: BaseConnector = None,
27
proxy: str = None,
28
**kwargs
29
) -> AsyncResult:
30
model = cls.get_model(model)
31
headers = {
32
"authority": "api.ecosia.org",
33
"accept": "*/*",
34
"origin": cls.url,
35
"referer": f"{cls.url}/",
36
"user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
37
}
38
async with ClientSession(headers=headers, connector=get_connector(connector, proxy)) as session:
39
data = {
40
"messages": base64.b64encode(json.dumps(messages).encode()).decode()
41
}
42
api_url = f"https://api.ecosia.org/v2/chat/?sp={'eco' if model == 'green' else 'productivity'}"
43
async with session.post(api_url, json=data) as response:
44
await raise_for_status(response)
45
async for chunk in response.content.iter_any():
46
if chunk:
47
yield chunk.decode(errors="ignore")
@@ -26,7 +26,6 @@ from .Cohere import Cohere
26
26
from .DeepInfra import DeepInfra
27
27
from .DeepInfraImage import DeepInfraImage
28
28
from .DuckDuckGo import DuckDuckGo
29
from .Ecosia import Ecosia
30
29
from .Feedough import Feedough
31
30
from .FlowGpt import FlowGpt
32
31
from .FreeChatgpt import FreeChatgpt
@@ -12,7 +12,6 @@ from .Provider import (
12
12
Cnote,
13
13
DeepInfra,
14
14
DuckDuckGo,
15
Ecosia,
16
15
Feedough,
17
16
FreeGpt,
18
17
Gemini,
@@ -59,7 +58,6 @@ default = Model(
59
58
ChatgptAi,
60
59
You,
61
60
OpenaiChat,
62
Ecosia,
63
61
])
64
62
)
65
63
@@ -73,7 +71,6 @@ gpt_35_long = Model(
73
71
ChatgptNext,
74
72
OpenaiChat,
75
73
Koala,
76
Ecosia,
77
74
DuckDuckGo,
78
75
])
79
76
)