[{"data":1,"prerenderedAt":493},["ShallowReactive",2],{"content-\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-setup":3,"children-\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-setup":492,"twin-\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-setup":487},{"id":4,"title":5,"author":6,"body":7,"budget_tier":6,"build_tags":6,"created":6,"description":483,"document_type":484,"extension":485,"game":6,"install":36,"investment_tier":6,"league":6,"meta":486,"navigation":487,"patch":6,"path":488,"plugin":24,"profit_per_hour":6,"ratings":6,"seo":489,"skills_count":6,"status":6,"stem":490,"strategy_tier":6,"tags":6,"updated":6,"version":6,"weight":6,"__hash__":491},"content\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-setup.md","aio-epub-setup",null,{"type":8,"value":9,"toc":462},"minimark",[10,37,42,45,50,53,79,91,95,117,125,129,132,146,151,175,179,229,233,237,240,250,254,262,266,272,276,279,283,289,293,296,302,306,378,382,385,447],[11,12,13],"blockquote",{},[14,15,16,17,25,26,25,30,33,34],"p",{},"From plugin ",[18,19,21],"a",{"href":20},"\u002Fplugins\u002Faio-epub-translate",[22,23,24],"strong",{},"aio-epub-translate"," · ",[27,28,29],"code",{},"v4.0.0",[22,31,32],{},"Install:"," ",[27,35,36],{},"\u002Fplugin install aio-epub-translate@aiocean-plugins",[38,39,41],"h1",{"id":40},"epub-setup-account-license-configuration","EPUB Setup — Account & License Configuration",[14,43,44],{},"Hướng dẫn đăng ký tài khoản, mua license, và cấu hình API key để sử dụng dịch vụ dịch EPUB.",[46,47,49],"h2",{"id":48},"tổng-quan","Tổng quan",[14,51,52],{},"Dịch vụ EPUB Translation gồm 2 phần:",[54,55,56,69],"ul",{},[57,58,59,62,63,68],"li",{},[22,60,61],{},"Web app",": ",[18,64,65],{"href":65,"rel":66},"https:\u002F\u002Fread.aiocean.io",[67],"nofollow"," — giao diện đọc và dịch sách",[57,70,71,62,74,78],{},[22,72,73],{},"API server",[18,75,76],{"href":76,"rel":77},"https:\u002F\u002Fread-api.aiocean.dev",[67]," — ConnectRPC API cho AI agents",[11,80,81],{},[14,82,83,86,87,90],{},[22,84,85],{},"Prerequisite",": Đây là skill đầu tiên trong workflow. Sau khi setup xong, dùng ",[27,88,89],{},"aio-epub-upload"," để tải sách lên.",[46,92,94],{"id":93},"bước-1-đăng-ký-tài-khoản","Bước 1: Đăng ký tài khoản",[96,97,98,104,111,114],"ol",{},[57,99,100,101],{},"Truy cập ",[18,102,65],{"href":65,"rel":103},[67],[57,105,106,107,110],{},"Click ",[22,108,109],{},"Sign In"," ở góc trên phải",[57,112,113],{},"Đăng nhập bằng tài khoản Google hoặc email",[57,115,116],{},"Sau khi đăng nhập, bạn có thể duyệt sách cộng đồng và khám phá giao diện",[11,118,119],{},[14,120,121,124],{},[22,122,123],{},"Guest mode",": Bạn có thể khám phá toàn bộ tính năng mà chưa cần đăng nhập. Chỉ khi thực hiện hành động (dịch, upload, lưu) mới cần xác thực.",[46,126,128],{"id":127},"bước-2-mua-license","Bước 2: Mua License",[14,130,131],{},"License cho phép bạn:",[54,133,134,137,140,143],{},[57,135,136],{},"Upload sách EPUB lên server",[57,138,139],{},"Dịch sách bằng AI (sử dụng models trên server)",[57,141,142],{},"Xuất sách đã dịch (bilingual hoặc translation-only)",[57,144,145],{},"Sử dụng API cho AI agents",[147,148,150],"h3",{"id":149},"cách-mua","Cách mua",[96,152,153,159,169,172],{},[57,154,155,156],{},"Đăng nhập tại ",[18,157,65],{"href":65,"rel":158},[67],[57,160,161,162,165,166],{},"Vào ",[22,163,164],{},"Settings"," → ",[22,167,168],{},"License",[57,170,171],{},"Chọn gói phù hợp và thanh toán",[57,173,174],{},"License key sẽ hiển thị trong Settings sau khi thanh toán",[147,176,178],{"id":177},"gói-license","Gói license",[180,181,182,195],"table",{},[183,184,185],"thead",{},[186,187,188,192],"tr",{},[189,190,191],"th",{},"Gói",[189,193,194],{},"Mô tả",[196,197,198,209,219],"tbody",{},[186,199,200,206],{},[201,202,203],"td",{},[22,204,205],{},"Free",[201,207,208],{},"Đọc sách cộng đồng, xem demo",[186,210,211,216],{},[201,212,213],{},[22,214,215],{},"Personal",[201,217,218],{},"Upload sách, dịch bằng AI, xuất EPUB",[186,220,221,226],{},[201,222,223],{},[22,224,225],{},"Pro",[201,227,228],{},"Tất cả tính năng + API access cho agents",[46,230,232],{"id":231},"bước-3-cấu-hình-api-key","Bước 3: Cấu hình API Key",[147,234,236],{"id":235},"cho-ai-agent-claude-code","Cho AI Agent (Claude Code)",[14,238,239],{},"Thêm API key vào environment variable hoặc trực tiếp trong code:",[241,242,248],"pre",{"className":243,"code":245,"language":246,"meta":247},[244],"language-bash","# Option 1: Environment variable (khuyến nghị)\nexport AIO_EPUB_API_KEY=\"your-license-key-here\"\n\n# Option 2: Thêm vào .env file của project\necho 'AIO_EPUB_API_KEY=your-license-key-here' >> .env\n","bash","",[27,249,245],{"__ignoreMap":247},[147,251,253],{"id":252},"verify-kết-nối","Verify kết nối",[241,255,260],{"className":256,"code":258,"language":259,"meta":247},[257],"language-python","import json, urllib.request, os\n\nBASE = \"https:\u002F\u002Fread-api.aiocean.dev\u002FListBooks.v1.BookService\"\nKEY = os.environ.get(\"AIO_EPUB_API_KEY\", \"\")\n\nif not KEY:\n    print(\"ERROR: AIO_EPUB_API_KEY not set\")\n    print(\"Run: export AIO_EPUB_API_KEY='your-license-key'\")\n    exit(1)\n\ndef api(method, body):\n    data = json.dumps(body).encode('utf-8')\n    req = urllib.request.Request(f\"{BASE}\u002F{method}\", data=data, headers={\n        \"Content-Type\": \"application\u002Fjson\",\n        \"X-License-Key\": KEY\n    })\n    with urllib.request.urlopen(req) as resp:\n        return json.loads(resp.read())\n\n# Test: validate license\ntry:\n    result = api(\"ValidateLicense\", {\"licenseKey\": KEY})\n    if result.get(\"valid\"):\n        print(\"License is valid!\")\n        print(f\"Message: {result.get('message', '')}\")\n    else:\n        print(f\"License invalid: {result.get('message', 'Unknown error')}\")\nexcept Exception as e:\n    print(f\"Connection failed: {e}\")\n    print(\"Check your network and API key\")\n","python",[27,261,258],{"__ignoreMap":247},[147,263,265],{"id":264},"verify-full-access","Verify full access",[241,267,270],{"className":268,"code":269,"language":259,"meta":247},[257],"# List your books\ntry:\n    books = api(\"ListBooks\", {\"pageSize\": 10, \"pageNumber\": 1})\n    book_list = books.get(\"books\", [])\n    print(f\"You have {len(book_list)} books\")\n    for b in book_list:\n        print(f\"  - {b['title']} ({b['id'][:30]}...)\")\nexcept Exception as e:\n    print(f\"Failed to list books: {e}\")\n\n# Check quota\ntry:\n    quota = api(\"GetQuotaStatus\", {})\n    print(f\"Quota status: {json.dumps(quota, indent=2)}\")\nexcept:\n    print(\"Quota check not available for this license tier\")\n",[27,271,269],{"__ignoreMap":247},[46,273,275],{"id":274},"bước-4-cấu-hình-model-ai-tùy-chọn","Bước 4: Cấu hình Model AI (tùy chọn)",[14,277,278],{},"Mặc định server sử dụng model tích hợp. Bạn có thể cấu hình model riêng:",[147,280,282],{"id":281},"xem-models-khả-dụng","Xem models khả dụng",[241,284,287],{"className":285,"code":286,"language":259,"meta":247},[257],"models = api(\"GetModels\", {})\nfor m in models.get(\"models\", []):\n    print(f\"  {m['id']}: {m['name']} (${m.get('inputCostPerMillion', 0)}\u002FM input)\")\n",[27,288,286],{"__ignoreMap":247},[147,290,292],{"id":291},"cấu-hình-openai-compatible-api-key-riêng","Cấu hình OpenAI-compatible API key riêng",[14,294,295],{},"Nếu bạn muốn dùng API key riêng (OpenAI, Anthropic, DeepSeek...):",[241,297,300],{"className":298,"code":299,"language":259,"meta":247},[257],"api(\"SetOpenAIConfig\", {\n    \"apiKey\": \"sk-your-api-key\",\n    \"baseUrl\": \"https:\u002F\u002Fapi.openai.com\u002Fv1\"  # hoặc endpoint khác\n})\nprint(\"Custom API key configured!\")\n",[27,301,299],{"__ignoreMap":247},[46,303,305],{"id":304},"troubleshooting","Troubleshooting",[180,307,308,321],{},[183,309,310],{},[186,311,312,315,318],{},[189,313,314],{},"Lỗi",[189,316,317],{},"Nguyên nhân",[189,319,320],{},"Giải pháp",[196,322,323,339,352,365],{},[186,324,325,330,333],{},[201,326,327],{},[27,328,329],{},"401 Unauthorized",[201,331,332],{},"API key sai hoặc thiếu",[201,334,335,336],{},"Kiểm tra ",[27,337,338],{},"AIO_EPUB_API_KEY",[186,340,341,346,349],{},[201,342,343],{},[27,344,345],{},"403 Forbidden",[201,347,348],{},"License hết hạn hoặc không đủ quyền",[201,350,351],{},"Gia hạn license",[186,353,354,359,362],{},[201,355,356],{},[27,357,358],{},"connection refused",[201,360,361],{},"Server không phản hồi",[201,363,364],{},"Kiểm tra mạng, thử lại sau",[186,366,367,372,375],{},[201,368,369],{},[27,370,371],{},"quota exceeded",[201,373,374],{},"Hết quota tháng",[201,376,377],{},"Nâng cấp gói hoặc chờ đầu tháng",[46,379,381],{"id":380},"bước-tiếp-theo","Bước tiếp theo",[14,383,384],{},"Setup xong → chọn skill phù hợp:",[180,386,387,397],{},[183,388,389],{},[186,390,391,394],{},[189,392,393],{},"Bạn muốn...",[189,395,396],{},"Dùng skill",[196,398,399,408,418,427,437],{},[186,400,401,404],{},[201,402,403],{},"Tải sách EPUB lên server",[201,405,406],{},[27,407,89],{},[186,409,410,413],{},[201,411,412],{},"Xem danh sách sách đã có",[201,414,415],{},[27,416,417],{},"aio-epub-manage",[186,419,420,423],{},[201,421,422],{},"Bắt đầu dịch một chương",[201,424,425],{},[27,426,24],{},[186,428,429,432],{},[201,430,431],{},"Kiểm tra chất lượng bản dịch cũ",[201,433,434],{},[27,435,436],{},"aio-epub-quality",[186,438,439,442],{},[201,440,441],{},"Xuất sách đã dịch xong",[201,443,444],{},[27,445,446],{},"aio-epub-export",[14,448,449,62,452,165,454,165,456,165,458,165,460],{},[22,450,451],{},"Workflow đề xuất",[27,453,5],{},[27,455,89],{},[27,457,24],{},[27,459,436],{},[27,461,446],{},{"title":247,"searchDepth":463,"depth":463,"links":464},2,[465,466,467,472,477,481,482],{"id":48,"depth":463,"text":49},{"id":93,"depth":463,"text":94},{"id":127,"depth":463,"text":128,"children":468},[469,471],{"id":149,"depth":470,"text":150},3,{"id":177,"depth":470,"text":178},{"id":231,"depth":463,"text":232,"children":473},[474,475,476],{"id":235,"depth":470,"text":236},{"id":252,"depth":470,"text":253},{"id":264,"depth":470,"text":265},{"id":274,"depth":463,"text":275,"children":478},[479,480],{"id":281,"depth":470,"text":282},{"id":291,"depth":470,"text":292},{"id":304,"depth":463,"text":305},{"id":380,"depth":463,"text":381},"Setup guide for EPUB translation service — register account, purchase license, and configure API key.","skill","md",{},true,"\u002Fplugins\u002Faio-epub-translate\u002Faio-epub-setup",{"title":5,"description":483},"plugins\u002Faio-epub-translate\u002Faio-epub-setup","0K4gRGYkm3FdWvZwaaM7w7HpIs1-OBWvqlAmWSIYbT0",[],1779712313320]