1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- from __future__ import annotations
- import requests
- from ...typing import Any, CreateResult, Messages
- from ..base_provider import AbstractProvider
- models = {
- "theb-ai": "TheB.AI",
- "gpt-3.5-turbo": "GPT-3.5",
- "gpt-3.5-turbo-16k": "GPT-3.5-16K",
- "gpt-4-turbo": "GPT-4 Turbo",
- "gpt-4": "GPT-4",
- "gpt-4-32k": "GPT-4 32K",
- "claude-2": "Claude 2",
- "claude-1": "Claude",
- "claude-1-100k": "Claude 100K",
- "claude-instant-1": "Claude Instant",
- "claude-instant-1-100k": "Claude Instant 100K",
- "palm-2": "PaLM 2",
- "palm-2-codey": "Codey",
- "vicuna-13b-v1.5": "Vicuna v1.5 13B",
- "llama-2-7b-chat": "Llama 2 7B",
- "llama-2-13b-chat": "Llama 2 13B",
- "llama-2-70b-chat": "Llama 2 70B",
- "code-llama-7b": "Code Llama 7B",
- "code-llama-13b": "Code Llama 13B",
- "code-llama-34b": "Code Llama 34B",
- "qwen-7b-chat": "Qwen 7B"
- }
- class ThebApi(AbstractProvider):
- url = "https://theb.ai"
- working = True
- needs_auth = True
- @staticmethod
- def create_completion(
- model: str,
- messages: Messages,
- stream: bool,
- auth: str,
- proxy: str = None,
- **kwargs
- ) -> CreateResult:
- if model and model not in models:
- raise ValueError(f"Model are not supported: {model}")
- headers = {
- 'accept': 'application/json',
- 'authorization': f'Bearer {auth}',
- 'content-type': 'application/json',
- }
- # response = requests.get("https://api.baizhi.ai/v1/models", headers=headers).json()["data"]
- # models = dict([(m["id"], m["name"]) for m in response])
- # print(json.dumps(models, indent=4))
- data: dict[str, Any] = {
- "model": model if model else "gpt-3.5-turbo",
- "messages": messages,
- "stream": False,
- "model_params": {
- "system_prompt": kwargs.get("system_message", "You are ChatGPT, a large language model trained by OpenAI, based on the GPT-3.5 architecture."),
- "temperature": 1,
- "top_p": 1,
- **kwargs
- }
- }
- response = requests.post(
- "https://api.theb.ai/v1/chat/completions",
- headers=headers,
- json=data,
- proxies={"https": proxy}
- )
- try:
- response.raise_for_status()
- yield response.json()["choices"][0]["message"]["content"]
- except:
- raise RuntimeError(f"Response: {next(response.iter_lines()).decode()}")
|