51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from __future__ import annotations
|
|
from typing import Final
|
|
import socket
|
|
from api import Request
|
|
|
|
SERVER_HOST: Final = "127.0.0.1"
|
|
SERVER_PORT: Final = 9000
|
|
SHARED_SECRET: Final = "change-me"
|
|
|
|
from secret_stream_socket import SecretStreamSocket, wrap_connection_socket
|
|
|
|
|
|
def connect_to_server(
|
|
host: str = SERVER_HOST,
|
|
port: int = SERVER_PORT,
|
|
shared_secret: str = SHARED_SECRET,
|
|
) -> SecretStreamSocket:
|
|
sock = socket.create_connection((host, port))
|
|
return wrap_connection_socket(sock, shared_secret)
|
|
|
|
|
|
def send_message(connection: SecretStreamSocket, request_id: int, role: str, content: str) -> None:
|
|
payload = Request.build(
|
|
{
|
|
"request_id": request_id,
|
|
"kind": "chat",
|
|
"payload": {
|
|
"messages": [
|
|
{
|
|
"role": role,
|
|
"content": content,
|
|
}
|
|
]
|
|
},
|
|
}
|
|
)
|
|
connection.send_frame(payload)
|
|
|
|
|
|
def close_connection(connection: SecretStreamSocket) -> None:
|
|
connection.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
connection = connect_to_server()
|
|
try:
|
|
msg = "\n".join([f"hello {i} from F.py" for i in range(1000)])
|
|
send_message(connection, 1, "user", msg)
|
|
finally:
|
|
close_connection(connection)
|