Added a new provider voigpt.com (#1328)

* added the new VoiGpt provider

* fixed the voigpt and moved it to needs_auth

* added auth detail and doc to voiGpt provider
pull/1333/head
Meshwa428 7 months ago committed by GitHub
parent c3ccc4e819
commit 983d17cb7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,79 @@
from __future__ import annotations
import json
import requests
from ..base_provider import BaseProvider
from ...typing import Messages, CreateResult
from ..helper import get_cookies
class VoiGpt(BaseProvider):
"""
VoiGpt - A provider for VoiGpt.com
**Note** : to use this provider you have to get your csrf token/cookie from the voigpt.com website
Args:
model: The model to use
messages: The messages to send
stream: Whether to stream the response
proxy: The proxy to use
access_token: The access token to use
**kwargs: Additional keyword arguments
Returns:
A CreateResult object
"""
url = "https://voigpt.com"
working = True
supports_gpt_35_turbo = True
supports_message_history = True
supports_stream = False
needs_auth = True
_access_token: str = None
@classmethod
def create_completion(
cls,
model: str,
messages: Messages,
stream: bool,
proxy: str = None,
access_token: str = None,
**kwargs
) -> CreateResult:
if not model:
model = "gpt-3.5-turbo"
if not access_token:
access_token = cls._access_token
headers = {
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-IN,en-GB;q=0.9,en-US;q=0.8,en;q=0.7,hi;q=0.6",
"Content-Type": "application/json",
"Cookie": f"csrftoken={access_token};",
"Host": "voigpt.com",
"Origin": "https://voigpt.com",
"Referer": "https://voigpt.com/",
"Sec-Ch-Ua": "'Google Chrome';v='119', 'Chromium';v='119', 'Not?A_Brand';v='24'",
"Sec-Ch-Ua-Mobile": "?0",
"Sec-Ch-Ua-Platform": "'Windows'",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
"X-Csrftoken": f"{access_token}",
}
payload = {
"messages": messages,
}
request_url = cls.url + "/generate_response/"
req_response = requests.post(request_url, headers=headers, json=payload)
response = json.loads(req_response.text)
return response["response"]

@ -5,4 +5,5 @@ from .ThebApi import ThebApi
from .HuggingChat import HuggingChat from .HuggingChat import HuggingChat
from .OpenaiChat import OpenaiChat from .OpenaiChat import OpenaiChat
from .OpenAssistant import OpenAssistant from .OpenAssistant import OpenAssistant
from .Poe import Poe from .Poe import Poe
from .VoiGpt import VoiGpt

@ -28,6 +28,7 @@ from .Provider import (
You, You,
H2o, H2o,
Pi, Pi,
VoiGpt,
) )
@dataclass(unsafe_hash=True) @dataclass(unsafe_hash=True)
@ -49,6 +50,7 @@ default = Model(
You, You,
Chatgpt4Online, Chatgpt4Online,
ChatAnywhere, ChatAnywhere,
VoiGpt
]) ])
) )
@ -65,6 +67,7 @@ gpt_35_long = Model(
ChatgptDemoAi, ChatgptDemoAi,
OnlineGpt, OnlineGpt,
ChatgptNext, ChatgptNext,
VoiGpt
]) ])
) )
@ -77,6 +80,7 @@ gpt_35_turbo = Model(
GptForLove, ChatBase, GptForLove, ChatBase,
Chatgpt4Online, Chatgpt4Online,
ChatAnywhere, ChatAnywhere,
VoiGpt,
]) ])
) )

Loading…
Cancel
Save