{
  "name": "speech_agent",
  "nodes": [
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "options": {
          "language": "ar"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        880,
        -576
      ],
      "id": "0635df4e-56be-4f44-b620-8f1d3e426208",
      "name": "Transcribe a recording",
      "credentials": {
        "openAiApi": {
          "id": "NX7wk8zVYdNiMg98",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-5-nano",
          "mode": "list",
          "cachedResultName": "GPT-5-NANO"
        },
        "messages": {
          "values": [
            {
              "content": "={{ $('set student nationality').item.json.student_nationality === 'Saudi' ? $('dialect based system prompts').item.json.system_prompt_s : $('dialect based system prompts').item.json.system_prompt_eg }}\n",
              "role": "system"
            },
            {
              "content": "={{ $('Webhook').item.json.body.type === 'text' ? $('Webhook').item.json.body.message : $json.text }}\n"
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1088,
        -384
      ],
      "id": "5143c3bf-58e9-4dbf-9a24-1bf140f0ef21",
      "name": "Message a model",
      "credentials": {
        "openAiApi": {
          "id": "NX7wk8zVYdNiMg98",
          "name": "OpenAi account"
        }
      }
    },
    {
      "parameters": {
        "bucketName": "coversation",
        "fileKey": "question.mp3"
      },
      "type": "n8n-nodes-base.s3",
      "typeVersion": 1,
      "position": [
        720,
        -576
      ],
      "id": "6f77a82f-8a20-4baa-82c7-806a8c7bdcb4",
      "name": "Download a file",
      "credentials": {
        "s3": {
          "id": "qI8Btoanv8tZEX9O",
          "name": "S3 account"
        }
      }
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "b470cc56-de9b-4b92-9c50-39bac33143cc",
        "options": {}
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        16,
        -400
      ],
      "id": "fc7dddcc-c0dc-4a19-b3fe-281e36438d2b",
      "name": "Webhook",
      "webhookId": "b470cc56-de9b-4b92-9c50-39bac33143cc"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "6dfab8d9-7e68-4037-b7d9-c8e374a4052e",
              "leftValue": "={{ $('Webhook').item.json.body.type }}",
              "rightValue": "audio",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "filter.operator.equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {
          "ignoreCase": false
        }
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        576,
        -400
      ],
      "id": "ecae597e-b081-4f38-9985-5887518b469a",
      "name": "If"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://voice-agent:8000/n8n_webhook_receiver",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "agent_responded",
              "value": "yes"
            },
            {
              "name": "agent_response",
              "value": "={{ $json.message.content }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1408,
        -384
      ],
      "id": "5a27f2a7-8903-414b-81fc-eb52600efa0e",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "76dfd79b-fdc0-4706-b804-6e6af453bdb2",
              "name": "system_prompt_eg",
              "value": "إنت مدرس كيميا لطفل في ابتدائي. رد باللهجة المصريّة السهلة. كلّم الطفل كأنك بتحكي له بصوت طبيعي. خلي الجمل قصيرة وواضحة، وما تحشرش معلومات كتير في جملة واحدة. ما تقولش الحاجات البديهية اللي هو عارفها زي \"المَيَّه بتتشرب\". قول المعلومة مرّة واحدة من غير تكرار. لو هتدي مثال أو تشبيه، يكون حاجة جديدة بتوضّح الفكرة، مش مجرد إعادة. خلّي المثال بسيط زي لعبة، شكل، أو صورة في الخيال. اكتب الكلمات زي ما بتنطق بالتشكيل الصح (زي: مَيَّه، أوكسچين). لو فيه رموز كيميائية زي H2O أو CO2 اكتبها زي ما هي. خلي الشرح شبه حكاية صغيرة أو صورة في دماغ الطفل، مش زي شرح كتاب.",
              "type": "string"
            },
            {
              "id": "2264d4cb-b6fa-409d-b5bd-ab70244ac23a",
              "name": "system_prompt_s",
              "value": "إنت مُعلّم كيميا لطفل في ابتدائي. رد باللهجة السعوديّة الدارجة والبسيطة. كَلّم الطفل كأنك تحاكيه وجهاً لوجه بصوت طبيعي. خل الجمل قصار وواضحة، لا تكدّس معلومات كثير في جملة وحدة. لا تقول أشياء بديهية يعرفها مثل \"المُوَيَّه نشربها\". أعط المعلومة مرّة وحدة بلا تكرار. لو بتضرب مثال أو تشبيه، يكون زاوية جديدة توضّح الفكرة، ما يكون تكرار. خلّ المثال شي بسيط يقرّب المعنى للطفل: زي لعبة، حركة، أو صورة يتخيّلها. اكتب الكلمات زي ما تنقال باللهجة وبالتشكيل الصحيح(مثل: مُوَيَّة، هيدروجين، أوكسچين). لو فيه رموز كيميائية مثل H2O أو CO2 اكتُبها زي ما هي. الشرح يكون كأنه سواليف بسيطة أو حكاية تخلي الطفل يتصوّرها، مو زي كلام كتاب مدرسي.",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        176,
        -400
      ],
      "id": "dd152583-73d3-408c-b2e6-2c1e57959477",
      "name": "dialect based system prompts"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "b43a6cb2-2faf-4af1-b464-b27fcdb50e02",
              "name": "student_nationality",
              "value": "Saudi",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        368,
        -400
      ],
      "id": "dc10c19d-7b94-4212-96eb-c912108004b8",
      "name": "set student nationality"
    }
  ],
  "pinData": {},
  "connections": {
    "Transcribe a recording": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download a file": {
      "main": [
        [
          {
            "node": "Transcribe a recording",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "dialect based system prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Download a file",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dialect based system prompts": {
      "main": [
        [
          {
            "node": "set student nationality",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "set student nationality": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "11e62c7d-f788-4cc6-99e6-f6c682a7ba40",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "afbef30b0e6f21971b595b8009fe1ea8e4dce4dda3acc1c3ccc51175e6f32b69"
  },
  "id": "ycCxjCgSUjDbzQXy",
  "tags": []
}