summaryrefslogtreecommitdiffstats
path: root/unfinished/gptbz/__init__.py
blob: e95d5716960fdf1862744534f1a22522efd864a8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from json import dumps, loads

import websockets


# Define the asynchronous function to test the WebSocket connection


async def test():
    # Establish a WebSocket connection with the specified URL
    async with websockets.connect('wss://chatgpt.func.icu/conversation+ws') as wss:

        # Prepare the message payload as a JSON object
        payload = {
            'content_type': 'text',
            'engine': 'chat-gpt',
            'parts': ['hello world'],
            'options': {}
        }

        # Send the payload to the WebSocket server
        await wss.send(dumps(obj=payload, separators=(',', ':')))

        # Initialize a variable to track the end of the conversation
        ended = None

        # Continuously receive and process messages until the conversation ends
        while not ended:
            try:
                # Receive and parse the JSON response from the server
                response = await wss.recv()
                json_response = loads(response)

                # Print the entire JSON response
                print(json_response)

                # Check for the end of the conversation
                ended = json_response.get('eof')

                # If the conversation has not ended, print the received message
                if not ended:
                    print(json_response['content']['parts'][0])

            # Handle cases when the connection is closed by the server
            except websockets.ConnectionClosed:
                break