convert2md プログラム仕様
概要: ファイルをMarkdown形式に変換するツール。 詳細説明:
このスクリプトは、さまざまなドキュメントファイル(例: docx, pptx, pdf, jpg)をMarkdown形式に変換します。 MarkItDownライブラリとオプションでOpenAIのAPIを利用して、ファイルの内容を解析し、テキストコンテンツを抽出します。 特に画像ファイルに対しては、OpenAIの画像解析機能を使用して説明文を生成することができます。 環境変数`OPENAI_API_KEY`が設定されている場合、OpenAIサービスが利用されます。
- 関連リンク:
- 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形式のテキストに変換する。 詳細説明:
:param : param infile: str: 変換する入力ファイルのパス。 :param : param cfg: SimpleNamespace: 設定オブジェクト。`OPENAI_API_KEY`を含む可能性があります。
- 戻り値:
変換されたMarkdown形式のテキストコンテンツ。
- 戻り値の型:
- 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")。
- 戻り値:
新しい拡張子を持つファイルパス。
- 戻り値の型:
- 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