さまざまな文書形式からテキストを抽出・処理
PDF_EXTRACT_TEXT
DOCX_EXTRACT_TEXT
WORD_TABLE_EXTRACT
WORD_TABLE_UPDATE
- 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}}
- 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. 全体的な評価