summaryrefslogtreecommitdiffstats
path: root/g4f/Provider
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g4f/Provider/Vercel.py353
1 files changed, 0 insertions, 353 deletions
diff --git a/g4f/Provider/Vercel.py b/g4f/Provider/Vercel.py
deleted file mode 100644
index 79bcf3f4..00000000
--- a/g4f/Provider/Vercel.py
+++ /dev/null
@@ -1,353 +0,0 @@
-from __future__ import annotations
-
-import base64, json, uuid, quickjs, random
-from curl_cffi.requests import AsyncSession
-
-from ..typing import Any, TypedDict
-from .base_provider import AsyncProvider
-
-
-class Vercel(AsyncProvider):
- url = "https://sdk.vercel.ai"
- working = True
- supports_gpt_35_turbo = True
- model = "replicate:replicate/llama-2-70b-chat"
-
- @classmethod
- async def create_async(
- cls,
- model: str,
- messages: list[dict[str, str]],
- proxy: str = None,
- **kwargs
- ) -> str:
- if model in ["gpt-3.5-turbo", "gpt-4"]:
- model = "openai:" + model
- model = model if model else cls.model
- proxies = None
- if proxy:
- if "://" not in proxy:
- proxy = "http://" + proxy
- proxies = {"http": proxy, "https": proxy}
- headers = {
- "User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.{rand1}.{rand2} Safari/537.36".format(
- rand1=random.randint(0,9999),
- rand2=random.randint(0,9999)
- ),
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
- "Accept-Encoding": "gzip, deflate, br",
- "Accept-Language": "en-US,en;q=0.5",
- "TE": "trailers",
- }
- async with AsyncSession(headers=headers, proxies=proxies, impersonate="chrome107") as session:
- response = await session.get(cls.url + "/openai.jpeg")
- response.raise_for_status()
- custom_encoding = _get_custom_encoding(response.text)
- headers = {
- "Content-Type": "application/json",
- "Custom-Encoding": custom_encoding,
- }
- data = _create_payload(model, messages)
- response = await session.post(cls.url + "/api/generate", json=data, headers=headers)
- response.raise_for_status()
- return response.text
-
-
-def _create_payload(model: str, messages: list[dict[str, str]]) -> dict[str, Any]:
- if model not in model_info:
- raise ValueError(f'Model are not supported: {model}')
- default_params = model_info[model]["default_params"]
- return {
- "messages": messages,
- "playgroundId": str(uuid.uuid4()),
- "chatIndex": 0,
- "model": model
- } | default_params
-
-# based on https://github.com/ading2210/vercel-llm-api
-def _get_custom_encoding(text: str) -> str:
- data = json.loads(base64.b64decode(text, validate=True))
- script = """
- String.prototype.fontcolor = function() {{
- return `<font>${{this}}</font>`
- }}
- var globalThis = {{marker: "mark"}};
- ({script})({key})
- """.format(
- script=data["c"], key=data["a"]
- )
- context = quickjs.Context() # type: ignore
- token_data = json.loads(context.eval(script).json()) # type: ignore
- token_data[2] = "mark"
- token = {"r": token_data, "t": data["t"]}
- token_str = json.dumps(token, separators=(",", ":")).encode("utf-16le")
- return base64.b64encode(token_str).decode()
-
-
-class ModelInfo(TypedDict):
- id: str
- default_params: dict[str, Any]
-
-
-model_info: dict[str, ModelInfo] = {
- "anthropic:claude-instant-v1": {
- "id": "anthropic:claude-instant-v1",
- "default_params": {
- "temperature": 1,
- "maxTokens": 200,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": ["\n\nHuman:"],
- },
- },
- "anthropic:claude-v1": {
- "id": "anthropic:claude-v1",
- "default_params": {
- "temperature": 1,
- "maxTokens": 200,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": ["\n\nHuman:"],
- },
- },
- "anthropic:claude-v2": {
- "id": "anthropic:claude-v2",
- "default_params": {
- "temperature": 1,
- "maxTokens": 200,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": ["\n\nHuman:"],
- },
- },
- "replicate:a16z-infra/llama7b-v2-chat": {
- "id": "replicate:a16z-infra/llama7b-v2-chat",
- "default_params": {
- "temperature": 0.75,
- "maxTokens": 500,
- "topP": 1,
- "repetitionPenalty": 1,
- },
- },
- "replicate:a16z-infra/llama13b-v2-chat": {
- "id": "replicate:a16z-infra/llama13b-v2-chat",
- "default_params": {
- "temperature": 0.75,
- "maxTokens": 500,
- "topP": 1,
- "repetitionPenalty": 1,
- },
- },
- "replicate:replicate/llama-2-70b-chat": {
- "id": "replicate:replicate/llama-2-70b-chat",
- "default_params": {
- "temperature": 0.75,
- "maxTokens": 1000,
- "topP": 1,
- "repetitionPenalty": 1,
- },
- },
- "huggingface:bigscience/bloom": {
- "id": "huggingface:bigscience/bloom",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 0.95,
- "topK": 4,
- "repetitionPenalty": 1.03,
- },
- },
- "huggingface:google/flan-t5-xxl": {
- "id": "huggingface:google/flan-t5-xxl",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 0.95,
- "topK": 4,
- "repetitionPenalty": 1.03,
- },
- },
- "huggingface:EleutherAI/gpt-neox-20b": {
- "id": "huggingface:EleutherAI/gpt-neox-20b",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 0.95,
- "topK": 4,
- "repetitionPenalty": 1.03,
- "stopSequences": [],
- },
- },
- "huggingface:OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5": {
- "id": "huggingface:OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5",
- "default_params": {"maxTokens": 200, "typicalP": 0.2, "repetitionPenalty": 1},
- },
- "huggingface:OpenAssistant/oasst-sft-1-pythia-12b": {
- "id": "huggingface:OpenAssistant/oasst-sft-1-pythia-12b",
- "default_params": {"maxTokens": 200, "typicalP": 0.2, "repetitionPenalty": 1},
- },
- "huggingface:bigcode/santacoder": {
- "id": "huggingface:bigcode/santacoder",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 0.95,
- "topK": 4,
- "repetitionPenalty": 1.03,
- },
- },
- "cohere:command-light-nightly": {
- "id": "cohere:command-light-nightly",
- "default_params": {
- "temperature": 0.9,
- "maxTokens": 200,
- "topP": 1,
- "topK": 0,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "cohere:command-nightly": {
- "id": "cohere:command-nightly",
- "default_params": {
- "temperature": 0.9,
- "maxTokens": 200,
- "topP": 1,
- "topK": 0,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:gpt-4": {
- "id": "openai:gpt-4",
- "default_params": {
- "temperature": 0.7,
- "maxTokens": 500,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:gpt-4-0613": {
- "id": "openai:gpt-4-0613",
- "default_params": {
- "temperature": 0.7,
- "maxTokens": 500,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:code-davinci-002": {
- "id": "openai:code-davinci-002",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:gpt-3.5-turbo": {
- "id": "openai:gpt-3.5-turbo",
- "default_params": {
- "temperature": 0.7,
- "maxTokens": 500,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": [],
- },
- },
- "openai:gpt-3.5-turbo-16k": {
- "id": "openai:gpt-3.5-turbo-16k",
- "default_params": {
- "temperature": 0.7,
- "maxTokens": 500,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": [],
- },
- },
- "openai:gpt-3.5-turbo-16k-0613": {
- "id": "openai:gpt-3.5-turbo-16k-0613",
- "default_params": {
- "temperature": 0.7,
- "maxTokens": 500,
- "topP": 1,
- "topK": 1,
- "presencePenalty": 1,
- "frequencyPenalty": 1,
- "stopSequences": [],
- },
- },
- "openai:text-ada-001": {
- "id": "openai:text-ada-001",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:text-babbage-001": {
- "id": "openai:text-babbage-001",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:text-curie-001": {
- "id": "openai:text-curie-001",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:text-davinci-002": {
- "id": "openai:text-davinci-002",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
- "openai:text-davinci-003": {
- "id": "openai:text-davinci-003",
- "default_params": {
- "temperature": 0.5,
- "maxTokens": 200,
- "topP": 1,
- "presencePenalty": 0,
- "frequencyPenalty": 0,
- "stopSequences": [],
- },
- },
-}