buzuai


Namebuzuai JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryPython client library for BuzuAI chat system via Socket.IO
upload_time2025-10-08 03:08:37
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords buzuai chatbot socketio ai chat
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # BuzuAI Python Client

[![Python Version](https://img.shields.io/pypi/pyversions/buzuai)](https://pypi.org/project/buzuai/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

Thư viện Python client để giao tiếp với hệ thống AI của BuzuAI qua Socket.IO.

## 🚀 Tính năng

- ✅ Kết nối real-time qua Socket.IO
- 🔄 Singleton pattern - tái sử dụng kết nối
- 📝 Logging tự động với emoji
- ⏱️ Chờ response từ AI (timeout 300s)
- 🎯 API đơn giản, dễ sử dụng
- 🐍 Hỗ trợ Python 3.7+
- 📦 Chuẩn PyPI, dễ dàng cài đặt

## 📦 Cài đặt

```bash
pip install buzuai
```

Hoặc cài đặt từ source:

```bash
git clone https://github.com/Luisnguyen1/buzuai.git
cd buzuai
pip install -e .
```

## 🎯 Sử dụng cơ bản

### Cách 1: Helper function (Đơn giản nhất)

```python
from buzuai import send_message_to_buzuai

# Gửi tin nhắn và nhận response
response = send_message_to_buzuai(
    user_id="user_123",
    message_text="Xin chào, bạn khỏe không?",
    language_code="vi"
)

if response:
    print("AI trả lời:", response)
else:
    print("Không nhận được response")
```

### Cách 2: Sử dụng client singleton

```python
from buzuai import get_buzuai_client

# Lấy client instance (singleton)
client = get_buzuai_client()

# Kết nối
if client.connect():
    print("✅ Đã kết nối")
    
    # Join room
    client.join_room("user_123")
    
    # Gửi tin nhắn và chờ response
    response = client.send_message(
        visitor_id="user_123",
        text="Hôm nay thời tiết thế nào?",
        language_code="vi"
    )
    
    if response:
        print("💬 AI:", response)
    
    # Ngắt kết nối
    client.disconnect()
```

### Cách 3: Tạo instance mới

```python
from buzuai import BuzuAIClient

# Tạo client instance mới
client = BuzuAIClient()

# Kết nối và sử dụng
if client.connect():
    response = client.send_message(
        visitor_id="user_123",
        text="Xin chào",
        language_code="vi"
    )
    print(response)
    client.disconnect()
```

### Ví dụ đầy đủ với logging

```python
from buzuai import get_buzuai_client
import logging

# Setup logging
logging.basicConfig(level=logging.INFO)

# Lấy client
client = get_buzuai_client()

# Kết nối
if not client.connect():
    print("❌ Không thể kết nối")
    exit(1)

print("✅ Đã kết nối thành công!")

# Gửi nhiều tin nhắn
questions = [
    "Xin chào!",
    "Bạn có thể giúp gì cho tôi?",
    "Hôm nay thời tiết thế nào?",
]

for question in questions:
    print(f"\n📤 Hỏi: {question}")
    response = client.send_message(
        visitor_id="user_123",
        text=question,
        language_code="vi"
    )
    
    if response:
        # Response có thể chứa: text, type, content, etc.
        text = response.get("text", response.get("content", ""))
        print(f"💬 AI: {text}")
    else:
        print("⚠️ Không nhận được response")

# Ngắt kết nối
client.disconnect()
print("👋 Đã ngắt kết nối")
```

## 📖 API Reference

### Helper Functions

#### `send_message_to_buzuai(user_id, message_text, language_code="vi")`

Helper function đơn giản nhất để gửi tin nhắn.

**Tham số:**
- `user_id` (str): ID của user
- `message_text` (str): Nội dung tin nhắn
- `language_code` (str): Mã ngôn ngữ (mặc định: "vi")

**Returns:** `Dict[str, Any]` hoặc `None`

**Ví dụ:**
```python
response = send_message_to_buzuai("user_123", "Xin chào")
```

#### `get_buzuai_client()`

Lấy singleton instance của BuzuAI client.

**Returns:** `BuzuAIClient`

**Ví dụ:**
```python
client = get_buzuai_client()
```

### `BuzuAIClient` Class

#### Constructor

```python
BuzuAIClient()
```

Không cần tham số. Sử dụng singleton pattern.

#### Methods

##### `connect() -> bool`

Kết nối đến BuzuAI server.

**Returns:** `True` nếu kết nối thành công

**Ví dụ:**
```python
if client.connect():
    print("Đã kết nối")
```

##### `join_room(visitor_id, bot_id=None) -> bool`

Join vào room chat với bot.

**Tham số:**
- `visitor_id` (str): ID của user
- `bot_id` (str, optional): ID của bot (mặc định: DEFAULT_BOT_ID)

**Returns:** `True` nếu join thành công

**Ví dụ:**
```python
client.join_room("user_123")
```

##### `send_message(visitor_id, text, language_code="vi") -> Optional[Dict[str, Any]]`

Gửi tin nhắn đến AI và chờ phản hồi.

**Tham số:**
- `visitor_id` (str): ID của user
- `text` (str): Nội dung tin nhắn
- `language_code` (str): Mã ngôn ngữ (mặc định: "vi")

**Returns:** Dict chứa response từ AI hoặc None nếu timeout/lỗi

**Ví dụ:**
```python
response = client.send_message("user_123", "Xin chào")
```

##### `disconnect()`

Ngắt kết nối khỏi server.

**Ví dụ:**
```python
client.disconnect()
```

#### Properties

##### `is_connected`

Kiểm tra trạng thái kết nối.

**Returns:** `bool`

**Ví dụ:**
```python
if client.is_connected:
    print("Đang kết nối")
```

#### Constants

- `DEFAULT_BOT_ID`: "4489b201-a08a-4d87-81e1-632bcbdb44a8"
- `BUZUAI_URL`: "https://api.buzuai.com/app-chat"
- `NAMESPACE`: "/app-chat"
- `RESPONSE_TIMEOUT`: 300 (seconds)

## 🔧 Cấu hình Logging

```python
import logging

# Bật logging với level INFO
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

# Sử dụng client - logging sẽ tự động hoạt động
from buzuai import get_buzuai_client
client = get_buzuai_client()
```

## 🔍 Các sự kiện Socket.IO

Thư viện tự động xử lý các sự kiện sau:

**Outgoing (Gửi đi):**
- `joinRoom` - Join vào room chat
- `sendMessageToAI` - Gửi tin nhắn đến AI

**Incoming (Nhận về):**
- `connect` - Khi kết nối thành công
- `disconnect` - Khi bị ngắt kết nối
- `receiveMessage` - Nhận response từ AI
- `receiveNotification` - Nhận thông báo từ hệ thống

## 🐛 Troubleshooting

### Không nhận được response

**Nguyên nhân:**
- Timeout (mặc định 300 giây)
- Bot đang bận
- Lỗi kết nối

**Giải pháp:**
```python
response = client.send_message(user_id, "test")
if response is None:
    print("Không nhận được response - thử lại")
```

### Không kết nối được

**Kiểm tra:**
```python
client = get_buzuai_client()
if not client.connect():
    print("Lỗi kết nối - kiểm tra internet")
```

### Bật debug logging

```python
import logging
logging.basicConfig(level=logging.DEBUG)
```

## � Ví dụ (Examples)

Thư viện đi kèm 3 file ví dụ:

### 1. `example_simple.py` - Đơn giản nhất
Sử dụng helper function để gửi 1 tin nhắn:
```bash
python example_simple.py
```

### 2. `example_multiple.py` - Gửi nhiều tin nhắn
Sử dụng client để gửi nhiều câu hỏi:
```bash
python example_multiple.py
```

### 3. `example_interactive.py` - Chế độ chat
Chat tương tác với AI như terminal chat:
```bash
python example_interactive.py
```

## 📋 Requirements

- Python >= 3.7
- python-socketio[client] >= 5.0.0

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🔗 Links

- **GitHub**: https://github.com/Luisnguyen1/buzuai
- **Issues**: https://github.com/Luisnguyen1/buzuai/issues
- **Homepage**: https://buzuai.com

## 📞 Support

Nếu bạn gặp vấn đề hoặc có câu hỏi:
- Mở issue trên GitHub: https://github.com/Luisnguyen1/buzuai/issues
- Email: support@buzuai.com

---

**Version:** 0.1.0  
**Python:** 3.7+  
Made with ❤️ by BuzuAI Team

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "buzuai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "buzuai, chatbot, socketio, ai, chat",
    "author": null,
    "author_email": "BuzuAI Team <support@buzuai.com>",
    "download_url": "https://files.pythonhosted.org/packages/61/48/91ca938d26d1d4c9e0a0b58eae6a31f13bb695fc45ff80deb7b259e72f9c/buzuai-0.1.0.tar.gz",
    "platform": null,
    "description": "# BuzuAI Python Client\r\n\r\n[![Python Version](https://img.shields.io/pypi/pyversions/buzuai)](https://pypi.org/project/buzuai/)\r\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\r\n\r\nTh\u01b0 vi\u1ec7n Python client \u0111\u1ec3 giao ti\u1ebfp v\u1edbi h\u1ec7 th\u1ed1ng AI c\u1ee7a BuzuAI qua Socket.IO.\r\n\r\n## \ud83d\ude80 T\u00ednh n\u0103ng\r\n\r\n- \u2705 K\u1ebft n\u1ed1i real-time qua Socket.IO\r\n- \ud83d\udd04 Singleton pattern - t\u00e1i s\u1eed d\u1ee5ng k\u1ebft n\u1ed1i\r\n- \ud83d\udcdd Logging t\u1ef1 \u0111\u1ed9ng v\u1edbi emoji\r\n- \u23f1\ufe0f Ch\u1edd response t\u1eeb AI (timeout 300s)\r\n- \ud83c\udfaf API \u0111\u01a1n gi\u1ea3n, d\u1ec5 s\u1eed d\u1ee5ng\r\n- \ud83d\udc0d H\u1ed7 tr\u1ee3 Python 3.7+\r\n- \ud83d\udce6 Chu\u1ea9n PyPI, d\u1ec5 d\u00e0ng c\u00e0i \u0111\u1eb7t\r\n\r\n## \ud83d\udce6 C\u00e0i \u0111\u1eb7t\r\n\r\n```bash\r\npip install buzuai\r\n```\r\n\r\nHo\u1eb7c c\u00e0i \u0111\u1eb7t t\u1eeb source:\r\n\r\n```bash\r\ngit clone https://github.com/Luisnguyen1/buzuai.git\r\ncd buzuai\r\npip install -e .\r\n```\r\n\r\n## \ud83c\udfaf S\u1eed d\u1ee5ng c\u01a1 b\u1ea3n\r\n\r\n### C\u00e1ch 1: Helper function (\u0110\u01a1n gi\u1ea3n nh\u1ea5t)\r\n\r\n```python\r\nfrom buzuai import send_message_to_buzuai\r\n\r\n# G\u1eedi tin nh\u1eafn v\u00e0 nh\u1eadn response\r\nresponse = send_message_to_buzuai(\r\n    user_id=\"user_123\",\r\n    message_text=\"Xin ch\u00e0o, b\u1ea1n kh\u1ecfe kh\u00f4ng?\",\r\n    language_code=\"vi\"\r\n)\r\n\r\nif response:\r\n    print(\"AI tr\u1ea3 l\u1eddi:\", response)\r\nelse:\r\n    print(\"Kh\u00f4ng nh\u1eadn \u0111\u01b0\u1ee3c response\")\r\n```\r\n\r\n### C\u00e1ch 2: S\u1eed d\u1ee5ng client singleton\r\n\r\n```python\r\nfrom buzuai import get_buzuai_client\r\n\r\n# L\u1ea5y client instance (singleton)\r\nclient = get_buzuai_client()\r\n\r\n# K\u1ebft n\u1ed1i\r\nif client.connect():\r\n    print(\"\u2705 \u0110\u00e3 k\u1ebft n\u1ed1i\")\r\n    \r\n    # Join room\r\n    client.join_room(\"user_123\")\r\n    \r\n    # G\u1eedi tin nh\u1eafn v\u00e0 ch\u1edd response\r\n    response = client.send_message(\r\n        visitor_id=\"user_123\",\r\n        text=\"H\u00f4m nay th\u1eddi ti\u1ebft th\u1ebf n\u00e0o?\",\r\n        language_code=\"vi\"\r\n    )\r\n    \r\n    if response:\r\n        print(\"\ud83d\udcac AI:\", response)\r\n    \r\n    # Ng\u1eaft k\u1ebft n\u1ed1i\r\n    client.disconnect()\r\n```\r\n\r\n### C\u00e1ch 3: T\u1ea1o instance m\u1edbi\r\n\r\n```python\r\nfrom buzuai import BuzuAIClient\r\n\r\n# T\u1ea1o client instance m\u1edbi\r\nclient = BuzuAIClient()\r\n\r\n# K\u1ebft n\u1ed1i v\u00e0 s\u1eed d\u1ee5ng\r\nif client.connect():\r\n    response = client.send_message(\r\n        visitor_id=\"user_123\",\r\n        text=\"Xin ch\u00e0o\",\r\n        language_code=\"vi\"\r\n    )\r\n    print(response)\r\n    client.disconnect()\r\n```\r\n\r\n### V\u00ed d\u1ee5 \u0111\u1ea7y \u0111\u1ee7 v\u1edbi logging\r\n\r\n```python\r\nfrom buzuai import get_buzuai_client\r\nimport logging\r\n\r\n# Setup logging\r\nlogging.basicConfig(level=logging.INFO)\r\n\r\n# L\u1ea5y client\r\nclient = get_buzuai_client()\r\n\r\n# K\u1ebft n\u1ed1i\r\nif not client.connect():\r\n    print(\"\u274c Kh\u00f4ng th\u1ec3 k\u1ebft n\u1ed1i\")\r\n    exit(1)\r\n\r\nprint(\"\u2705 \u0110\u00e3 k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng!\")\r\n\r\n# G\u1eedi nhi\u1ec1u tin nh\u1eafn\r\nquestions = [\r\n    \"Xin ch\u00e0o!\",\r\n    \"B\u1ea1n c\u00f3 th\u1ec3 gi\u00fap g\u00ec cho t\u00f4i?\",\r\n    \"H\u00f4m nay th\u1eddi ti\u1ebft th\u1ebf n\u00e0o?\",\r\n]\r\n\r\nfor question in questions:\r\n    print(f\"\\n\ud83d\udce4 H\u1ecfi: {question}\")\r\n    response = client.send_message(\r\n        visitor_id=\"user_123\",\r\n        text=question,\r\n        language_code=\"vi\"\r\n    )\r\n    \r\n    if response:\r\n        # Response c\u00f3 th\u1ec3 ch\u1ee9a: text, type, content, etc.\r\n        text = response.get(\"text\", response.get(\"content\", \"\"))\r\n        print(f\"\ud83d\udcac AI: {text}\")\r\n    else:\r\n        print(\"\u26a0\ufe0f Kh\u00f4ng nh\u1eadn \u0111\u01b0\u1ee3c response\")\r\n\r\n# Ng\u1eaft k\u1ebft n\u1ed1i\r\nclient.disconnect()\r\nprint(\"\ud83d\udc4b \u0110\u00e3 ng\u1eaft k\u1ebft n\u1ed1i\")\r\n```\r\n\r\n## \ud83d\udcd6 API Reference\r\n\r\n### Helper Functions\r\n\r\n#### `send_message_to_buzuai(user_id, message_text, language_code=\"vi\")`\r\n\r\nHelper function \u0111\u01a1n gi\u1ea3n nh\u1ea5t \u0111\u1ec3 g\u1eedi tin nh\u1eafn.\r\n\r\n**Tham s\u1ed1:**\r\n- `user_id` (str): ID c\u1ee7a user\r\n- `message_text` (str): N\u1ed9i dung tin nh\u1eafn\r\n- `language_code` (str): M\u00e3 ng\u00f4n ng\u1eef (m\u1eb7c \u0111\u1ecbnh: \"vi\")\r\n\r\n**Returns:** `Dict[str, Any]` ho\u1eb7c `None`\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nresponse = send_message_to_buzuai(\"user_123\", \"Xin ch\u00e0o\")\r\n```\r\n\r\n#### `get_buzuai_client()`\r\n\r\nL\u1ea5y singleton instance c\u1ee7a BuzuAI client.\r\n\r\n**Returns:** `BuzuAIClient`\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nclient = get_buzuai_client()\r\n```\r\n\r\n### `BuzuAIClient` Class\r\n\r\n#### Constructor\r\n\r\n```python\r\nBuzuAIClient()\r\n```\r\n\r\nKh\u00f4ng c\u1ea7n tham s\u1ed1. S\u1eed d\u1ee5ng singleton pattern.\r\n\r\n#### Methods\r\n\r\n##### `connect() -> bool`\r\n\r\nK\u1ebft n\u1ed1i \u0111\u1ebfn BuzuAI server.\r\n\r\n**Returns:** `True` n\u1ebfu k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nif client.connect():\r\n    print(\"\u0110\u00e3 k\u1ebft n\u1ed1i\")\r\n```\r\n\r\n##### `join_room(visitor_id, bot_id=None) -> bool`\r\n\r\nJoin v\u00e0o room chat v\u1edbi bot.\r\n\r\n**Tham s\u1ed1:**\r\n- `visitor_id` (str): ID c\u1ee7a user\r\n- `bot_id` (str, optional): ID c\u1ee7a bot (m\u1eb7c \u0111\u1ecbnh: DEFAULT_BOT_ID)\r\n\r\n**Returns:** `True` n\u1ebfu join th\u00e0nh c\u00f4ng\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nclient.join_room(\"user_123\")\r\n```\r\n\r\n##### `send_message(visitor_id, text, language_code=\"vi\") -> Optional[Dict[str, Any]]`\r\n\r\nG\u1eedi tin nh\u1eafn \u0111\u1ebfn AI v\u00e0 ch\u1edd ph\u1ea3n h\u1ed3i.\r\n\r\n**Tham s\u1ed1:**\r\n- `visitor_id` (str): ID c\u1ee7a user\r\n- `text` (str): N\u1ed9i dung tin nh\u1eafn\r\n- `language_code` (str): M\u00e3 ng\u00f4n ng\u1eef (m\u1eb7c \u0111\u1ecbnh: \"vi\")\r\n\r\n**Returns:** Dict ch\u1ee9a response t\u1eeb AI ho\u1eb7c None n\u1ebfu timeout/l\u1ed7i\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nresponse = client.send_message(\"user_123\", \"Xin ch\u00e0o\")\r\n```\r\n\r\n##### `disconnect()`\r\n\r\nNg\u1eaft k\u1ebft n\u1ed1i kh\u1ecfi server.\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nclient.disconnect()\r\n```\r\n\r\n#### Properties\r\n\r\n##### `is_connected`\r\n\r\nKi\u1ec3m tra tr\u1ea1ng th\u00e1i k\u1ebft n\u1ed1i.\r\n\r\n**Returns:** `bool`\r\n\r\n**V\u00ed d\u1ee5:**\r\n```python\r\nif client.is_connected:\r\n    print(\"\u0110ang k\u1ebft n\u1ed1i\")\r\n```\r\n\r\n#### Constants\r\n\r\n- `DEFAULT_BOT_ID`: \"4489b201-a08a-4d87-81e1-632bcbdb44a8\"\r\n- `BUZUAI_URL`: \"https://api.buzuai.com/app-chat\"\r\n- `NAMESPACE`: \"/app-chat\"\r\n- `RESPONSE_TIMEOUT`: 300 (seconds)\r\n\r\n## \ud83d\udd27 C\u1ea5u h\u00ecnh Logging\r\n\r\n```python\r\nimport logging\r\n\r\n# B\u1eadt logging v\u1edbi level INFO\r\nlogging.basicConfig(\r\n    level=logging.INFO,\r\n    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'\r\n)\r\n\r\n# S\u1eed d\u1ee5ng client - logging s\u1ebd t\u1ef1 \u0111\u1ed9ng ho\u1ea1t \u0111\u1ed9ng\r\nfrom buzuai import get_buzuai_client\r\nclient = get_buzuai_client()\r\n```\r\n\r\n## \ud83d\udd0d C\u00e1c s\u1ef1 ki\u1ec7n Socket.IO\r\n\r\nTh\u01b0 vi\u1ec7n t\u1ef1 \u0111\u1ed9ng x\u1eed l\u00fd c\u00e1c s\u1ef1 ki\u1ec7n sau:\r\n\r\n**Outgoing (G\u1eedi \u0111i):**\r\n- `joinRoom` - Join v\u00e0o room chat\r\n- `sendMessageToAI` - G\u1eedi tin nh\u1eafn \u0111\u1ebfn AI\r\n\r\n**Incoming (Nh\u1eadn v\u1ec1):**\r\n- `connect` - Khi k\u1ebft n\u1ed1i th\u00e0nh c\u00f4ng\r\n- `disconnect` - Khi b\u1ecb ng\u1eaft k\u1ebft n\u1ed1i\r\n- `receiveMessage` - Nh\u1eadn response t\u1eeb AI\r\n- `receiveNotification` - Nh\u1eadn th\u00f4ng b\u00e1o t\u1eeb h\u1ec7 th\u1ed1ng\r\n\r\n## \ud83d\udc1b Troubleshooting\r\n\r\n### Kh\u00f4ng nh\u1eadn \u0111\u01b0\u1ee3c response\r\n\r\n**Nguy\u00ean nh\u00e2n:**\r\n- Timeout (m\u1eb7c \u0111\u1ecbnh 300 gi\u00e2y)\r\n- Bot \u0111ang b\u1eadn\r\n- L\u1ed7i k\u1ebft n\u1ed1i\r\n\r\n**Gi\u1ea3i ph\u00e1p:**\r\n```python\r\nresponse = client.send_message(user_id, \"test\")\r\nif response is None:\r\n    print(\"Kh\u00f4ng nh\u1eadn \u0111\u01b0\u1ee3c response - th\u1eed l\u1ea1i\")\r\n```\r\n\r\n### Kh\u00f4ng k\u1ebft n\u1ed1i \u0111\u01b0\u1ee3c\r\n\r\n**Ki\u1ec3m tra:**\r\n```python\r\nclient = get_buzuai_client()\r\nif not client.connect():\r\n    print(\"L\u1ed7i k\u1ebft n\u1ed1i - ki\u1ec3m tra internet\")\r\n```\r\n\r\n### B\u1eadt debug logging\r\n\r\n```python\r\nimport logging\r\nlogging.basicConfig(level=logging.DEBUG)\r\n```\r\n\r\n## \ufffd V\u00ed d\u1ee5 (Examples)\r\n\r\nTh\u01b0 vi\u1ec7n \u0111i k\u00e8m 3 file v\u00ed d\u1ee5:\r\n\r\n### 1. `example_simple.py` - \u0110\u01a1n gi\u1ea3n nh\u1ea5t\r\nS\u1eed d\u1ee5ng helper function \u0111\u1ec3 g\u1eedi 1 tin nh\u1eafn:\r\n```bash\r\npython example_simple.py\r\n```\r\n\r\n### 2. `example_multiple.py` - G\u1eedi nhi\u1ec1u tin nh\u1eafn\r\nS\u1eed d\u1ee5ng client \u0111\u1ec3 g\u1eedi nhi\u1ec1u c\u00e2u h\u1ecfi:\r\n```bash\r\npython example_multiple.py\r\n```\r\n\r\n### 3. `example_interactive.py` - Ch\u1ebf \u0111\u1ed9 chat\r\nChat t\u01b0\u01a1ng t\u00e1c v\u1edbi AI nh\u01b0 terminal chat:\r\n```bash\r\npython example_interactive.py\r\n```\r\n\r\n## \ud83d\udccb Requirements\r\n\r\n- Python >= 3.7\r\n- python-socketio[client] >= 5.0.0\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nContributions are welcome! Please feel free to submit a Pull Request.\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\udd17 Links\r\n\r\n- **GitHub**: https://github.com/Luisnguyen1/buzuai\r\n- **Issues**: https://github.com/Luisnguyen1/buzuai/issues\r\n- **Homepage**: https://buzuai.com\r\n\r\n## \ud83d\udcde Support\r\n\r\nN\u1ebfu b\u1ea1n g\u1eb7p v\u1ea5n \u0111\u1ec1 ho\u1eb7c c\u00f3 c\u00e2u h\u1ecfi:\r\n- M\u1edf issue tr\u00ean GitHub: https://github.com/Luisnguyen1/buzuai/issues\r\n- Email: support@buzuai.com\r\n\r\n---\r\n\r\n**Version:** 0.1.0  \r\n**Python:** 3.7+  \r\nMade with \u2764\ufe0f by BuzuAI Team\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python client library for BuzuAI chat system via Socket.IO",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/Luisnguyen1/buzuai#readme",
        "Homepage": "https://github.com/Luisnguyen1/buzuai",
        "Issues": "https://github.com/Luisnguyen1/buzuai/issues",
        "Repository": "https://github.com/Luisnguyen1/buzuai"
    },
    "split_keywords": [
        "buzuai",
        " chatbot",
        " socketio",
        " ai",
        " chat"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3904b884e306eac12bc483211cb70849c345bbeacf6e4ba766449ebaec197b3d",
                "md5": "54e596c7cd5f96ddcb6bafb61d5396d4",
                "sha256": "52c568c3a69258b10d3341e2b8267eadcb6831e451adda44d7b0464edf017295"
            },
            "downloads": -1,
            "filename": "buzuai-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "54e596c7cd5f96ddcb6bafb61d5396d4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 11374,
            "upload_time": "2025-10-08T03:08:36",
            "upload_time_iso_8601": "2025-10-08T03:08:36.442017Z",
            "url": "https://files.pythonhosted.org/packages/39/04/b884e306eac12bc483211cb70849c345bbeacf6e4ba766449ebaec197b3d/buzuai-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "614891ca938d26d1d4c9e0a0b58eae6a31f13bb695fc45ff80deb7b259e72f9c",
                "md5": "56643eb71f68f3a84b0880c76027f604",
                "sha256": "fde96fa69c42e91dae691f2d40f5b9214b99775fe920cfbe0b96b61f0c124d0e"
            },
            "downloads": -1,
            "filename": "buzuai-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "56643eb71f68f3a84b0880c76027f604",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 11280,
            "upload_time": "2025-10-08T03:08:37",
            "upload_time_iso_8601": "2025-10-08T03:08:37.890549Z",
            "url": "https://files.pythonhosted.org/packages/61/48/91ca938d26d1d4c9e0a0b58eae6a31f13bb695fc45ff80deb7b259e72f9c/buzuai-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-08 03:08:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Luisnguyen1",
    "github_project": "buzuai#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "buzuai"
}
        
Elapsed time: 2.44601s