summaryrefslogtreecommitdiffstats
path: root/g4f/.v1/gpt4free/hpgptai/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'g4f/.v1/gpt4free/hpgptai/__init__.py')
-rw-r--r--g4f/.v1/gpt4free/hpgptai/__init__.py103
1 files changed, 0 insertions, 103 deletions
diff --git a/g4f/.v1/gpt4free/hpgptai/__init__.py b/g4f/.v1/gpt4free/hpgptai/__init__.py
deleted file mode 100644
index f5d1f0ed..00000000
--- a/g4f/.v1/gpt4free/hpgptai/__init__.py
+++ /dev/null
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-@Time : 2023/5/22 14:04
-@Auth : Hp_mzx
-@File :__init__.py.py
-@IDE :PyCharm
-"""
-import re
-import json
-import base64
-import random
-import string
-import requests
-from fake_useragent import UserAgent
-
-
-class ChatCompletion:
- @staticmethod
- def create(
- messages: list,
- context: str = "Converse as if you were an AI assistant. Be friendly, creative.",
- restNonce: str = None,
- proxy: str = None
- ):
- url = "https://chatgptlogin.ac/wp-json/ai-chatbot/v1/chat"
- if not restNonce:
- restNonce = ChatCompletion.get_restNonce(proxy)
- headers = {
- "Content-Type": "application/json",
- "X-Wp-Nonce": restNonce
- }
- proxies = {'http': 'http://' + proxy, 'https': 'http://' + proxy} if proxy else None
- data = {
- "env": "chatbot",
- "session": "N/A",
- "prompt": ChatCompletion.__build_prompt(context, messages),
- "context": context,
- "messages": messages,
- "newMessage": messages[-1]["content"],
- "userName": "<div class=\"mwai-name-text\">User:</div>",
- "aiName": "<div class=\"mwai-name-text\">AI:</div>",
- "model": "gpt-3.5-turbo",
- "temperature": 0.8,
- "maxTokens": 1024,
- "maxResults": 1,
- "apiKey": "",
- "service": "openai",
- "embeddingsIndex": "",
- "stop": "",
- "clientId": ChatCompletion.randomStr(),
- }
- res = requests.post(url=url, data=json.dumps(data), headers=headers, proxies=proxies)
- if res.status_code == 200:
- return res.json()
- return res.text
-
- @staticmethod
- def randomStr():
- return ''.join(random.choices(string.ascii_lowercase + string.digits, k=34))[:11]
-
- @classmethod
- def __build_prompt(cls, context: str, message: list, isCasuallyFineTuned=False, last=15):
- prompt = context + '\n\n' if context else ''
- message = message[-last:]
- if isCasuallyFineTuned:
- lastLine = message[-1]
- prompt = lastLine.content + ""
- return prompt
- conversation = [x["who"] + x["content"] for x in message]
- prompt += '\n'.join(conversation)
- prompt += '\n' + "AI: "
- return prompt
-
- @classmethod
- def get_restNonce(cls, proxy: str = None):
- url = "https://chatgptlogin.ac/"
- headers = {
- "Referer": "https://chatgptlogin.ac/",
- "User-Agent": UserAgent().random
- }
- proxies = {'http': 'http://' + proxy, 'https': 'http://' + proxy} if proxy else None
- res = requests.get(url, headers=headers, proxies=proxies)
- src = re.search(
- 'class="mwai-chat mwai-chatgpt">.*<span>Send</span></button></div></div></div> <script defer src="(.*?)">',
- res.text).group(1)
- decoded_string = base64.b64decode(src.split(",")[-1]).decode('utf-8')
- restNonce = re.search(r"let restNonce = '(.*?)';", decoded_string).group(1)
- return restNonce
-
-
-class Completion:
- @staticmethod
- def create(prompt: str, proxy: str):
- messages = [
- {
- "content": prompt,
- "html": prompt,
- "id": ChatCompletion.randomStr(),
- "role": "user",
- "who": "User: ",
- },
- ]
- return ChatCompletion.create(messages=messages, proxy=proxy) \ No newline at end of file