概要

文書処理ツールを使用すると、PDF、DOCX、Word文書を含むさまざまな文書形式からテキストコンテンツを抽出できます。これらのツールは、文書分析、コンテンツ抽出、テキスト処理ワークフローに不可欠です。

主な機能

  • PDF_EXTRACT_TEXT
    • PDFファイルからテキストコンテンツを抽出
  • DOCX_EXTRACT_TEXT
    • DOCXファイルからテキストコンテンツを抽出
  • WORD_TABLE_EXTRACT
    • Word文書からテーブルデータをJSONとして抽出
  • WORD_TABLE_UPDATE
    • Word文書のテーブルデータを更新

認証

認証は不要です。文書処理ツールは、ファイルURLまたはbase64エンコードされたファイルで直接動作します。

例: 基本的なテキスト抽出

- id: extract_pdf_text
  name: extract_pdf_text
  tool: PDF_EXTRACT_TEXT
  input:
    - name: base64_file
      value: "{{steps.upload_pdf.result.base64}}"

- id: extract_docx_text
  name: extract_docx_text
  tool: DOCX_EXTRACT_TEXT
  input:
    - name: base64_file
      value: "{{steps.upload_docx.result.base64}}"

- id: analyze_extracted_text
  name: analyze_extracted_text
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        以下の抽出されたテキストを分析し、以下を提供してください:
        1. 主要トピックの要約
        2. 重要な発見や重要なポイント
        3. 言及されたアクションアイテム
        
        PDFコンテンツ: {{steps.extract_pdf_text.result.text}}
        DOCXコンテンツ: {{steps.extract_docx_text.result.text}}

例: Wordテーブル処理

- id: extract_word_table
  name: extract_word_table
  tool: WORD_TABLE_EXTRACT
  config:
    - name: timeout
      value: 300000
  input:
    - name: file_url
      value: "https://example.com/document.docx"
    - name: table_index
      value: 0

- id: process_table_data
  name: process_table_data
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: script
      value: |
        import json
        
        # 前のステップからテーブルデータを取得
        table_data = {{steps.extract_word_table.result.table}}
        
        # テーブルデータを処理
        processed_data = []
        headers = table_data[0] if table_data else []
        
        for row in table_data[1:]:  # ヘッダー行をスキップ
            row_dict = {}
            for i, cell in enumerate(row):
                if i < len(headers):
                    row_dict[headers[i]] = cell
            processed_data.append(row_dict)
        
        print(json.dumps({"processed_table": processed_data}))

- id: save_to_spreadsheet
  name: save_to_spreadsheet
  tool: GOOGLE_SPREADSHEET_ADD_ROWS
  config:
    - name: credentials
      value: "{{secrets.GOOGLE_SHEETS_CREDENTIALS}}"
  input:
    - name: spreadsheet_id
      value: "your_spreadsheet_id"
    - name: sheet_name
      value: "抽出されたデータ"
    - name: values
      value: "{{steps.extract_word_table.result.table}}"

例: 文書分析パイプライン

- id: upload_document
  name: upload_document
  tool: INPUT_FILE
  input:
    - name: value
      value: "分析する文書"

- id: determine_file_type
  name: determine_file_type
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: script
      value: |
        import json
        
        # ファイル情報を取得
        file_info = {{steps.upload_document.result}}
        file_name = file_info.get('filename', '').lower()
        
        if file_name.endswith('.pdf'):
            file_type = 'pdf'
        elif file_name.endswith('.docx'):
            file_type = 'docx'
        else:
            file_type = 'unknown'
        
        print(json.dumps({"file_type": file_type, "filename": file_name}))

- id: extract_text_pdf
  name: extract_text_pdf
  tool: PDF_EXTRACT_TEXT
  condition: "{{steps.determine_file_type.result.file_type == 'pdf'}}"
  input:
    - name: base64_file
      value: "{{steps.upload_document.result.base64}}"

- id: extract_text_docx
  name: extract_text_docx
  tool: DOCX_EXTRACT_TEXT
  condition: "{{steps.determine_file_type.result.file_type == 'docx'}}"
  input:
    - name: base64_file
      value: "{{steps.upload_document.result.base64}}"

- id: generate_document_summary
  name: generate_document_summary
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        この文書の包括的な要約を作成してください:
        
        文書: {{steps.determine_file_type.result.filename}}
        単語数: {{steps.process_extracted_text.result.word_count}}
        
        コンテンツ:
        {{steps.process_extracted_text.result.text}}
        
        以下を提供してください:
        1. エグゼクティブサマリー(2-3文)
        2. 主要トピックとテーマ
        3. 重要な事実やデータポイント
        4. アクションアイテムや推奨事項
        5. 全体的な評価

ヒントとベストプラクティス

  • base64エンコードファイルのサポートにより安全なファイル処理が可能
  • 処理前に常にファイルタイプを検証する
  • 大きな文書を処理する際は適切なタイムアウトを検討する
  • 破損したファイルやサポートされていないファイルのエラーハンドリングを実装する
  • 構造化データ分析のためにテキストとは別にテーブルを抽出する
  • より良い分析結果のためにテキストのクリーニングと前処理を検討する