8
n8n 中文网amn8n.com

AI语音面试官

中级

这是一个Personal Productivity, AI Chatbot领域的自动化工作流,包含 15 个节点。主要使用 If, Set, Merge, Webhook, RespondToWebhook 等节点。 使用基于语音的Google Gemini AI面试官练习求职面试

前置要求
  • HTTP Webhook 端点(n8n 会自动生成)
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "8N6ckeC2TziirGLt",
  "meta": {
    "instanceId": "e37465823f6ec6359565a2d8959871ac9f31984acb057f2daf8d42b2a65baea0",
    "templateCredsSetupCompleted": true
  },
  "name": "AI语音面试官",
  "tags": [],
  "nodes": [
    {
      "id": "3a21db35-9973-472a-93f9-b8a2ba3175f2",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -368,
        -16
      ],
      "webhookId": "df27691d-564e-4207-8d9f-26a239f7a410",
      "parameters": {
        "path": "df27691d-564e-4207-8d9f-26a239f7a410",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "71fe1f4b-bb7e-4cd1-be2a-4e3988a172e7",
      "name": "如果",
      "type": "n8n-nodes-base.if",
      "position": [
        -48,
        -64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "fb60c269-8e2f-4ba7-a278-4a0f7e8eb598",
              "operator": {
                "type": "string",
                "operation": "empty",
                "singleValue": true
              },
              "leftValue": "={{ $json.body.conversationHistory }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "8ed1f967-bc1a-4c47-bca9-bf3750d68dea",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        688,
        -48
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "79c3c250-b974-4094-af8c-a8c472071c8c",
      "name": "基础LLM链",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        912,
        -176
      ],
      "parameters": {
        "text": "={{ $json.prompt }}",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "874576cc-a94c-491f-a398-55821de46c6d",
      "name": "Google Gemini 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        928,
        112
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "id": "a3qmkEPuRAKXTstM",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "29bf80c7-84d2-40de-a56f-ddf82b659273",
      "name": "响应 Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1616,
        -176
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "={{ ({\n  \"question\": $json.newQuestion,\n  \"conversationHistory\": $json.updatedHistory\n}) }}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "b533e3ac-7b58-4520-9e47-60ee8d3c01c3",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -432,
        -144
      ],
      "parameters": {
        "width": 304,
        "height": 256,
        "content": "从这里开始"
      },
      "typeVersion": 1
    },
    {
      "id": "c23be228-ded4-4b64-a69c-c73ddb5b1b26",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        208,
        -400
      ],
      "parameters": {
        "color": 3,
        "content": "1. 第一个问题"
      },
      "typeVersion": 1
    },
    {
      "id": "139ab288-03bb-40cf-bbe7-a95f57776d80",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        224
      ],
      "parameters": {
        "color": 5,
        "width": 352,
        "content": "2. 后续问题"
      },
      "typeVersion": 1
    },
    {
      "id": "e7752791-23d2-43df-8393-6f8268e6a901",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        928,
        -336
      ],
      "parameters": {
        "content": "3. AI大脑 (Google Gemini)"
      },
      "typeVersion": 1
    },
    {
      "id": "a8de54ce-397d-4ed4-aea1-f70baf730d05",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        192
      ],
      "parameters": {
        "color": 4,
        "content": "4. 发送响应"
      },
      "typeVersion": 1
    },
    {
      "id": "6bc9a581-195d-46dc-88b4-b2721d088cc2",
      "name": "创建初始提示",
      "type": "n8n-nodes-base.set",
      "position": [
        272,
        -240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "876f5f51-40d9-4f78-a820-f89e319389ec",
              "name": "prompt",
              "type": "string",
              "value": "=You are an expert technical recruiter named 'Alex'. You are conducting an interview for the position of '{{ $json.body.jobTitle }}'. Your task is to conduct a professional interview based *only* on the provided resume and job description.\n\nHere is the job description:\n\"\"\"\n{{ $json.body.jobDescription }}\n\"\"\"\n\nHere is the candidate's resume text:\n\"\"\"\n{{ $json.body.resumeText }}\n\"\"\"\n\nAsk the single, most impactful opening question. Ask only one question. Do not add any conversational filler.\n"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f5ed22be-16b7-4bdc-b6c4-1310521110fa",
      "name": "创建后续提示",
      "type": "n8n-nodes-base.set",
      "position": [
        288,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6de8f022-862c-4630-8a0f-bbddbe9681b3",
              "name": "prompt",
              "type": "string",
              "value": "=You are an expert technical recruiter named 'Alex', continuing an interview for '{{ $json.body.jobTitle }}'. The conversation history is below. Ask the next logical follow-up question based on the user's last answer. Do not repeat questions. Ask only one question.  CONVERSATION HISTORY: {{ $json.body.conversationHistory }}AI: {{ $json.body.lastQuestion }} User: {{ $json.body.answer }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "70021fa4-0326-4ee6-a5bf-518e6ecb030d",
      "name": "准备响应数据",
      "type": "n8n-nodes-base.set",
      "position": [
        1344,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6599f767-1863-47df-b4b3-3a3d4999a287",
              "name": "newQuestion",
              "type": "string",
              "value": "={{ $('Basic LLM Chain').item.json.text }}"
            },
            {
              "id": "b6955598-7a22-4e67-ad57-b4c000872d74",
              "name": "updatedHistory",
              "type": "string",
              "value": "={{ $('Webhook').item.json.body.conversationHistory || '' }}AI: {{ $json.newQuestion }}\\nUser:"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b9162dfe-4159-472f-a928-665d2146fdf1",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        -576
      ],
      "parameters": {
        "color": 5,
        "width": 528,
        "height": 832,
        "content": "此工作流有什么功能?"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "18020fc0-129a-4b7c-8c57-175011e4a81f",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Create Initial Prompt",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create Follow-up Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Prepare Response Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Initial Prompt": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Response Data": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Follow-up Prompt": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

中级 - 个人效率, AI 聊天机器人

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
中级
节点数量15
分类2
节点类型8
难度说明

适合有一定经验的用户,包含 6-15 个节点的中等复杂度工作流

外部链接
在 n8n.io 查看

分享此工作流