Привет, вот мой код:
```py
# app.py

import os
import json
import eventlet

eventlet.monkey_patch()

from flask import Flask, render_template, request
from flask_socketio import SocketIO, emit
import openai
import webview
from database import ChatDatabase

# Инициализация Flask приложения
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
socketio = SocketIO(app, async_mode='eventlet')

# Инициализация базы данных
db = ChatDatabase()

# Инициализация OpenAI API
OPENAI_API_KEY = "<TRUFFLEHOG_REDACTED_OPENAI>"
if not OPENAI_API_KEY:
    raise ValueError("OpenAI API ключ не установлен. Пожалуйста, установите переменную окружения OPENAI_API_KEY.")
openai.api_key = OPENAI_API_KEY


# Маршруты Flask
@app.route('/')
def index():
    return render_template('index.html')


# Обработчики SocketIO
@socketio.on('connect')
def handle_connect():
    print('Client connected')
    chats = db.get_chats()
    emit('chats_list', {'chats': chats})


@socketio.on('create_chat')
def handle_create_chat(data):
    chat_name = data.get('name', 'Новый чат')
    chat_id = db.create_chat(chat_name)
    emit('chat_created', {'chat_id': chat_id, 'chat_name': chat_name}, broadcast=True)


@socketio.on('get_messages')
def handle_get_messages(data):
    chat_id = data.get('chat_id')
    messages = db.get_messages(chat_id)
    emit('chat_messages', {'messages': messages})


@socketio.on('send_message')
def handle_send_message(data):
    chat_id = data.get('chat_id')
    message_content = data.get('content')
    db.save_message(chat_id, 'user', message_content)
    emit('new_message', {'sender': 'user', 'content': message_content}, room=request.sid)

    try:
        # Получение ответа от OpenAI API
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=[{'role': 'user', 'content': message_content}],
            stream=True
        )

        # Стриминг ответа
        bot_message = ''
        for chunk in response:
            if 'choices' in chunk and len(chunk['choices']) > 0:
                delta = chunk['choices'][0]['delta']
                if 'content' in delta:
                    content = delta['content']
                    bot_message += content
                    emit('stream_message', {'content': content}, room=request.sid)
                    eventlet.sleep(0.01)  # Небольшая задержка для плавности

        db.save_message(chat_id, 'bot', bot_message)
    except openai.error.OpenAIError as e:
        emit('error', {'message': str(e)}, room=request.sid)


@socketio.on('regenerate_message')
def handle_regenerate_message(data):
    chat_id = data.get('chat_id')
    message_id = data.get('message_id')
    # Удаляем сообщения из базы данных после указанного
    db.delete_messages_from(chat_id, message_id)
    # Ре-инициализируем чат и получаем новый ответ
    # Здесь нужно добавить код для генерации нового ответа


@socketio.on('delete_chat')
def handle_delete_chat(data):
    chat_id = data.get('chat_id')
    db.delete_chat(chat_id)
    emit('chat_deleted', {'chat_id': chat_id}, broadcast=True)


if __name__ == '__main__':
    window = webview.create_window('Chatbot', 'http://localhost:5002', width=800, height=600)
    def start_server():
        print("start_server")
        socketio.run(app, port=5002)
    import threading
    server = threading.Thread(target=start_server)
    server.daemon = True
    server.start()
    webview.start()

```

Почему-то окно открывается webview, но вот в нем ничего нет, сервер `http://localhost:5002/` тоже не работает