File size: 1,875 Bytes
6e1eccf
ddf7ac7
 
 
8f30cba
17e09e4
 
 
8f30cba
 
 
 
ddf7ac7
17e09e4
ddf7ac7
 
 
8f30cba
ddf7ac7
 
 
 
 
 
 
 
efdd8aa
 
8f30cba
ddf7ac7
 
6e1eccf
8f30cba
6e1eccf
8f30cba
 
 
 
 
 
 
 
 
4c41d5e
ddf7ac7
 
 
6e1eccf
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
47
48
# WarServer - replace HOST with 'localhost' for local testing
import socket
import WarBot

# Kill all warnings
import warnings
warnings.filterwarnings("ignore")

imgWord = 'как выглядит'

# Initialize the base models
model,tokenizer,model_punct,translation_model,translation_tokenizer,imgModel_version = WarBot.initialize()

HOST = '10.0.0.125'
PORT = 5000

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
    # Server sockets operation
    server_socket.bind((HOST, PORT))
    server_socket.listen()
    print(f'Server is listening on port {PORT}')
    while True:
        conn, addr = server_socket.accept()
        with conn:
            print(f'Connected by {addr}')
            data = conn.recv(1024)
            #received_string = data.decode()
            received_string = data.decode('utf-8', 'ignore')

            print(f'Received string from client: {received_string}')

            response = ""

            while not response:
                if received_string.lower().startswith(imgWord): # check if that is a call for an image:
                    received_string = received_string.lower().split(imgWord)[1:][0].strip()  # cut the code word for image
                    # Translate it to english:
                    translated_string = WarBot.translate(received_string, translation_model=translation_model,
                                                         translation_tokenizer=translation_tokenizer)
                    # Generated image url
                    response = WarBot.generate_image(prompt=translated_string, imgModel_version=imgModel_version)
                else:
                    response = WarBot.get_response(received_string, model, tokenizer, model_punct, temperature=0.6)

            response_string = response

            conn.sendall(response_string.encode())
            conn.close()