Skip to content

1.0.3

Choose a tag to compare

@phuongdev89 phuongdev89 released this 20 Aug 16:06
· 21 commits to main since this release

[1.0.3] - 2026-08-20

✨ Tính Năng Mới (Added)

  • Tích hợp Nhà cung cấp OpenAI & Tương thích (OpenAI-Compatible Providers):
    • Hỗ trợ kết nối tới OpenAI chính hãng và toàn bộ các nền tảng LLM tương thích (OpenRouter, DeepSeek, Groq, Ollama, LM Studio, vLLM, Together AI, v.v.).
    • Tự động chuẩn hóa Base URL và endpoint /chat/completions, tự động xử lý tiền tố và hậu tố URL.
  • Bảng Quản Lý Model Checkbox Cho OpenAI (OpenAIModelSelectorWidget):
    • Giao diện dạng lưới 2 cột cuộn mượt mà tương tự bộ chọn model Gemini.
    • Tự động sắp xếp danh sách model theo thứ tự chữ cái A-Z và gom nhóm các model tư duy (Thinking) về cuối.
    • Thanh nhập nhanh + Thêm model tùy chỉnh hỗ trợ thêm một hoặc nhiều model cùng lúc (phân tách bằng dấu phẩy).
    • Nút 🗑 Xóa tất cả dành riêng cho chế độ OpenAI để làm sạch toàn bộ danh sách khi cần.
    • Các công cụ chọn nhanh: Chọn tất cả, Bỏ chọn.
  • Tự Động Tải Danh Sách Model Từ API (fetch_openai_models_from_api):
    • Tự động truy vấn endpoint /models từ bất kỳ Base URL nào.
    • Tự động lọc bỏ các model không phải LLM hội thoại (embeddings, whisper, tts, dall-e, vision, moderation, v.v.).
  • Kiểm Tra Thực Tế Bất Đồng Bộ Không Treo Giao Diện (TestAIModelsWorker):
    • Chạy trên luồng nền QThread riêng biệt, giao diện luôn mượt mà trong suốt quá trình kiểm tra.
    • Hiệu ứng xoay và tiến trình trực tiếp: Model đang kiểm tra lập tức hiển thị ⏳ model_name (Đang test...) kèm màu tím sáng.
    • Nút ⏹ Dừng test động: Nút bắt đầu test tự động đổi sang màu đỏ ⏹ Dừng test (i/N), cho phép người dùng hủy bỏ quá trình kiểm tra bất kỳ lúc nào.
  • Hệ Thống Chỉ Báo Trạng Thái Màu Sắc Trực Quan:
    • 🟡 Màu Vàng / Hổ phách (#D97706): Model mới thêm vào hoặc vừa fetch từ API (Chưa kiểm tra).
    • 🟣 Màu Tím / Indigo (#4F46E5): Model đang được kiểm tra trực tiếp.
    • 🟢 Màu Xanh lá cây (#047857): Model đã kiểm tra qua API thành công, trả về JSON thuần hợp lệ (hiển thị model_name ✓).
    • 🔴 Màu Đỏ (#DC2626 / #EF4444): Model gặp lỗi API hoặc thuộc dòng Thinking / Reasoner (tự động loại trừ và vô hiệu hóa).

🛠 Cải Tiến & Tối Ưu (Changed)

  • Hỗ Trợ Phản Hồi Server-Sent Events (SSE) Streaming (extract_chat_completion_response):
    • Tự động ghép nối các chunk data: {"id":...} thành chuỗi hoàn chỉnh khi kết nối qua các proxy/gateway có bật SSE Stream.
    • Luôn gửi kèm "stream": False trong payload request để ưu tiên nhận JSON trực tiếp.
  • Bộ Phân Tích JSON Siêu Bền Bỉ (parse_json_from_response):
    • Tự động bóc tách và loại bỏ khối <think>...</think> / <reasoning>...</reasoning>.
    • Hỗ trợ khôi phục JSON khi thiếu đóng ngoặc nhọn, xử lý dấu phẩy thừa (trailing commas), chuỗi chứa ký tự xuống dòng chưa escape (strict=False).
  • Cơ Chế Fallback Role User: Tự động chuyển đổi từ role: system sang gộp vào role: user nếu model không hỗ trợ system prompt (như một số dòng model o1/o3 hoặc custom proxy).

🐛 Sửa Lỗi (Fixed)

  • Sửa lỗi văng TypeError: verify_single_model_pure_json() unexpected keyword argument 'model'.
  • Sửa lỗi hiển thị nguyên chuỗi thẻ HTML <span> và <s> trên văn bản của checkbox Qt.
  • Sửa lỗi JSONDecodeError: Line 1 khi phản hồi từ proxy bắt đầu bằng data: {"id":....
  • Bổ sung 56 bài kiểm thử tự động (Unit Tests) với độ bao phủ toàn diện từ Core Analyzer, SQLite Repository, Worker Threads đến Giao diện PyQt6.