convert2md プログラム仕様

概要: ファイルをMarkdown形式に変換するツール。 詳細説明:

このスクリプトは、さまざまなドキュメントファイル(例: docx, pptx, pdf, jpg)をMarkdown形式に変換します。 MarkItDownライブラリとオプションでOpenAIのAPIを利用して、ファイルの内容を解析し、テキストコンテンツを抽出します。 特に画像ファイルに対しては、OpenAIの画像解析機能を使用して説明文を生成することができます。 環境変数`OPENAI_API_KEY`が設定されている場合、OpenAIサービスが利用されます。

関連リンク:

convert2md.py 技術ドキュメント

converter.convert2md.convert(infile, outfile)[ソース]

概要: 指定されたファイルをMarkdownに変換し、結果をファイルに保存する。 詳細説明:

initialize`関数で設定をロードし、`convert_to_md`でファイルコンテンツをMarkdownに変換します。 `outfile`が指定されていない場合、入力ファイルと同じディレクトリに.md`拡張子でファイルを作成します。 変換されたMarkdownテキストは`save`関数によって出力ファイルに書き込まれます。

:param : param infile: str: 変換する入力ファイルのパス。 :param : param outfile: Union[str, None]: 出力ファイルのパス。Noneの場合、入力ファイル名から自動生成されます。

converter.convert2md.convert_to_md(infile, cfg)[ソース]

概要: 指定された入力ファイルをMarkdown形式のテキストに変換する。 詳細説明:

`MarkItDown`ライブラリを使用してファイルを変換します。 `cfg.OPENAI_API_KEY`が設定されている場合、OpenAIクライアントを初期化し、 特に画像ファイル(.jpg)の場合はOpenAIの画像解析機能(`gpt-4o-mini`モデル)を利用して 画像の説明文をMarkdownに含めます。 変換結果が空の場合、エラーとして終了します。

:param : param infile: str: 変換する入力ファイルのパス。 :param : param cfg: SimpleNamespace: 設定オブジェクト。`OPENAI_API_KEY`を含む可能性があります。

戻り値:

変換されたMarkdown形式のテキストコンテンツ。

戻り値の型:

str

converter.convert2md.initialize()[ソース]

概要: 設定を初期化し、環境変数を読み込む。 詳細説明:

SimpleNamespace`オブジェクトを作成し、.env`ファイルから環境変数をロードします。 特に`OPENAI_API_KEY`を読み込み、設定されていない場合は警告を表示します。

戻り値:

初期化された設定オブジェクト。`OPENAI_API_KEY`などの変数が含まれます。

戻り値の型:

SimpleNamespace

converter.convert2md.main()[ソース]

概要: スクリプトのメイン実行関数。 詳細説明:

設定の初期化、コマンドライン引数からの入力ファイルパスの取得、 Markdownへの変換、そして結果のファイル保存を行います。 最後に使用方法を表示します。

converter.convert2md.replace_path(path, ext)[ソース]

概要: 指定されたファイルパスの拡張子を新しいものに置換する。 詳細説明:

入力パスのファイル名から拡張子を除去し、新しい拡張子を付加したパスを生成します。 入力パスが空の場合、エラーとして終了します。

:param : param path: str: 元のファイルパス。 :param : param ext: str: 新しい拡張子(例: ".md")。

戻り値:

新しい拡張子を持つファイルパス。

戻り値の型:

str

converter.convert2md.save(path, text)[ソース]

概要: 指定されたパスにテキストコンテンツを保存する。 詳細説明:

UTF-8エンコーディングでファイルを書き込みモードで開きます。 保存するテキストが空の場合や、ファイルI/Oエラーが発生した場合はスクリプトを終了します。

:param : param path: str: テキストを保存するファイルパス。 :param : param text: str: 保存するテキストコンテンツ。

converter.convert2md.terminate(message)[ソース]

概要: エラーメッセージを表示し、スクリプトの使用方法を出力して終了する。 :param : param message: str: 終了時に表示するエラーメッセージ。

converter.convert2md.update_vars(cfg, args)[ソース]

概要: コマンドライン引数に基づいて設定変数を更新する。 詳細説明:

スクリプトの第1引数(インデックス1)を入力ファイルパスとして`cfg.infile`に設定します。 入力ファイルが存在しない場合や、引数が不足している場合はエラーとして終了します。

:param : param cfg: SimpleNamespace: 現在の設定オブジェクト。 :param : param args: list[str]: コマンドライン引数のリスト (sys.argv)。

戻り値:

更新された設定オブジェクト。入力ファイルパスが含まれます。

戻り値の型:

SimpleNamespace

converter.convert2md.usage()[ソース]

概要: スクリプトの正しい使用方法を標準出力に表示する。