記事公開日
【AI活用】MarkItDownを使ってRAGを構築してみた

今回、MarkItDownを使用してExcelファイルでよくあるようなQA表を対象にRAGを構築し、マークダウンにした場合とそのままの場合で比較してみました。
※MarkItDownとは、Microsoft社が公開した様々なファイル形式をマークダウン形式に変換してくれるライブラリです。
MarkItDownの準備
まずはMarkItDownを利用するためにPythonをインストールします。Pythonをインストールした後はMarkItDownモジュールをインストールします(pip install markitdown)。
変換したいファイル形式に応じたオプションをインストールします。今回はExcelファイルを変換したいのでxlsx用をインストールしました(pip install markitdown[xlsx])。
これで基本的に準備は完了で、コマンドを実行することで試せますが、今回Pythonファイルを用意しました。
from markitdown import MarkItDown md = MarkItDown() result = md.convert(R"C:\Users\xxxx\Desktop\sample.xlsx") print(result.text_content)
マークダウン化
今回はサンプルとして就業規則に関するQAをOpenAIに30個ほど用意してもらいExcelファイルにしました。No. | q | a |
1 | 勤務時間は何時から何時までですか? | 午前9時から午後6時までです。 |
2 | 休憩時間はいつですか? | 正午12時から午後1時までです。 |
3 | 休日はいつですか? | 土曜日、日曜日及び国民の祝日です。 |
4 | 給与はいつ支払われますか? | 毎月末日に支払われます。 |
5 | 給与の支払い方法は何ですか? | 銀行振込です。 |
6 | 昇給はどのように行われますか? | 年1回、業績及び勤務成績に基づいて行われます。 |
7 | 年次有給休暇はいつから取得できますか? | 入社後6ヶ月経過後に取得できます。 |
8 | 年次有給休暇の日数はどのくらいですか? | 初年度は10日です。 |
9 | 特別休暇はどのような場合に取得できますか? | 結婚、出産、忌引等の場合に取得できます。 |
10 | 就業規則は全従業員に適用されますか? | はい、全ての従業員に適用されます。 |
11 | 勤務時間外の労働はどうなりますか? | 会社の指示がある場合に限り、時間外労働が発生します。 |
12 | 休暇の申請方法は? | 事前に上司に申請し、承認を得る必要があります。 |
13 | 病気休暇はありますか? | 就業規則には特に記載がありませんが、会社の判断で対応します。 |
14 | 産休は取得できますか? | はい、法律に基づき取得できます。 |
15 | 退職の手続きは? | 退職希望日の1ヶ月前までに書面で通知する必要があります。 |
16 | 研修制度はありますか? | はい、業務に必要な研修を会社が提供します。 |
17 | 服装規定はありますか? | 業務に適した服装を着用することが求められます。 |
18 | 遅刻や早退の扱いは? | 遅刻や早退は事前に上司に報告し、承認を得る必要があります。 |
19 | 会社の設備の使用についての規定は? | 業務に必要な範囲で使用することが求められます。 |
20 | 社内での飲食は許可されていますか? | 休憩時間内に限り許可されています。 |
21 | 喫煙は許可されていますか? | 指定された喫煙場所でのみ許可されています。 |
22 | 会社の車両の使用についての規定は? | 業務に必要な場合に限り、使用が許可されます。 |
23 | 社内での携帯電話の使用は? | 業務に支障がない範囲で使用が許可されています。 |
24 | 会社のパソコンの使用についての規定は? | 業務に必要な範囲で使用することが求められます。 |
25 | 会社のメールアドレスの使用についての規定は? | 業務に関連する連絡に限り使用が許可されています。 |
26 | 会社のSNSの使用についての規定は? | 業務に関連する情報発信に限り使用が許可されています。 |
27 | 会社の機密情報の取り扱いについての規定は? | 機密情報は厳重に管理し、外部に漏らさないことが求められます。 |
28 | 会社の備品の取り扱いについての規定は? | 業務に必要な範囲で使用し、適切に管理することが求められます。 |
29 | 会社のセキュリティについての規定は? | セキュリティポリシーに従い、適切に対応することが求められます。 |
30 | 会社のイベントへの参加は必須ですか? | 業務に関連するイベントへの参加は推奨されますが、必須ではありません。 |
このファイルを先ほどのコードを使用してマークダウン化した結果が以下となります。
## Sheet1 | No. | q | a | | --- | --- | --- | | 1 | 勤務時間は何時から何時までですか? | 午前9時から午後6時までです。 | | 2 | 休憩時間はいつですか? | 正午12時から午後1時までです。 | | 3 | 休日はいつですか? | 土曜日、日曜日及び国民の祝日です。 | | 4 | 給与はいつ支払われますか? | 毎月末日に支払われます。 | | 5 | 給与の支払い方法は何ですか? | 銀行振込です。 | | 6 | 昇給はどのように行われますか? | 年1回、業績及び勤務成績に基づいて行われます。 | | 7 | 年次有給休暇はいつから取得できますか? | 入社後6ヶ月経過後に取得できます。 | | 8 | 年次有給休暇の日数はどのくらいですか? | 初年度は10日です。 | | 9 | 特別休暇はどのような場合に取得できますか? | 結婚、出産、忌引等の場合に取得できます。 | | 10 | 就業規則は全従業員に適用されますか? | はい、全ての従業員に適用されます。 | | 11 | 勤務時間外の労働はどうなりますか? | 会社の指示がある場合に限り、時間外労働が発生します。 | | 12 | 休暇の申請方法は? | 事前に上司に申請し、承認を得る必要があります。 | | 13 | 病気休暇はありますか? | 就業規則には特に記載がありませんが、会社の判断で対応します。 | | 14 | 産休は取得できますか? | はい、法律に基づき取得できます。 | | 15 | 退職の手続きは? | 退職希望日の1ヶ月前までに書面で通知する必要があります。 | | 16 | 研修制度はありますか? | はい、業務に必要な研修を会社が提供します。 | | 17 | 服装規定はありますか? | 業務に適した服装を着用することが求められます。 | | 18 | 遅刻や早退の扱いは? | 遅刻や早退は事前に上司に報告し、承認を得る必要があります。 | | 19 | 会社の設備の使用についての規定は? | 業務に必要な範囲で使用することが求められます。 | | 20 | 社内での飲食は許可されていますか? | 休憩時間内に限り許可されています。 | | 21 | 喫煙は許可されていますか? | 指定された喫煙場所でのみ許可されています。 | | 22 | 会社の車両の使用についての規定は? | 業務に必要な場合に限り、使用が許可されます。 | | 23 | 社内での携帯電話の使用は? | 業務に支障がない範囲で使用が許可されています。 | | 24 | 会社のパソコンの使用についての規定は? | 業務に必要な範囲で使用することが求められます。 | | 25 | 会社のメールアドレスの使用についての規定は? | 業務に関連する連絡に限り使用が許可されています。 | | 26 | 会社のSNSの使用についての規定は? | 業務に関連する情報発信に限り使用が許可されています。 | | 27 | 会社の機密情報の取り扱いについての規定は? | 機密情報は厳重に管理し、外部に漏らさないことが求められます。 | | 28 | 会社の備品の取り扱いについての規定は? | 業務に必要な範囲で使用し、適切に管理することが求められます。 | | 29 | 会社のセキュリティについての規定は? | セキュリティポリシーに従い、適切に対応することが求められます。 | | 30 | 会社のイベントへの参加は必須ですか? | 業務に関連するイベントへの参加は推奨されますが、必須ではありません。 |しっかりと表が表現されているのが分かります。
結果の比較
xlsxファイルのまま取り込んだ場合とマークダウン化して取り込んだ場合で結果を弊社で用意しているRAGシステムにて比較してみました。※Azure上のBlob Storageに該当ファイルを配置して、AI Searchでインデックス化しています。
<xlsxファイル>
質問の回答は正しく得られましたが、前後のQAも回答に含まれています。

<マークダウン化>
こちらは質問に対してファイルに記載された明確な回答をしてくれました。

まとめ
今回の結果はたまたまの可能性はありますが、マークダウン化されたテキストはOpenAIとの相性もよいため回答の精度が高くなることが期待できそうです。MarkItDownには他にもワードやパワーポイント、PDFに対応していますし、Azureのサービス(Document Inteligence や OpenAI)と連携してより高度な解析もできます。MarkItDownを使用することで社内コンテンツをより活かしたソリューションが構築できるのではないかと思います。
また、Azure AI の具体的な活用方法等のブログもたくさんありますのでご覧ください!
QUICK E-Solutionsでは、「AIチャットボット構築サービス」をはじめとして、各AIサービスを利用したシステム導入のお手伝いをしております。それ以外でも QESでは様々なアプリケーションの開発・導入を行っております。提供するサービス・ソリューションにつきましては こちら に掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。
※このブログで参照されている、Microsoft、Microsoft 365、Bing Web Search、Azure OpenAI、AI Search その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。