Automatically obtain restNonce
diff --git a/gpt4free/hpgptai/__init__.py b/gpt4free/hpgptai/__init__.py
index c8772a19f5..f5d1f0edc3 100644
--- a/gpt4free/hpgptai/__init__.py
+++ b/gpt4free/hpgptai/__init__.py
@@ -5,20 +5,26 @@
 @File ：__init__.py.py
 @IDE ：PyCharm
 """
+import re
 import json
-import requests
+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="9d6d743bd3",
-            proxy:str=None
+            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
@@ -27,7 +33,7 @@ def create(
         data = {
             "env": "chatbot",
             "session": "N/A",
-            "prompt": ChatCompletion.__build_prompt(context,messages),
+            "prompt": ChatCompletion.__build_prompt(context, messages),
             "context": context,
             "messages": messages,
             "newMessage": messages[-1]["content"],
@@ -48,7 +54,6 @@ def create(
             return res.json()
         return res.text
 
-
     @staticmethod
     def randomStr():
         return ''.join(random.choices(string.ascii_lowercase + string.digits, k=34))[:11]
@@ -66,12 +71,26 @@ def __build_prompt(cls, context: str, message: list, isCasuallyFineTuned=False,
         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):
+    def create(prompt: str, proxy: str):
         messages = [
             {
                 "content": prompt,
@@ -81,4 +100,4 @@ def create(prompt: str,proxy:str):
                 "who": "User: ",
             },
         ]
-        return ChatCompletion.create(messages=messages,proxy=proxy)
\ No newline at end of file
+        return ChatCompletion.create(messages=messages, proxy=proxy)
\ No newline at end of file

RestNonce automatically changes every day and requires requesting the webpage to obtain the restNonce value