🔎

OSS起因のエラー調査に「grep.app」が使えるかも

に公開

1.はじめに

OSSを使っていると、「自分で書いたコードではない部分」でエラーが発生することも多々あります。
特に最近では、複数のOSSが組み合わさって構成されるプロジェクトも増えており、どのOSSがエラーの原因になっているのかを特定するのが難しいケースがあります。

2.実例

今回は、OpenDeepWikiというOSSで使用されているLLMモデルをデフォルトのものから変更しようと試みました。
参考:https://github.com/AIDotNet/OpenDeepWiki

OpenDeepWikiのLLMモデル定義部分に、Meta社の「Llama」モデルを適用しようとしたところ、次のようなエラーログが出力されました。

koalawiki-1      | [07:10:25 ERR] Function CodeAnalysis-CodeDirSimplifier failed. Error: An error occurred while initializing the BedrockChatCompletionService: Unsupported Meta model: meta.llama4-maverick-17b-instruct-v1:0
koalawiki-1      | Microsoft.SemanticKernel.KernelException: An error occurred while initializing the BedrockChatCompletionService: Unsupported Meta model: meta.llama4-maverick-17b-instruct-v1:0
koalawiki-1      |  ---> System.NotSupportedException: Unsupported Meta model: meta.llama4-maverick-17b-instruct-v1:0

ネタバレになりますが、原因はOpenDeepWikiが内部的に利用している「semantic-kernel」という別のOSSが「Llama」に対応していなかったことでした。

ただし、このようにOSSの内部で別のOSSが呼び出されている場合、原因を地道に調査しようとすると非常に時間がかかってしまうのが実情です。

3.grep.appを使ってエラー原因を特定する

そこで、「grep.app」を使ってみました。

「grep.app」は、GitHub上に公開されているOSSコード全体を対象にgrep検索ができるWebサービスです。
OSSのエラーメッセージの出どころを探したいときに非常に便利なツールです。

■ 実際のユースケース

  1. https://grep.app にアクセス
  2. 検索窓に、ログに含まれていたキーワード「Unsupported Meta model」を入力します:
koalawiki-1      |  ---> System.NotSupportedException: Unsupported Meta model:

すると、semantic-kernel内でこのエラーメッセージが定義されているソースコードがピンポイントで検索結果に表示されました。

このように、OSSの中でエラー文言がどこで出ているのか、即座にソースコードまでたどれることができました。

Discussion