Trong quá trình triển khai hệ thống chatbot AI real-time cho một dự án thương mại điện tử quy mô lớn, tôi đã gặp một lỗi kinh điển khiến toàn bộ kết nối WebSocket bị ngắt đột ngột. Kịch bản lỗi cụ thể như sau: ứng dụng production chạy trên server Ubuntu 22.04 LTS với Python 3.11, khi khách hàng cố gắng trò chuyện với chatbot AI, console trả về thông báo ssl.SSLError: [SSL: UNSUPPORTED_PROTOCOL] unsupported protocol version. Sau 3 ngày debug liên tục, tôi phát hiện vấn đề nằm ở cấu hình TLS version mặc định của thư viện websocket-client trên Python — nó đang sử dụng TLS 1.0/1.1 đã bị deprecated. Bài viết này sẽ chia sẻ chi tiết cách tôi giải quyết vấn đề này cùng với kinh nghiệm thực chiến khi triển khai WebSocket AI với nền tảng HolySheep AI.

Tại sao TLS Configuration quan trọng cho WebSocket AI?

Khi xây dựng hệ thống hội thoại AI real-time, kết nối WebSocket phải duy trì liên tục để truyền tải response theo stream. Nếu TLS không được cấu hình đúng cách, server có thể từ chối kết nối, gây ra độ trễ không mong muốn hoặc rủi ro bảo mật nghiêm trọng. Với HolySheep AI, độ trễ trung bình dưới 50ms, nhưng nếu TLS handshake thất bại, latency có thể tăng lên 5-10 giây hoặc connection bị timeout hoàn toàn.

Các lợi ích khi cấu hình TLS đúng:

Cấu hình TLS Version tối ưu cho Python WebSocket

Python sử dụng thư viện ssl để quản lý TLS. Mặc định, Python 3.7+ đã vô hiệu hóa TLS 1.0 và 1.1, nhưng không phải server nào cũng hỗ trợ TLS 1.3. Cấu hình dưới đây là best practice tôi đã áp dụng thành công:

import ssl
import websocket

Tạo SSL context với TLS version tối ưu

def create_ssl_context(): """ SSL context với TLS 1.2 và 1.3 cho WebSocket AI connection. Priority: TLS 1.3 > TLS 1.2 (hiệu suất tốt nhất) """ ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT) # Yêu cầu certificate verification (bảo mật) ssl_context.check_hostname = True ssl_context.verify_mode = ssl.CERT_REQUIRED # Load default certificates của hệ thống ssl_context.load_default_certs() # Cấu hình TLS versions - ưu tiên TLS 1.3 # Một số server cũ hơn có thể cần TLS 1.2 ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2 ssl_context.maximum_version = ssl.TLSVersion.TLSv1_3 # Bật hostname checking (RFC 6125) ssl_context.hostname_checks_common_name = True return ssl_context

Test kết nối với HolySheep AI WebSocket

def test_connection(): api_key = "YOUR_HOLYSHEEP_API_KEY" ws_url = "wss://api.holysheep.ai/v1/ws/chat" ssl_ctx = create_ssl_context() ws = websocket.WebSocket(sslopt={"cert_chain": ssl_ctx}) headers = { "Authorization": f"Bearer {api_key}", "Content-Type": "application/json" } try: ws.connect(ws_url, sslopt={"cert_reqs": ssl.CERT_REQUIRED}, header=headers, timeout=30) print("✅ Kết nối WebSocket TLS thành công!") return ws except ssl.SSLError as e: print(f"❌ Lỗi SSL: {e}") # Fallback strategy return fallback_tls_connection(ws_url, headers) print("TLS Context đã được tạo với cấu hình tối ưu")

Bộ mã hóa (Cipher Suites) tối ưu cho AI Workloads

Bộ mã hóa quyết định thuật toán mã hóa được sử dụng trong quá trình TLS handshake. Với AI streaming workload, chúng ta cần balance giữa bảo mật và hiệu suất. Dưới đây là cấu hình cipher suites tôi đã thử nghiệm với HolySheep AI:

import ssl
from typing import List, Tuple

class TLSConfigurator:
    """
    Cấu hình TLS nâng cao cho WebSocket AI streaming.
    Tối ưu hóa cho low-latency AI workloads.
    """
    
    # Cipher suites tối ưu cho TLS 1.3 (ưu tiên hiệu suất)
    TLS13_CIPHERS = [
        "TLS_AES_256_GCM_SHA384",
        "TLS_AES_128_GCM_SHA256",
        "TLS_CHACHA20_POLY1305_SHA256"
    ]
    
    # Cipher suites cho TLS 1.2 (tương thích ngược)
    TLS12_CIPHERS = [
        "ECDHE-RSA-AES256-GCM-SHA384",
        "ECDHE-RSA-AES128-GCM-SHA256",
        "ECDHE-RSA-CHACHA20-POLY1305",
        "ECDHE-RSA-AES256-SHA384"
    ]
    
    @staticmethod
    def create_optimized_context() -> ssl.SSLContext:
        """
        Tạo SSL context với cipher suites tối ưu.
        Cân bằng giữa bảo mật (AES-256) và hiệu suất (AES-128/GCM).
        """
        ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
        
        # Cấu hình cipher suites
        # Priority: AES-256-GCM > AES-128-GCM > ChaCha20
        # ChaCha20-Poly1305 tốt cho mobile/ARM devices
        cipher_list = ":".join([
            "ECDHE+AESGCM",
            "ECDHE+CHACHA20", 
            "ECDHE+AES",
            "RSA+AESGCM",
            "RSA+AES",
            "!aNULL",
            "!eNULL",
            "!MD5",
            "!DSS"
        ])
        
        try:
            ctx.set_ciphers(cipher_list)
        except ssl.SSLError as e:
            print(f"Cảnh báo: Không thể set cipher list: {e}")
        
        # Bảo mật options
        ctx.check_hostname = True
        ctx.verify_mode = ssl.CERT_REQUIRED
        ctx.load_default_certs()
        
        # Tắt compression (CRIME attack mitigation)
        ctx.options |= ssl.OP_NO_COMPRESSION
        
        # Bật session caching để tăng tốc reconnect
        ctx.set_default_verify_paths()
        
        # Timeout cho handshake
        ctx.timeout = 10
        
        return ctx
    
    @staticmethod
    def get_connection_info(ctx: ssl.SSLContext) -> dict:
        """
        Lấy thông tin cấu hình TLS của context.
        """
        return {
            "minimum_version": ctx.minimum_version.name,
            "maximum_version": ctx.maximum_version.name,
            "check_hostname": ctx.check_hostname,
            "verify_mode": ctx.verify_mode.name,
            "cipher_suites": TLSConfigurator.TLS13_CIPHERS
        }

Sử dụng

configurator = TLSConfigurator() ssl_ctx = configurator.create_optimized_context() info = configurator.get_connection_info(ssl_ctx) print(f"Cấu hình TLS: {info}")

Tích hợp WebSocket AI Streaming với HolySheep AI

Sau khi đã cấu hình TLS đúng cách, đây là code hoàn chỉnh để kết nối streaming chat với HolySheep AI. Nền tảng này có ưu điểm vượt trội: tỷ giá chỉ ¥1=$1 (tiết kiệm 85%+ so với các provider khác), hỗ trợ WeChat/Alipay, và độ trễ dưới 50ms. Giá cước 2026 cho các model phổ biến: GPT-4.1 $8/MTok, Claude Sonnet 4.5 $15/MTok, Gemini 2.5 Flash $2.50/MTok, và DeepSeek V3.2 chỉ $0.42/MTok.

import websocket
import ssl
import json
import threading
import time
from queue import Queue
from typing import Callable, Optional

class HolySheepWebSocketClient:
    """
    WebSocket client cho HolySheep AI với TLS configuration tối ưu.
    Hỗ trợ streaming real-time với độ trễ thấp.
    """
    
    def __init__(self, api_key: str):
        self.api_key = api_key
        self.base_url = "api.holysheep.ai"  # KHÔNG dùng api.openai.com
        self.ws = None
        self.connected = False
        self.message_queue = Queue()
        self._setup_ssl()
    
    def _setup_ssl(self):
        """Cấu hình TLS/SSL với best practices"""
        self.ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
        self.ssl_context.check_hostname = True
        self.ssl_context.verify_mode = ssl.CERT_REQUIRED
        self.ssl_context.load_default_certs()
        
        # TLS version: 1.2 hoặc 1.3
        self.ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2
        self.ssl_context.maximum_version = ssl.TLSVersion.TLSv1_3
        
        # Cipher suites tối ưu
        cipher_config = (
            "ECDHE+AESGCM:ECDHE+CHACHA20:DHE+AESGCM:"
            "DHE+CHACHA20:!aNULL:!MD5:!DSS"
        )
        try:
            self.ssl_context.set_ciphers(cipher_config)
        except ssl.SSLError:
            pass  # Fallback to system defaults
    
    def connect(self, timeout: int = 30) -> bool:
        """Kết nối WebSocket với HolySheep AI"""
        url = f"wss://{self.base_url}/v1/ws/chat"
        headers = {
            "Authorization": f"Bearer {self.api_key}",
            "X-TLS-Version": "1.3",
            "Accept": "application/json"
        }
        
        try:
            self.ws = websocket.WebSocket(
                sslopt={"cert_reqs": ssl.CERT_REQUIRED, 
                        "ciphers": "ECDHE+AESGCM:ECDHE+CHACHA20"}
            )
            
            self.ws.connect(
                url,
                header=headers,
                timeout=timeout,
                sslopt={"ca_certs": None, "cert_reqs": ssl.CERT_REQUIRED}
            )
            self.connected = True
            print("✅ Đã kết nối HolySheep AI WebSocket (TLS 1.3)")
            return True
            
        except websocket.WebSocketTimeoutException:
            print("⏰ Timeout kết nối - kiểm tra network/firewall")
            return False
        except ssl.SSLError as e:
            print(f"🔒 Lỗi SSL: {e}")
            return False
        except Exception as e:
            print(f"❌ Lỗi kết nối: {e}")
            return False
    
    def send_message(self, message: str, model: str = "gpt-4.1") -> None:
        """Gửi tin nhắn với streaming response"""
        if not self.connected:
            print("⚠️ Chưa kết nối, đang kết nối lại...")
            self.connect()
        
        payload = {
            "model": model,
            "messages": [
                {"role": "user", "content": message}
            ],
            "stream": True,
            "temperature": 0.7,
            "max_tokens": 2000
        }
        
        try:
            self.ws.send(json.dumps(payload))
            print(f"📤 Đã gửi message: {message[:50]}...")
        except Exception as e:
            print(f"❌ Lỗi gửi message: {e}")
    
    def receive_stream(self, callback: Callable[[str], None]) -> None:
        """Nhận streaming response với callback"""
        try:
            while self.connected:
                result = self.ws.recv()
                if result:
                    data = json.loads(result)
                    if "choices" in data:
                        delta = data["choices"][0].get("delta", {})
                        content = delta.get("content", "")
                        if content:
                            callback(content)
                    elif "error" in data:
                        print(f"❌ API Error: {data['error']}")
                        break
        except websocket.WebSocketConnectionClosedException:
            print("🔌 Kết nối đã đóng")
            self.connected = False
    
    def close(self):
        """Đóng kết nối WebSocket"""
        if self.ws:
            self.ws.close()
            self.connected = False
            print("🔒 Đã đóng kết nối")

Sử dụng example

if __name__ == "__main__": API_KEY = "YOUR_HOLYSHEEP_API_KEY" client = HolySheepWebSocketClient(API_KEY) if client.connect(): # Callback để xử lý streaming response def on_chunk(chunk): print(chunk, end="", flush=True) # Gửi message trong thread riêng def sender(): time.sleep(0.5) # Đợi connection ổn định client.send_message("Xin chào, giới thiệu về HolySheep AI", model="deepseek-v3.2") sender_thread = threading.Thread(target=sender) sender_thread.start() # Nhận response client.receive_stream(on_chunk) sender_thread.join() client.close()

Retry Logic và Error Handling nâng cao

Trong production, network interruption là điều không thể tránh khỏi. Tôi đã implement một retry mechanism với exponential backoff để đảm bảo reliability:

import time
import random
from functools import wraps
from typing import Callable, Any

class WebSocketRetryHandler:
    """
    Retry handler với exponential backoff cho WebSocket connections.
    Xử lý các lỗi TLS tạm thời một cách graceful.
    """
    
    # Các lỗi có thể retry được
    RETRYABLE_ERRORS = (
        "timeout",
        "connection reset",
        "temporary failure",
        "try again",
        "network unreachable",
        "connection refused"
    )
    
    # Các lỗi SSL/TLS có thể retry
    RETRYABLE_SSL_ERRORS = [
        "UNSUPPORTED_PROTOCOL",
        "CERTIFICATE_VERIFY_FAILED", 
        "WRONG_VERSION_NUMBER",
        "DECRYPTION_FAILED_OR_BAD_RECORD_MAC",
        "CONNECTION_TIMEOUT"
    ]
    
    def __init__(self, max_retries: int = 5, base_delay: float = 1.0):
        self.max_retries = max_retries
        self.base_delay = base_delay
        self.attempt_count = 0
    
    def is_retryable_error(self, error: str) -> bool:
        """Kiểm tra xem lỗi có thể retry được không"""
        error_lower = str(error).lower()
        return (
            any(retriable in error_lower 
                for retriable in self.RETRYABLE_ERRORS) or
            any(ssl_err in str(error) 
                for ssl_err in self.RETRYABLE_SSL_ERRORS)
        )
    
    def calculate_delay(self, attempt: int) -> float:
        """Tính delay với exponential backoff + jitter"""
        # Exponential: 1s, 2s, 4s, 8s, 16s...
        exponential_delay = self.base_delay * (2 ** attempt)
        
        # Jitter ngẫu nhiên ±25% để tránh thundering herd
        jitter = exponential_delay * 0.25 * random.uniform(-1, 1)
        
        # Giới hạn max delay là 30 giây
        return min(exponential_delay + jitter, 30.0)
    
    def retry_with_tls_fallback(self, func: Callable) -> Callable:
        """Decorator để retry với TLS fallback"""
        @wraps(func)
        def wrapper(*args, **kwargs) -> Any:
            self.attempt_count = 0
            
            while self.attempt_count <= self.max_retries:
                try:
                    return func(*args, **kwargs)
                    
                except ssl.SSLError as e:
                    error_msg = str(e)
                    self.attempt_count += 1
                    
                    if not self.is_retryable_error(error_msg):
                        print(f"❌ Lỗi SSL không thể retry: {error_msg}")
                        raise
                    
                    if self.attempt_count > self.max_retries:
                        print(f"❌ Quá số lần retry tối đa ({self.max_retries})")
                        raise
                    
                    delay = self.calculate_delay(self.attempt_count - 1)
                    print(f"⚠️ Retry #{self.attempt_count} sau {delay:.1f}s")
                    print(f"   Lý do: {error_msg}")
                    time.sleep(delay)
                    
                    # Thử TLS version thấp hơn nếu là protocol error
                    if "UNSUPPORTED_PROTOCOL" in error_msg:
                        print("🔄 Thử TLS 1.2 fallback...")
                        self._enable_tls12_fallback()
                        
                except Exception as e:
                    print(f"❌ Lỗi không xác định: {e}")
                    raise
            
            return None
        return wrapper
    
    def _enable_tls12_fallback(self):
        """Enable TLS 1.2 fallback - dùng khi server không hỗ trợ 1.3"""
        # Code để modify SSL context sang TLS 1.2 only
        pass

Sử dụng với client

retry_handler = WebSocketRetryHandler(max_retries=3, base_delay=2.0) @retry_handler.retry_with_tls_fallback def connect_with_retry(client: HolySheepWebSocketClient) -> bool: """Kết nối với retry logic""" return client.connect(timeout=30)

Test

result = connect_with_retry(client)

Lỗi thường gặp và cách khắc phục

Qua quá trình triển khai thực tế, tôi đã tổng hợp 5 lỗi phổ biến nhất khi làm việc với WebSocket TLS và cách giải quyết hiệu quả:

1. Lỗi "ssl.SSLError: [SSL: UNSUPPORTED_PROTOCOL] unsupported protocol version"

Nguyên nhân: Server yêu cầu TLS version cao hơn client đang sử dụng. Thường xảy ra khi server đã disable TLS 1.0/1.1 nhưng client cố sử dụng.

# Cách khắc phục: Cập nhật SSL context để hỗ trợ TLS 1.2/1.3
import ssl
import urllib3

Method 1: Sử dụng urllib3 với TLS version cụ thể

urllib3.disable_warnings() http = urllib3.PoolManager( cert_reqs='CERT_REQUIRED', ssl_min_version=ssl.TLSVersion.TLSv1_2 )

Method 2: Patch websocket library để sử dụng TLS 1.3

import websocket original_connect = websocket.WebSocket.connect def patched_connect(self, url, **kwargs): # Force TLS 1.3 sslopt = kwargs.get('sslopt', {}) sslopt['ssl_version'] = ssl.TLSVersion.TLSv1_3 kwargs['sslopt'] = sslopt return original_connect(self, url, **kwargs) websocket.WebSocket.connect = patched_connect

Method 3: System-wide Python SSL config

import certifi import ssl

Sử dụng certifi CA bundle thay vì system defaults

ssl_context = ssl.create_default_context(cafile=certifi.where()) ssl_context.minimum_version = ssl.TLSVersion.TLSv1_2 ssl_context.maximum_version = ssl.TLSVersion.TLSv1_3 print("Đã fix: TLS version không tương thích")

2. Lỗi "ssl.SSLCertVerificationError: certificate verify failed: self-signed certificate"

Nguyên nhân: Certificate verification thất bại do certificate tự ký hoặc CA bundle lỗi thời.

# Cách khắc phục:
import ssl
import certifi
from urllib3.util.ssl_ import create_urllib3_context

Method 1: Sử dụng certifi CA bundle (recommended)

ca_bundle_path = certifi.where() print(f"CA Bundle path: {ca_bundle_path}")

Method 2: Disable verification cho dev (KHÔNG dùng trong production!)

import os os.environ['CURL_CA_BUNDLE'] = '/path/to/ca-bundle.crt'

Method 3: Custom CA với HolySheep AI

import requests

Download và verify HolySheep AI certificate

response = requests.get( "https://api.holysheep.ai/v1/models", verify="/path/to/holysheep-ca.crt" # Path đến CA certificate ) print(f"Status: {response.status_code}")

Method 4: Custom SSL context cho WebSocket

ws_ssl_context = ssl.create_default_context() ws_ssl_context.load_verify_locations(certifi.where()) ws_ssl_context.check_hostname = True ws_ssl_context.verify_mode = ssl.CERT_REQUIRED print("Đã fix: Certificate verification thất bại")

3. Lỗi "websocket._exceptions.WebSocketTimeoutException: timed out"

Nguyên nhân: TLS handshake timeout do server busy, network latency cao, hoặc firewall blocking.

# Cách khắc phục với timeout strategy
import socket
import ssl
import websocket
from urllib3.util import wait_for_read

class WebSocketTimeoutFix:
    """
    Fix timeout issues với multiple strategies.
    """
    
    # Cấu hình socket level timeout
    SOCKET_TIMEOUT = 30  # seconds
    
    # Cấu hình TLS handshake timeout
    TLS_HANDSHAKE_TIMEOUT = 15  # seconds
    
    @staticmethod
    def create_timeout_socket() -> socket.socket:
        """Tạo socket với timeout phù hợp"""
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(WebSocketTimeoutFix.SOCKET_TIMEOUT)
        
        # TCP keepalive để duy trì connection
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
        sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_KEEPINTVL, 30)
        
        return sock
    
    @staticmethod
    def connect_with_extended_timeout():
        """Kết nối với timeout được tăng cường"""
        url = "wss://api.holysheep.ai/v1/ws/chat"
        
        # Custom headers để identify client
        headers = {
            "User-Agent": "HolySheep-WebSocket-Client/1.0",
            "Connection": "keep-alive"
        }
        
        # Extended timeout config
        ws = websocket.WebSocket(
            timeout=WebSocketTimeoutFix.SOCKET_TIMEOUT,
            ping_timeout=20,
            ping_interval=10
        )
        
        try:
            ws.connect(
                url,
                header=headers,
                timeout=WebSocketTimeoutFix.SOCKET_TIMEOUT,
                # Enable auto-reconnect
                enable_multithread=True
            )
            print("✅ Kết nối thành công với extended timeout")
            
        except websocket.WebSocketTimeoutException:
            print("⏰ Timeout - thử kết nối lại với backup server...")
            # Fallback to HTTP/1.1 if WebSocket fails
            return WebSocketTimeoutFix.fallback_http_streaming()
        
        return ws
    
    @staticmethod
    def fallback_http_streaming():
        """Fallback sang HTTP streaming nếu WebSocket timeout"""
        import requests
        
        api_key = "YOUR_HOLYSHEEP_API_KEY"
        headers = {
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        }
        
        payload = {
            "model": "deepseek-v3.2",
            "messages": [{"role": "user", "content": "Hello"}],
            "stream": True
        }
        
        # Sử dụng requests với streaming
        response = requests.post(
            "https://api.holysheep.ai/v1/chat/completions",
            json=payload,
            headers=headers,
            stream=True,
            timeout=(10, 60)  # (connect timeout, read timeout)
        )
        
        print(f"✅ HTTP Streaming fallback - Status: {response.status_code}")
        return response

print("Đã fix: Timeout issues với multiple fallback strategies")

4. Lỗi "403 Forbidden: TLS version negotiation failed"

Nguyên nhân: Server từ chối kết nối do TLS version hoặc cipher suite không được hỗ trợ.

# Cách khắc phục:
import ssl
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.ssl_ import create_urllib3_context

def fix_403_tls_error():
    """
    Fix 403 error do TLS negotiation thất bại.
    """
    # Method 1: Custom urllib3 context với cipher suite rộng hơn
    ctx = create_urllib3_context()
    ctx.minimum_version = ssl.TLSVersion.TLSv1_2
    ctx.maximum_version = ssl.TLSVersion.TLSv1_3
    
    # Enable all secure ciphers
    ctx.set_ciphers("ECDHE+AESGCM:ECDHE+AES:DHE+AESGCM:DHE+AES:!aNULL:!MD5")
    
    # Method 2: Use requests with custom adapter
    session = requests.Session()
    
    adapter = HTTPAdapter(
        max_retries=3,
        pool_connections=10,
        pool_maxsize=20,
        pool_block=False
    )
    
    session.mount("https://", adapter)
    
    # Method 3: Inspect server TLS capabilities trước
    import urllib3
    http = urllib3.PoolManager(ssl_context=ctx)
    
    # Test connection với TLS inspection
    try:
        response = http.request(
            "GET",
            "https://api.holysheep.ai/v1/models",
            headers={"Accept": "application/json"}
        )
        print(f"✅ TLS inspection OK - Status: {response.status}")
        print(f"   TLS Version used: {response.geturl()}")
    except Exception as e:
        print(f"❌ TLS inspection failed: {e}")
        
    # Method 4: Force specific TLS version
    import subprocess
    
    # Sử dụng curl để test TLS capabilities
    result = subprocess.run([
        "curl", "-v", "-tlsv1.2", "-tlsv1.3",
        "https://api.holysheep.ai/v1/models",
        "-H", "Authorization: Bearer YOUR_HOLYSHEEP_API_KEY"
    ], capture_output=True, text=True, timeout=30)
    
    print(f"Curl output: {result.stdout}")
    if "SSL connection" in result.stderr:
        print("✅ TLS connection verified via curl")

fix_403_tls_error()
print("Đã fix: 403 Forbidden do TLS negotiation")

5. Lỗi "Connection reset by peer" khi streaming response

Nguyên nhân: Server reset connection do keepalive timeout, large response, hoặc rate limiting.

# Cách khắc phục với streaming reconnect:
import websocket
import json
import threading
import time
from collections import deque

class StreamingReconnectHandler:
    """
    Xử lý streaming với automatic reconnection.
    """
    
    def __init__(self, api_key: str, model: str = "deepseek-v3.2"):
        self.api_key = api_key
        self.model = model
        self.ws = None
        self.response_buffer = deque()
        self.is_streaming = False
        self.reconnect_count = 0
        self.max_reconnects = 3
    
    def stream_with_reconnect(self, message: str) -> str:
        """
        Stream response với automatic reconnection.
        """
        accumulated_response = ""
        self.is_streaming = True
        
        while self.reconnect_count <= self.max_reconnects:
            try:
                self._ensure_connection()
                
                # Send request
                payload = {
                    "model": self.model,
                    "messages": [{"role": "user", "content": message}],
                    "stream": True
                }
                self.ws.send(json.dumps(payload))
                
                # Receive stream với buffering
                while self.is_streaming:
                    try:
                        data = self.ws.recv()
                        if data:
                            chunk = json.loads(data)
                            content = self._extract_content(chunk)
                            if content:
                                accumulated_response += content
                                self.response_buffer.append(content)
                                print(f"📥 Chunk: {content[:50]}...", end="\r")
                    except websocket.WebSocketConnectionClosedException:
                        print("\n🔌 Connection closed - attempting reconnect...")
                        self.reconnect_count += 1
                        if self.reconnect_count > self.max_reconnects:
                            break
                        time.sleep(2 ** self.reconnect_count)  # Backoff
                        break
                        
                return accumulated_response
                
            except Exception as e:
                print(f"❌ Stream error: {e}")
                self.reconnect_count += 1
                time.sleep(1)
        
        return accumulated_response
    
    def _ensure_connection(self):
        """Đảm bảo WebSocket đang kết nối"""
        if not self.ws or not self._is_connected():
            self.ws = websocket.WebSocket(
                sslopt={"cert_reqs": ssl.CERT_REQUIRED}
            )
            self.ws.connect(
                "wss://api.holysheep.ai/v1/ws/chat",
                header={"Authorization": f"Bearer {self.api_key}"},
                timeout