Fix timeout in create_async
diff --git a/g4f/Provider/AiAsk.py b/g4f/Provider/AiAsk.py
index 0a44af3ed2..870dd1ab43 100644
--- a/g4f/Provider/AiAsk.py
+++ b/g4f/Provider/AiAsk.py
@@ -1,11 +1,9 @@
 from __future__ import annotations
 
-from aiohttp import ClientSession
-
+from aiohttp import ClientSession, ClientTimeout
 from ..typing import AsyncGenerator
 from .base_provider import AsyncGeneratorProvider
 
-
 class AiAsk(AsyncGeneratorProvider):
     url = "https://e.aiask.me"
     supports_gpt_35_turbo = True
@@ -24,7 +22,7 @@ async def create_async_generator(
             "origin": cls.url,
             "referer": f"{cls.url}/chat",
         }
-        async with ClientSession(headers=headers, timeout=timeout) as session:
+        async with ClientSession(headers=headers, timeout=ClientTimeout(timeout)) as session:
             data = {
                 "continuous": True,
                 "id": "fRMSQtuHl91A4De9cCvKD",
diff --git a/g4f/Provider/Aichat.py b/g4f/Provider/Aichat.py
index 4149676595..2e141b535f 100644
--- a/g4f/Provider/Aichat.py
+++ b/g4f/Provider/Aichat.py
@@ -1,6 +1,6 @@
 from __future__ import annotations
 
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 
 from .base_provider import AsyncProvider, format_prompt
 
@@ -34,7 +34,7 @@ async def create_async(
             "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
         }
         async with ClientSession(
-            headers=headers, timeout=timeout
+            headers=headers, timeout=ClientTimeout(timeout)
         ) as session:
             json_data = {
                 "message": format_prompt(messages),
diff --git a/g4f/Provider/Bing.py b/g4f/Provider/Bing.py
index aa2db990b4..f4275a5f54 100644
--- a/g4f/Provider/Bing.py
+++ b/g4f/Provider/Bing.py
@@ -250,7 +250,7 @@ async def stream_generate(
         conversation = await create_conversation(session)
         try:
             async with session.ws_connect(
-                f'wss://sydney.bing.com/sydney/ChatHub?sec_access_token={urllib.parse.quote_plus(conversation.conversationSignature)}',
+                f'wss://sydney.bing.com/sydney/ChatHub',
                 autoping=False,
                 params={'sec_access_token': conversation.conversationSignature}
             ) as wss:
diff --git a/g4f/Provider/ChatForAi.py b/g4f/Provider/ChatForAi.py
index 47ac46f053..86b296396b 100644
--- a/g4f/Provider/ChatForAi.py
+++ b/g4f/Provider/ChatForAi.py
@@ -1,7 +1,5 @@
 from __future__ import annotations
 
-import time, hashlib
-
 from ..typing import AsyncGenerator
 from ..requests import StreamSession
 from .base_provider import AsyncGeneratorProvider
@@ -21,11 +19,9 @@ async def create_async_generator(
         **kwargs
     ) -> AsyncGenerator:
         async with StreamSession(impersonate="chrome107", timeout=timeout) as session:
-            conversation_id = f"id_{int(time.time())}"
             prompt = messages[-1]["content"]
-            timestamp = int(time.time())
             data = {
-                "conversationId": conversation_id,
+                "conversationId": "temp",
                 "conversationType": "chat_continuous",
                 "botId": "chat_continuous",
                 "globalSettings":{
@@ -39,8 +35,6 @@ async def create_async_generator(
                 "botSettings": {},
                 "prompt": prompt,
                 "messages": messages,
-                "sign": generate_signature(timestamp, conversation_id, prompt),
-                "timestamp": timestamp
             }
             async with session.post(f"{cls.url}/api/handle/provider-openai", json=data) as response:
                 response.raise_for_status()
@@ -56,8 +50,4 @@ def params(cls):
             ("stream", "bool"),
         ]
         param = ", ".join([": ".join(p) for p in params])
-        return f"g4f.provider.{cls.__name__} supports: ({param})"
-    
-def generate_signature(timestamp, id, prompt):
-    data = f"{timestamp}:{id}:{prompt}:6B46K4pt"
-    return hashlib.sha256(data.encode()).hexdigest()
+        return f"g4f.provider.{cls.__name__} supports: ({param})"
\ No newline at end of file
diff --git a/g4f/Provider/ChatgptAi.py b/g4f/Provider/ChatgptAi.py
index 0ae0fa38b4..553a986032 100644
--- a/g4f/Provider/ChatgptAi.py
+++ b/g4f/Provider/ChatgptAi.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 import re
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 
 from .base_provider import AsyncProvider, format_prompt
 
@@ -40,7 +40,7 @@ async def create_async(
             "user-agent"         : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
         }
         async with ClientSession(
-            headers=headers, timeout=timeout
+            headers=headers, timeout=ClientTimeout(timeout)
         ) as session:
             if not cls._nonce:
                 async with session.get(cls.url, proxy=proxy) as response:
diff --git a/g4f/Provider/ChatgptDemo.py b/g4f/Provider/ChatgptDemo.py
index fdd7730b41..c9d2894aa0 100644
--- a/g4f/Provider/ChatgptDemo.py
+++ b/g4f/Provider/ChatgptDemo.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 import time, json, re
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 from typing import AsyncGenerator
 
 from .base_provider import AsyncGeneratorProvider
@@ -34,7 +34,7 @@ async def create_async_generator(
             "sec-fetch-site": "same-origin",
             "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
         }
-        async with ClientSession(headers=headers, timeout=timeout) as session:
+        async with ClientSession(headers=headers, timeout=ClientTimeout(timeout)) as session:
             async with session.get(f"{cls.url}/", proxy=proxy) as response:
                 response.raise_for_status()
                 response = await response.text()
diff --git a/g4f/Provider/GptGo.py b/g4f/Provider/GptGo.py
index 1948429195..be62250ca6 100644
--- a/g4f/Provider/GptGo.py
+++ b/g4f/Provider/GptGo.py
@@ -1,6 +1,6 @@
 from __future__ import annotations
 
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 import json
 
 from ..typing       import AsyncGenerator
@@ -32,7 +32,7 @@ async def create_async_generator(
             "Sec-Fetch-Site"     : "same-origin",
         }
         async with ClientSession(
-            headers=headers, timeout=timeout
+            headers=headers, timeout=ClientTimeout(timeout)
         ) as session:
             async with session.get(
                 "https://gptgo.ai/action_get_token.php",
diff --git a/g4f/Provider/Liaobots.py b/g4f/Provider/Liaobots.py
index e65c3a0d3e..2e0154d5c7 100644
--- a/g4f/Provider/Liaobots.py
+++ b/g4f/Provider/Liaobots.py
@@ -1,9 +1,8 @@
 from __future__ import annotations
 
-import json
 import uuid
 
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 
 from ..typing import AsyncGenerator
 from .base_provider import AsyncGeneratorProvider
@@ -55,7 +54,7 @@ async def create_async_generator(
             "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
         }
         async with ClientSession(
-            headers=headers, timeout=timeout
+            headers=headers, timeout=ClientTimeout(timeout)
         ) as session:
             cls._auth_code = auth if isinstance(auth, str) else cls._auth_code
             if not cls._auth_code:
diff --git a/g4f/Provider/Vitalentum.py b/g4f/Provider/Vitalentum.py
index 9125c28503..ccaaeb00f8 100644
--- a/g4f/Provider/Vitalentum.py
+++ b/g4f/Provider/Vitalentum.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 import json
-from aiohttp import ClientSession
+from aiohttp import ClientSession, ClientTimeout
 
 from .base_provider import AsyncGeneratorProvider
 from ..typing import AsyncGenerator
@@ -41,7 +41,7 @@ async def create_async_generator(
             **kwargs
         }
         async with ClientSession(
-            headers=headers, timeout=timeout
+            headers=headers, timeout=ClientTimeout(timeout)
         ) as session:
             async with session.post(cls.url + "/api/converse-edge", json=data, proxy=proxy) as response:
                 response.raise_for_status()
