app:
  description: 提出された事業計画書からSWOT要素（強み、弱み、機会、脅威）を抽出し、分析結果レポートを生成します。
  icon: 🤖
  icon_background: '#FFEAD5'
  mode: workflow
  name: 事業計画書SWOT分析支援
  use_icon_as_answer_icon: false
kind: app
version: 0.1.5
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      image:
        enabled: false
    opening_statement: ''
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
  graph:
    edges:
    - data:
        sourceType: start
        targetType: llm
      id: start-to-llm_swot_extractor
      source: start
      target: llm_swot_extractor
    - data:
        sourceType: llm
        targetType: code
      id: llm_swot_extractor-to-code_swot_formatter
      source: llm_swot_extractor
      target: code_swot_formatter
    - data:
        sourceType: code
        targetType: llm
      id: code_swot_formatter-to-llm_analysis_generator
      source: code_swot_formatter
      target: llm_analysis_generator
    - data:
        sourceType: llm
        targetType: end
      id: llm_analysis_generator-to-end
      source: llm_analysis_generator
      target: end
    nodes:
    - data:
        title: 開始
        type: start
        variables:
        - label: query
          max_length: 2048
          options: []
          required: true
          type: paragraph
          variable: query
      height: 90
      id: start
      position:
        x: 80
        y: 282
      type: custom
      width: 244
    - data:
        title: SWOT要素抽出
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.2
        prompt_template:
        - role: system
          text: あなたは経験豊富な事業戦略コンサルタントです。提出された事業計画書の内容から、以下のSWOT要素（強み、弱み、機会、脅威）を抽出し、簡潔に箇条書きで出力してください。各セクションの先頭に「#
            強み」、「# 弱み」、「# 機会」、「# 脅威」という見出しを付けてください。抽出できない要素は「該当なし」と記載してください。
        - role: user
          text: "事業計画書:\n{{#start.query#}}\n\n# 強み\n- \n\n# 弱み\n- \n\n# 機会\n- \n\n\
            # 脅威\n- "
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm_swot_extractor
      position:
        x: 380
        y: 282
      type: custom
      width: 244
    - data:
        title: SWOT整形
        type: code
        code_language: python3
        code: "def _safe_str(v):\n    \"\"\"Convert any value to string safely.\"\"\
          \"\n    if v is None:\n        return \"\"\n    if isinstance(v, list):\n\
          \        return \"\\n\".join(str(i) for i in v)\n    return str(v)\n\ndef\
          \ _safe_list(v):\n    \"\"\"Ensure value is a list.\"\"\"\n    if v is None:\n\
          \        return []\n    if isinstance(v, str):\n        return [v]\n   \
          \ if isinstance(v, list):\n        return v\n    return [v]\n\ndef main(**kwargs)\
          \ -> dict:\n    inputs = kwargs\n    swot_text = inputs[\"swot_text\"]\n\
          \    \n    sections = dict(\n        強み=[],\n        弱み=[],\n        機会=[],\n\
          \        脅威=[]\n    )\n    \n    current_section = None\n    lines = swot_text.strip().split('\\\
          n')\n    \n    for line in lines:\n        line = line.strip()\n       \
          \ if line.startswith('# 強み'):\n            current_section = \"強み\"\n  \
          \      elif line.startswith('# 弱み'):\n            current_section = \"弱み\"\
          \n        elif line.startswith('# 機会'):\n            current_section = \"\
          機会\"\n        elif line.startswith('# 脅威'):\n            current_section\
          \ = \"脅威\"\n        elif line.startswith('- ') and current_section:\n  \
          \          item = line[2:].strip()\n            if item and item.lower()\
          \ != \"該当なし\": # 空文字列や「該当なし」は除外\n                sections[current_section].append(item)\n\
          \    \n    return dict(\n        strengths=sections[\"強み\"],\n        weaknesses=sections[\"\
          弱み\"],\n        opportunities=sections[\"機会\"],\n        threats=sections[\"\
          脅威\"]\n    )\n"
        variables:
        - value_selector:
          - llm_swot_extractor
          - text
          variable: swot_text
        outputs:
          strengths:
            type: array[string]
            children: null
          weaknesses:
            type: array[string]
            children: null
          opportunities:
            type: array[string]
            children: null
          threats:
            type: array[string]
            children: null
      height: 90
      id: code_swot_formatter
      position:
        x: 680
        y: 282
      type: custom
      width: 244
    - data:
        title: SWOT分析生成
        type: llm
        model:
          provider: openai
          name: gpt-5-mini
          mode: chat
          completion_params:
            temperature: 0.5
        prompt_template:
        - role: system
          text: 'あなたは経験豊富な事業戦略コンサルタントです。提供されたSWOT要素に基づき、包括的なSWOT分析レポートを作成してください。特に、強みと機会を活かす戦略（SO戦略）、弱みと機会を克服する戦略（WO戦略）、強みで脅威を回避する戦略（ST戦略）、弱みと脅威を克服・回避する戦略（WT戦略）に焦点を当てて具体的に記述してください。最後に事業成功に向けた提言を加えてください。


            ---


            【最終出力フォーマット (この指示が最優先)】

            最終出力は **読みやすい日本語の Markdown** で返してください。JSON

            配列・オブジェクトをそのまま出力してはいけません。

            - 見出し (## / ###) でセクションを区切る

            - リスト (- / 1.) や表 (| ... |) で構造化

            - 各項目の意図や根拠が分かるよう短い説明文を添える

            - 営業デモで顧客に直接見せられる体裁にする


            (構造化されたデータ項目を内部で扱うのは構いませんが、出力時に Markdown

            に変換してください。)'
        - role: user
          text: "事業計画書のSWOT要素は以下の通りです。\n\n# 強み (Strengths)\n{{#code_swot_formatter.strengths#}}\n\
            \n# 弱み (Weaknesses)\n{{#code_swot_formatter.weaknesses#}}\n\n# 機会 (Opportunities)\n\
            {{#code_swot_formatter.opportunities#}}\n\n# 脅威 (Threats)\n{{#code_swot_formatter.threats#}}\n\
            \n上記SWOT要素に基づいた、事業成功のための戦略的分析と提言を行ってください。\n\n## SWOT分析レポート\n\n### 1. 強み\
            \ (Strengths)\n\n### 2. 弱み (Weaknesses)\n\n### 3. 機会 (Opportunities)\n\
            \n### 4. 脅威 (Threats)\n\n### 5. 戦略的示唆 (クロスSWOT分析)\n- SO戦略 (強み x 機会): \n\
            - WO戦略 (弱み x 機会): \n- ST戦略 (強み x 脅威): \n- WT戦略 (弱み x 脅威): \n\n### 6. 事業成功に向けた提言\n"
        vision:
          enabled: false
        memory: null
        context:
          enabled: false
      height: 90
      id: llm_analysis_generator
      position:
        x: 980
        y: 282
      type: custom
      width: 244
    - data:
        title: 終了
        type: end
        outputs:
        - value_selector:
          - llm_analysis_generator
          - text
          variable: result
      height: 90
      id: end
      position:
        x: 1280
        y: 282
      type: custom
      width: 244
  hash: null
