'update'
This commit is contained in:
32
review_worker.py
Normal file
32
review_worker.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from PyQt6.QtCore import QThread, pyqtSignal
|
||||
|
||||
class BookReviewWorker(QThread):
|
||||
"""后台获取书籍 AI 简评的线程(迁移自 ibook_export_app.py)。"""
|
||||
finished = pyqtSignal(str, str) # bookname, review
|
||||
|
||||
def __init__(self, bookname, prompt, json_path, parent=None):
|
||||
super().__init__(parent)
|
||||
self.bookname = bookname
|
||||
self.prompt = prompt
|
||||
self.json_path = json_path
|
||||
|
||||
def run(self):
|
||||
import json
|
||||
try:
|
||||
from ai_interface import DashScopeChatClient
|
||||
chat = DashScopeChatClient()
|
||||
review = chat.ask(self.prompt)
|
||||
except Exception as e:
|
||||
review = f"[AI简评获取失败: {e}]"
|
||||
try:
|
||||
try:
|
||||
with open(self.json_path, 'r', encoding='utf-8') as f:
|
||||
intro_dict = json.load(f)
|
||||
except Exception:
|
||||
intro_dict = {}
|
||||
intro_dict[self.bookname] = review
|
||||
with open(self.json_path, 'w', encoding='utf-8') as f:
|
||||
json.dump(intro_dict, f, ensure_ascii=False, indent=2)
|
||||
except Exception as e:
|
||||
print(f"写入 bookintro.json 失败: {e}")
|
||||
self.finished.emit(self.bookname, review)
|
||||
Reference in New Issue
Block a user