syuilo / ai

💕 A bot for Misskey
https://藍.moe/
MIT License
228 stars 115 forks source link

keywordEnabled=trueでMeCabがインストールされていない場合は起動前に異常終了する #106

Closed massongit closed 1 year ago

massongit commented 1 year ago

Fix https://github.com/syuilo/ai/issues/109

ai-app-1  | node:events:491
ai-app-1  |       throw er; // Unhandled 'error' event
ai-app-1  |       ^
ai-app-1  | 
ai-app-1  | Error: spawn /usr/bin/mecab ENOENT
ai-app-1  |     at ChildProcess._handle.onexit (node:internal/child_process:283:19)
ai-app-1  |     at onErrorNT (node:internal/child_process:476:16)
ai-app-1  |     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
ai-app-1  | Emitted 'error' event on ChildProcess instance at:
ai-app-1  |     at ChildProcess._handle.onexit (node:internal/child_process:289:12)
ai-app-1  |     at onErrorNT (node:internal/child_process:476:16)
ai-app-1  |     at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
ai-app-1  |   errno: -2,
ai-app-1  |   code: 'ENOENT',
ai-app-1  |   syscall: 'spawn /usr/bin/mecab',
ai-app-1  |   path: '/usr/bin/mecab',
ai-app-1  |   spawnargs: [ '-d', '/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/' ]
ai-app-1  | }

Dockerで enable_mecab=0 にするなど、MeCabと mecab-ipadic-neologd がインストールされていない、かつ、 keywordEnabled: true な状態で起動すると、キーワードを覚える際に上記エラーで落ちます。 従って、 keywordEnabled: true な場合はbot起動前にMeCabと mecab-ipadic-neologd が入っているか確認し、入っていなかったら落ちるようにします。

massongit commented 1 year ago

まず https://github.com/syuilo/ai/issues/109 で方針を固めた方が良いのでclose。