mirror of https://github.com/xtekky/gpt4free.git
Merge pull request #1149 from Luneye/patch-4
[suggestion] Adding new parameter to check if a provider 'natively' supports mesage history
This commit is contained in:
commit
a167970d76
|
@ -32,6 +32,7 @@ default_cookies = {
|
|||
class Bing(AsyncGeneratorProvider):
|
||||
url = "https://bing.com/chat"
|
||||
working = True
|
||||
supports_message_history = True
|
||||
supports_gpt_4 = True
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -9,6 +9,7 @@ from .base_provider import AsyncGeneratorProvider
|
|||
class ChatBase(AsyncGeneratorProvider):
|
||||
url = "https://www.chatbase.co"
|
||||
supports_gpt_35_turbo = True
|
||||
supports_message_history = True
|
||||
working = True
|
||||
list_incorrect_responses = ["Hmm, I am not sure. Email support@chatbase.co for more info.",
|
||||
"I can only provide support and information about Chatbase"]
|
||||
|
@ -60,4 +61,4 @@ class ChatBase(AsyncGeneratorProvider):
|
|||
("stream", "bool"),
|
||||
]
|
||||
param = ", ".join([": ".join(p) for p in params])
|
||||
return f"g4f.provider.{cls.__name__} supports: ({param})"
|
||||
return f"g4f.provider.{cls.__name__} supports: ({param})"
|
||||
|
|
|
@ -11,6 +11,7 @@ from .base_provider import AsyncGeneratorProvider
|
|||
class ChatForAi(AsyncGeneratorProvider):
|
||||
url = "https://chatforai.store"
|
||||
working = True
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
|
||||
@classmethod
|
||||
|
@ -69,4 +70,4 @@ class ChatForAi(AsyncGeneratorProvider):
|
|||
|
||||
def generate_signature(timestamp: int, message: str, id: str):
|
||||
buffer = f"{timestamp}:{id}:{message}:7YN8z6d6"
|
||||
return hashlib.sha256(buffer.encode()).hexdigest()
|
||||
return hashlib.sha256(buffer.encode()).hexdigest()
|
||||
|
|
|
@ -12,6 +12,7 @@ from .helper import format_prompt
|
|||
class ChatgptX(AsyncGeneratorProvider):
|
||||
url = "https://chatgptx.de"
|
||||
supports_gpt_35_turbo = True
|
||||
supports_message_history = True
|
||||
working = True
|
||||
|
||||
@classmethod
|
||||
|
@ -96,4 +97,4 @@ class ChatgptX(AsyncGeneratorProvider):
|
|||
except:
|
||||
raise RuntimeError(f"Broken line: {line.decode()}")
|
||||
if content:
|
||||
yield content
|
||||
yield content
|
||||
|
|
|
@ -10,6 +10,7 @@ from .helper import format_prompt
|
|||
|
||||
class FakeGpt(AsyncGeneratorProvider):
|
||||
url = "https://chat-shared2.zhile.io"
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
working = True
|
||||
_access_token = None
|
||||
|
@ -91,4 +92,4 @@ class FakeGpt(AsyncGeneratorProvider):
|
|||
raise RuntimeError("No valid response")
|
||||
|
||||
def random_string(length: int = 10):
|
||||
return ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(length))
|
||||
return ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(length))
|
||||
|
|
|
@ -12,6 +12,7 @@ domains = [
|
|||
|
||||
class FreeGpt(AsyncGeneratorProvider):
|
||||
url = "https://freegpts1.aifree.site/"
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
working = True
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ from .helper import format_prompt
|
|||
class GPTalk(AsyncGeneratorProvider):
|
||||
url = "https://gptalk.net"
|
||||
supports_gpt_35_turbo = True
|
||||
supports_message_history = True
|
||||
working = True
|
||||
_auth = None
|
||||
|
||||
|
@ -81,4 +82,4 @@ class GPTalk(AsyncGeneratorProvider):
|
|||
break
|
||||
message = json.loads(line[6:-1])["content"]
|
||||
yield message[len(last_message):]
|
||||
last_message = message
|
||||
last_message = message
|
||||
|
|
|
@ -9,6 +9,7 @@ from .helper import format_prompt
|
|||
|
||||
class GptForLove(AsyncGeneratorProvider):
|
||||
url = "https://ai18.gptforlove.com"
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
working = True
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ from .base_provider import AsyncGeneratorProvider, format_prompt
|
|||
class You(AsyncGeneratorProvider):
|
||||
url = "https://you.com"
|
||||
working = True
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
|
||||
|
||||
|
@ -37,4 +38,4 @@ class You(AsyncGeneratorProvider):
|
|||
start = b'data: {"youChatToken": '
|
||||
async for line in response.iter_lines():
|
||||
if line.startswith(start):
|
||||
yield json.loads(line[len(start):-1])
|
||||
yield json.loads(line[len(start):-1])
|
||||
|
|
|
@ -10,6 +10,7 @@ from .base_provider import AsyncGeneratorProvider, format_prompt
|
|||
class Yqcloud(AsyncGeneratorProvider):
|
||||
url = "https://chat9.yqcloud.top/"
|
||||
working = True
|
||||
supports_message_history = True
|
||||
supports_gpt_35_turbo = True
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -15,6 +15,7 @@ class BaseProvider(ABC):
|
|||
supports_stream: bool = False
|
||||
supports_gpt_35_turbo: bool = False
|
||||
supports_gpt_4: bool = False
|
||||
supports_message_history: bool = False
|
||||
|
||||
@staticmethod
|
||||
@abstractmethod
|
||||
|
@ -135,4 +136,4 @@ class AsyncGeneratorProvider(AsyncProvider):
|
|||
messages: Messages,
|
||||
**kwargs
|
||||
) -> AsyncResult:
|
||||
raise NotImplementedError()
|
||||
raise NotImplementedError()
|
||||
|
|
Loading…
Reference in New Issue