[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-使用chatgpt進行電子書翻譯docker版本教學":3},{"id":4,"slug":5,"title":6,"description":7,"content":8,"date":9,"image":10,"imageAlt":6,"author":11,"categories":14,"path":18,"minRead":19},3458,"使用chatgpt進行電子書翻譯docker版本教學","使用chatGPT進行電子書翻譯(Docker版本教學)","使用chatGPT進行電子書翻譯(Docker版本教學) 偶然間看到一個很有用的專案，作者使用chatGPT來 […]","\u003Ch1>使用chatGPT進行電子書翻譯(Docker版本教學)\u003C\u002Fh1>\n\u003Cp>偶然間看到一個很有用的專案，作者使用chatGPT來翻譯電子書。原理是解析電子書(epub)，將文字丟給GPT進行翻譯再回傳，這作法對於有在使用電子書的使用者真的滿方便，不用再硬啃原文資料囉(?)。\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyihong0618\u002Fbilingual_book_maker\u002Fblob\u002Fmain\u002FREADME-CN.md\" title=\"專案位置\">專案位置\u003C\u002Fa> 作者為：yihong0618\u003C\u002Fp>\n\u003Ch2>使用方式\u003C\u002Fh2>\n\u003Cp>首先準備好openAI的key，原作者提供的使用法以下：\u003C\u002Fp>\n\u003Cpre>\u003Ccode># 如果你想快速测一下\npython3 make_book.py --book_name test_books\u002Fanimal_farm.epub --openai_key ${openai_key} --no_limit --test --language &quot;Simplified Chinese&quot;\n# or do it\npython3 make_book.py --book_name test_books\u002Fanimal_farm.epub --openai_key ${openai_key} --language &quot;Simplified Chinese&quot;\n# or 用 gpt3 模型\nexport OPENAI_API_KEY=${your_api_key}\npython3 make_book.py --book_name test_books\u002Fanimal_farm.epub --model gpt3 --no_limit --language &quot;Simplified Chinese&quot;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>快速使用的話就直接輸入，預設會使用\u003Cem>gpt-3.5-turbo\u003C\u002Fem>模型\u003C\u002Fp>\n\u003Cpre>\u003Ccode>python3 make_book.py --book_name test_books\u002Fanimal_farm.epub --openai_key ${openai_key} --no_limit --test --language &quot;Simplified Chinese&quot;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>如果想降低版本使用\u003Cem>gpt3\u003C\u002Fem>，參數就換成--model gpt3 \u003C\u002Fp>\n\u003Cpre>\u003Ccode># or 用 gpt3 模型\nexport OPENAI_API_KEY=${your_api_key}\npython3 make_book.py --book_name test_books\u002Fanimal_farm.epub --model gpt3 --no_limit --language &quot;Simplified Chinese&quot;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>裡面提到一些重點\u003C\u002Fp>\n\u003Cul>\n\u003Cli>記得先安裝套件： pip install -r requirements.txt\u003C\u002Fli>\n\u003Cli>OpenAI API key，允許多個key，減少api卡住的狀況，寫法為(xxx,xxx,xxx)\u003C\u002Fli>\n\u003Cli>animal_farm.epub 是預設的範例電子書，大概5分鐘可以跑完\u003C\u002Fli>\n\u003Cli>如果是非付費會員可以使用 --test 參數 (雖然我不確定差異為何)\u003C\u002Fli>\n\u003Cli>可以設定目標語言，參數為--language &quot;Language&quot;如果目標為繁體中文，就是 --language &quot;Traditional Chinese&quot; ，支援的語言可以參考utils.py.\u003C\u002Fli>\n\u003Cli>加了 --proxy 參數，例如在本機端測試時可以使用代理，像是--proxy  \u003Ca href=\"http:\u002F\u002F127.0.0.1:7890\">http:\u002F\u002F127.0.0.1:7890\u003C\u002Fa> \u003C\u002Fli>\n\u003Cli>--resume 參數，可以手動中斷後，加入命令繼續執行(這我還沒測試)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Docker化\u003C\u002Fh2>\n\u003Cp>因為我很怕python環境污染XDDD，已經很久沒裝python了，於是將整格專案使用Docker來跑\u003Cbr \u002F>\nDockerFile如下\u003C\u002Fp>\n\u003Cpre>\u003Ccode>FROM python:3.8\n\nWORKDIR \u002Fapp\n\nCOPY requirements.txt requirements.txt\n\nRUN pip install --upgrade pip\nRUN pip install -r requirements.txt\nENV OPENAI_API_KEY=${open_ai_key}\n\nCOPY . .\n\nCMD [&quot;python3&quot;, &quot;make_book.py&quot;, &quot;--book_name&quot;, &quot;test_books\u002Fname.epub&quot;, &quot;--test&quot;, &quot;--language&quot; , &quot;Traditional Chinese&quot;]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>因為習慣使用docker-compose，所以順道加上了這設定，並且新增一個輸出資料夾export\u003C\u002Fp>\n\u003Cpre>\u003Ccode>version: &quot;3&quot;\n\nservices:\n  book:\n    build: .\n    container_name: book\n    volumes:\n      - .\u002Fexport:\u002Fapp\u002Fexport\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>輸出\u003C\u002Fh2>\n\u003Cp>因為輸出位置有點調整，我將程式碼稍做修改，讓翻譯後的檔案可以輸出到export資料夾中\u003C\u002Fp>\n\u003Cpre>\u003Ccode>def make_bilingual_book(self):\n....\n...\n..\nname = self.epub_name.split(&quot;.&quot;)[0]\n            name = self.epub_name.split(&quot;\u002F&quot;)[1] #將檔名分離出來\n            print(name)\n            epub.write_epub(f&quot;export\u002F{name}_bilingual.epub&quot;, new_book, {})\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>使用心得\u003C\u002Fh2>\n\u003Cp>直接看log吧，實際上他會輸出成檔案，將每個段落原文並排。以結果來說堪用，但用在小說還真是不確定翻譯得好不好(炸)，而且已經叫他輸出為繁體中文，但還是會有些簡中出現，但這是一個很有潛力的專案，期待啊！\u003C\u002Fp>\n\u003Cpre>\u003Ccode>book  | またそこの家の美しいのは夜だった。寺町通はいったいに賑\nbook  | \nbook  |  かな通りで――と言って感じは東京や大阪よりはずっと澄んでいるが――飾窓の光がお\nbook  | びただしく街路へ流れ出ている。それがどうしたわけかその店頭の周囲だけが妙に暗いの\nbook  | だ。もともと片方は暗い二条通に接している街角になっているので、暗いのは当然であっ\nbook  | が、その隣家が寺町通にある家にもかかわらず暗かったのが瞭然\nbook  | \nbook  |  しない。しかしその家が暗くなかったら、あんなにも私を誘惑するには至らなかったと\nbook  | 思う。もう一つはその家の打ち出した廂\nbook  | \nbook  |  なのだが、その廂が眼深\nbook  | \nbook  |  に冠った帽子の廂のように――これは形容というよりも、「おや、あそこの店は帽子の\nbook  | 廂をやけに下げているぞ」と思わせるほどなので、廂の上はこれも真暗なのだ。そう周囲\nbook  | 真暗なため、店頭に点\nbook  | \nbook  |  けられた幾つもの電燈が驟雨\nbook  | \nbook  |  のように浴びせかける絢爛\nbook  | \nbook  |  は、周囲の何者にも奪われることなく、ほしいままにも美しい眺めが照らし出されてい\nbook  | るのだ。裸の電燈が細長い螺旋棒\nbook  | \nbook  |  をきりきり眼の中へ刺し込んでくる往来に立って、また近所にある鎰屋\nbook  | \nbook  |  の二階の硝子\nbook  | \nbook  |  窓をすかして眺めたこの果物店の眺めほど、その時どきの私を興がらせたものは寺町の\nbook  | 中でも稀\nbook  | \nbook  |  だった。\nbook  | \nbook  | \nbook  | \nbook  | 再次看那房屋的美，真正的美在夜晚。寺町通是一条非常繁华的街道，虽然感觉上没有东京\nbook  | 或大阪那么喧闹，但橱窗的灯光仍然不断地流向街道。但不知道为什么，店铺周围却显得异\nbook  | 常黑暗。虽然原本就是位于连接到暗淡的二条通的街角，所以显得很暗很正常，但即使隔壁\nbook  | 邻居与寺町通的房屋相连，它也很暗。然而，如果那个房屋不这么暗，我不认为它会诱惑我\nbook  | 到这个程度。还有一个是该房屋的突口，它像深度深的帽檐一样，不仅仅是方便而已，它的\nbook  | 顶部也是漆黑一片。因为周围都很黑暗，店铺的许多电灯就像暴雨一样洒向周围，绚丽夺目\nbook  | 的景象没有被任何东西所掠夺，自由自在地照亮了美景。站在露天的电灯下，长长的螺旋杆\nbook  | 直刺眼睛，俯视着这家水果店，就像从离这里很近的旅馆二楼的窗户里看到的那样，这些景\nbook  | 象在寺町中是罕见的，总能让我兴奋不已。\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cimg decoding=\"async\" src=\"\u002Fapi\u002Fproxy-image?url=https%3A%2F%2Fpost.billxu.net%2Fwp-content%2Fuploads%2F2023%2F03%2F%E6%88%AA%E5%9C%96-2023-03-05-%E4%B8%8B%E5%8D%881.56.08.png\" alt=\"\" \u002F>\u003C\u002Fp>\n\u003Ch2>限制\u003C\u002Fh2>\n\u003Cp>注意他使用的檔案是電子書(epub)非PDF，如果想將手上的資料翻譯，建議要進行標準化的epub轉換，一般轉檔很容易轉成有問題的epub唷。\u003C\u002Fp>\n\u003Ch2>注意\u003C\u002Fh2>\n\u003Cp>GPT的翻譯準確度見仁見智，我自己用chrome查資料也很常用機翻的擴充套件，機翻的確有其限制，用詞或上下文語意不一定很完美，建議翻譯後的電子書自己參考就好，若有其他對外用途要考量版權以及翻譯品質唷。\u003C\u002Fp>\n","2023-03-05T13:57:55","",{"name":12,"link":13},"Chih Fan","http:\u002F\u002Fpost.billxu.net",[15],{"name":16,"slug":17},"AI","ai","\u002Fblog\u002F使用chatgpt進行電子書翻譯docker版本教學",2]