import requests from ..typing import Any, CreateResult from .base_provider import BaseProvider class Opchatgpts(BaseProvider): url = "https://opchatgpts.net" working = True supports_gpt_35_turbo = True @staticmethod def create_completion( model: str, messages: list[dict[str, str]], stream: bool, **kwargs: Any, ) -> CreateResult: temperature = kwargs.get("temperature", 0.8) max_tokens = kwargs.get("max_tokens", 1024) system_prompt = kwargs.get( "system_prompt", "Converse as if you were an AI assistant. Be friendly, creative.", ) payload = _create_payload( messages=messages, temperature=temperature, max_tokens=max_tokens, system_prompt=system_prompt, ) response = requests.post( "https://opchatgpts.net/wp-json/ai-chatbot/v1/chat", json=payload ) response.raise_for_status() yield response.json()["reply"] def _create_payload( messages: list[dict[str, str]], temperature: float, max_tokens: int, system_prompt: str, ): return { "env": "chatbot", "session": "N/A", "prompt": "\n", "context": system_prompt, "messages": messages, "newMessage": messages[::-1][0]["content"], "userName": '
User:
', "aiName": '
AI:
', "model": "gpt-3.5-turbo", "temperature": temperature, "maxTokens": max_tokens, "maxResults": 1, "apiKey": "", "service": "openai", "embeddingsIndex": "", "stop": "", }