This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "My workflow",
"nodes": [
{
"parameters": {
"multipleMethods": true,
"path": "cdio2",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
-368,
48
],
"id": "2ab00dd7-09ae-4e40-bd20-41fc4a62698c",
"name": "Webhook"
},
{
"parameters": {
"respondWith": "text",
"responseBody": "={{ $json.query['hub.challenge'] }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.3,
"position": [
-144,
-64
],
"id": "b90df58e-b801-4e63-be40-6321cefb6714",
"name": "Respond to Webhook"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json['id kh\u00e1ch'] }}",
"contextWindowLength": 10000
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
880,
416
],
"id": "1cce4986-6967-4968-abd3-824ad891d1e2",
"name": "Simple Memory"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
672,
416
],
"id": "7bae23d2-fb3f-43b9-bbf2-7b930f76a2f6",
"name": "Google Gemini Chat Model",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "data.json",
"asBinaryProperty": false,
"additionalParameters": {}
},
"type": "n8n-nodes-base.githubTool",
"typeVersion": 1.1,
"position": [
1056,
432
],
"id": "01cee551-7ab8-4ba5-9f03-8efe2d6da961",
"name": "Get a file in GitHub",
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json['nd tin nh\u1eafn'] }}",
"options": {
"systemMessage": "=SYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\n\nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n\n\n\u0111o\u1ea1n tr\u00ean t\u1eeb t\u1eeb check l\u1ea1i \u0111\u00e3\n\nSYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\nN\u1ebfu trong input c\u00f3 tr\u01b0\u1eddng 'cache_hit': true v\u00e0 'cached_answer', \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 \u0111\u00e3 c\u00f3 c\u00e2u tr\u1ea3 l\u1eddi t\u01b0\u01a1ng t\u1ef1 tr\u01b0\u1edbc \u0111\u00f3. \nH\u00e3y \u0111\u1ecdc 'cached_answer' v\u00e0:\n- N\u1ebfu c\u00e2u tr\u1ea3 l\u1eddi v\u1eabn ph\u00f9 h\u1ee3p v\u1edbi c\u00e2u h\u1ecfi hi\u1ec7n t\u1ea1i \u2192 tr\u1ea3 l\u1ea1i y nguy\u00ean\n- N\u1ebfu c\u1ea7n tinh ch\u1ec9nh \u2192 \u0111i\u1ec1u ch\u1ec9nh cho ph\u00f9 h\u1ee3p v\u1edbi context\n- \u01afu ti\u00ean s\u1eed d\u1ee5ng th\u00f4ng tin t\u1eeb cache tr\u01b0\u1edbc, ch\u1ec9 query GitHub data khi th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\n\nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n\n\n\nSYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\nN\u1ebfu trong input c\u00f3 tr\u01b0\u1eddng 'cache_hit': true v\u00e0 'cached_answer', \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 \u0111\u00e3 c\u00f3 c\u00e2u tr\u1ea3 l\u1eddi t\u01b0\u01a1ng t\u1ef1 tr\u01b0\u1edbc \u0111\u00f3. \nH\u00e3y \u0111\u1ecdc 'cached_answer' v\u00e0:\n- N\u1ebfu c\u00e2u tr\u1ea3 l\u1eddi v\u1eabn ph\u00f9 h\u1ee3p v\u1edbi c\u00e2u h\u1ecfi hi\u1ec7n t\u1ea1i \u2192 tr\u1ea3 l\u1ea1i y nguy\u00ean\n- N\u1ebfu c\u1ea7n tinh ch\u1ec9nh \u2192 \u0111i\u1ec1u ch\u1ec9nh cho ph\u00f9 h\u1ee3p v\u1edbi context\n- \u01afu ti\u00ean s\u1eed d\u1ee5ng th\u00f4ng tin t\u1eeb cache tr\u01b0\u1edbc, ch\u1ec9 query GitHub data khi th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\nSAU KHI \u0110\u00c3 C\u00d3 TH\u00d4NG TIN TR\u1ea2 L\u1edcI:\n- b\u1ea1n s\u1ebd th\u1ea5y \u1edf \u0111\u1ea7u output s\u1ebd c\u00f3 1 file GitHub kh\u00e1c c\u00f3 t\u00ean QA.json v\u00e0 \u0111\u00e2y s\u1ebd l\u00e0 n\u01a1i m\u00e0 b\u1ea1n s\u1ebd g\u1eedi n\u1ed9i dung c\u1ee7a cu\u1ed9c h\u1ed9i tho\u1ea1i v\u00e0o \u0111\u00e2y theo nh\u01b0 setting c\u1ee7a node \nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.1,
"position": [
816,
160
],
"id": "fa90c6cf-c811-41d1-ada8-cbccaa07ed82",
"name": "AI Agent"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d58c9aa0-8132-47f3-bc4a-c10456df8f5c",
"name": "id kh\u00e1ch",
"value": "={{ $json.body.entry[0].messaging[0].sender.id }}",
"type": "string"
},
{
"id": "aa190287-c7bd-43cc-93c6-58c70c3eed53",
"name": "nd tin nh\u1eafn",
"value": "={{ $json.body.entry[0].messaging[0].message.text }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-160,
160
],
"id": "a2a0a2f5-610c-4ccc-b2be-86c9a867ee25",
"name": "Edit Fields"
},
{
"parameters": {
"sortFieldsUi": {
"sortField": [
{
"fieldName": "order"
}
]
},
"options": {
"disableDotNotation": false
}
},
"type": "n8n-nodes-base.sort",
"typeVersion": 1,
"position": [
1536,
0
],
"id": "3ff45dbf-e57e-4cd3-bf51-f5c60c92d116",
"name": "Sort"
},
{
"parameters": {
"resource": "file",
"operation": "edit",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "QA.json",
"fileContent": "={{ $json.fileContent }}",
"commitMessage": "commit t\u1eeb n8n"
},
"type": "n8n-nodes-base.github",
"typeVersion": 1.1,
"position": [
1520,
160
],
"id": "5d880713-fda6-471f-9b62-53ce9b0a94c1",
"name": "Edit a file",
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json['nd tin nh\u1eafn'] }}",
"options": {
"systemMessage": "SYSTEM:\nB\u1ea1n l\u00e0 m\u1ed9t tr\u1ee3 l\u00fd AI c\u00f3 nhi\u1ec7m v\u1ee5 ki\u1ec3m tra d\u1eef li\u1ec7u trong file QA.json (\u0111\u01b0\u1ee3c load t\u1eeb GitHub th\u00f4ng qua n8n). \nFile QA.json ch\u1ee9a danh s\u00e1ch c\u00e1c c\u00e2u h\u1ecfi v\u00e0 c\u00e2u tr\u1ea3 l\u1eddi m\u1eabu \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef. \nNhi\u1ec7m v\u1ee5 c\u1ee7a b\u1ea1n l\u00e0 so s\u00e1nh c\u00e2u h\u1ecfi m\u00e0 ng\u01b0\u1eddi d\u00f9ng v\u1eeba nh\u1eadp v\u1edbi d\u1eef li\u1ec7u trong QA.json. \n\nQUY \u0110\u1ecaNH TR\u1ea2 L\u1edcI:\n- N\u1ebfu n\u1ed9i dung c\u00e2u h\u1ecfi \u0111\u00e3 t\u1ed3n t\u1ea1i trong QA.json th\u00ec tr\u1ea3 l\u1eddi: \"N\u1ed9i dung tin nh\u1eafn \u0111\u00e3 t\u1ed3n t\u1ea1i\".\n- N\u1ebfu n\u1ed9i dung c\u00e2u h\u1ecfi ch\u01b0a c\u00f3 trong QA.json th\u00ec tr\u1ea3 l\u1eddi: \"N\u1ed9i dung ch\u01b0a c\u00f3\".\n- Ch\u1ec9 tr\u1ea3 v\u1ec1 \u0111\u00fang k\u1ebft qu\u1ea3 theo quy \u0111\u1ecbnh tr\u00ean, kh\u00f4ng th\u00eam th\u00f4ng tin kh\u00e1c.\n\nL\u01afU \u00dd:\nV\u1edbi m\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi c\u00f3 t\u1eeb ng\u1eef thay th\u1ebf chung chung (v\u00ed d\u1ee5: \"ng\u00e0nh n\u00e0y\", \"ng\u00e0nh \u0111\u00f3\", \"ng\u00e0nh kia\"), b\u1ea1n c\u1ea7n d\u1ef1a v\u00e0o ng\u1eef c\u1ea3nh v\u00e0 \u0111\u1eb7c bi\u1ec7t l\u00e0 c\u00e2u tr\u1ea3 l\u1eddi \u0111\u00e3 l\u01b0u trong QA.json \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ng\u00e0nh c\u1ee5 th\u1ec3. N\u1ebfu trong d\u1eef li\u1ec7u \u0111\u00e3 c\u00f3 th\u00f4ng tin r\u00f5 r\u00e0ng v\u1ec1 ng\u00e0nh (v\u00ed d\u1ee5: Digital Marketing), th\u00ec ph\u1ea3i match \u0111\u00fang v\u1edbi ng\u00e0nh \u0111\u00f3 khi tr\u1ea3 l\u1eddi.\n\nUSER PROMPT:\nC\u00e2u h\u1ecfi ng\u01b0\u1eddi d\u00f9ng: {{ $json[\"user_input\"] }}\nD\u1eef li\u1ec7u QA: {{ $json[\"QA\"] }}\n"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
176,
64
],
"id": "fc190c31-5660-445b-b235-975a824f9c07",
"name": "AI Agent1"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json['id kh\u00e1ch'] }}",
"contextWindowLength": 10000
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
240,
352
],
"id": "b6d9c647-51d1-4477-9add-4c8614cc5849",
"name": "Simple Memory1"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
48,
336
],
"id": "fb94bef2-43ec-404e-b8fa-25208b8719e8",
"name": "Google Gemini Chat Model1",
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "QA.json",
"asBinaryProperty": false,
"additionalParameters": {}
},
"type": "n8n-nodes-base.githubTool",
"typeVersion": 1.1,
"position": [
464,
320
],
"id": "3f030399-68bd-4bd4-8cc7-c054b3025e8d",
"name": "Get a file in GitHub1",
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f4ada44d-cc4b-4733-af12-fb308ca3ff8f",
"leftValue": "={{ $json.output }}",
"rightValue": "\"N\u1ed9i dung tin nh\u1eafn \u0111\u00e3 t\u1ed3n t\u1ea1i\"",
"operator": {
"type": "string",
"operation": "contains"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
624,
0
],
"id": "89ab4377-b3c8-4494-9523-3d4fadf9f584",
"name": "If"
},
{
"parameters": {},
"type": "n8n-nodes-base.merge",
"typeVersion": 3.2,
"position": [
1120,
0
],
"id": "8e2cf8f8-e556-4249-b67c-080287568723",
"name": "Merge"
},
{
"parameters": {
"method": "POST",
"url": "=https://graph.facebook.com/v23.0/{{ $('Webhook').item.json.body.entry[0].messaging[0].recipient.id }}/messages?access_token=EAAKiLjdsBY0BPoR9ZBOHtyxdEjza3ZAwZCM6CLlojUSkBOpALWnI32ciGKIyTqQ5Pj0CkjbZCMM9STgHZALNjrGyAVVAq1ugUAEJnbAwVBhj5wl5bTSp7jQL3XJhHlZB9LJzksCZBOvt8AGBD4X4xggAQfZAYGJIuAuFYkwvWLb4AOdm4slFLfOZAoNRooasjQVe2FQ4KsgZDZD",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{$json}}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1664,
0
],
"id": "fd06e4a5-8a9d-40ee-8feb-4de9ccf21f4f",
"name": "HTTP Request"
},
{
"parameters": {
"jsCode": "const fullText = $input.first().json.output;\nconst recipientId = $('Edit Fields').first().json['id kh\u00e1ch'];\n\nconst items = [];\nlet orderIndex = 0; // Th\u00eam bi\u1ebfn \u0111\u1ebfm th\u1ee9 t\u1ef1 ri\u00eang\n\nfor (let i = 0; i < fullText.length; i += 1890) {\n items.push({\n json: {\n order: orderIndex, // S\u1eed d\u1ee5ng orderIndex thay v\u00ec i\n recipient: { id: recipientId },\n messaging_type: \"RESPONSE\",\n message: { text: fullText.slice(i, i + 1890) }\n }\n });\n orderIndex++; // T\u0103ng th\u1ee9 t\u1ef1 l\u00ean 1\n}\n\nreturn items;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1328,
0
],
"id": "effc5f3b-e1ae-410e-9888-fa3792955b79",
"name": "Code",
"executeOnce": false
},
{
"parameters": {
"jsCode": "// L\u1ea5y d\u1eef li\u1ec7u QA.json v\u00e0 tin nh\u1eafn ng\u01b0\u1eddi d\u00f9ng\nconst qaData = JSON.parse($('Get a file in GitHub1').first().json.data);\nconst userMessage = $json['nd tin nh\u1eafn']; // L\u1ea5y t\u1eeb data \u0111\u00e3 combine\n\nlet foundAnswer = \"Kh\u00f4ng t\u00ecm th\u1ea5y c\u00e2u tr\u1ea3 l\u1eddi.\";\n\n// T\u00ecm exact match ho\u1eb7c similar match\nif (Array.isArray(qaData)) {\n for (let item of qaData) {\n if (item.question && \n (item.question.toLowerCase() === userMessage.toLowerCase() ||\n item.question.toLowerCase().includes(userMessage.toLowerCase()) ||\n userMessage.toLowerCase().includes(item.question.toLowerCase()))) {\n foundAnswer = item.answer;\n break;\n }\n }\n}\n\nreturn [{\n json: {\n output: foundAnswer,\n from_cache: true\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
880,
-16
],
"id": "e7ff0e14-196b-4cac-9008-492e47e0ec55",
"name": "Code1",
"executeOnce": false
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "fdd4d80e-e644-4a26-841d-1c9ad0740b9a",
"name": "check_result",
"value": "={{ $json.output }}",
"type": "string"
},
{
"id": "abc123-def4-5678-9abc-def123456789",
"name": "nd tin nh\u1eafn",
"value": "={{ $('Edit Fields').first().json['nd tin nh\u1eafn'] }}",
"type": "string"
},
{
"id": "xyz789-abc1-2345-6789-abc123456def",
"name": "id kh\u00e1ch",
"value": "={{ $('Edit Fields').first().json['id kh\u00e1ch'] }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
464,
0
],
"id": "95f165cd-07b6-45a3-8bd5-b0592dd2f565",
"name": "Combine Data"
},
{
"parameters": {
"jsCode": "// L\u1ea5y answer t\u1eeb AI Agent (th\u00f4ng qua Get a file node)\nconst answer = $input.first().json.output || $('AI Agent').first().json.output;\n\n// L\u1ea5y QA data hi\u1ec7n t\u1ea1i\nconst currentData = JSON.parse($input.first().json.data || '[]');\n\n// T\u1ea1o entry m\u1edbi\nconst newEntry = {\n \"question\": $('Edit Fields').first().json['nd tin nh\u1eafn'],\n \"answer\": answer,\n \"timestamp\": new Date().toISOString()\n};\n\ncurrentData.push(newEntry);\n\nreturn [{\n json: {\n fileContent: JSON.stringify(currentData, null, 2)\n }\n}];"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1328,
160
],
"id": "677fd73e-0c08-4944-87e9-f994b4495e6b",
"name": "Code content"
},
{
"parameters": {
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "QA.json",
"additionalParameters": {}
},
"type": "n8n-nodes-base.github",
"typeVersion": 1.1,
"position": [
1168,
160
],
"id": "e5b899c7-3457-403d-aa79-2a797feac35e",
"name": "Get a file",
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"multipleMethods": true,
"path": "cdio2",
"responseMode": "responseNode",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
2144,
1504
],
"id": "f0766320-ab89-4610-9148-73d33da1426b",
"name": "Webhook1"
},
{
"parameters": {
"respondWith": "text",
"responseBody": "={{ $json.query['hub.challenge'] }}",
"options": {}
},
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.3,
"position": [
2368,
1392
],
"id": "56335e71-386b-4731-af66-a4165e845753",
"name": "Respond to Webhook1"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json['id kh\u00e1ch'] }}",
"contextWindowLength": 10000
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
2688,
1856
],
"id": "6738678f-b884-480f-b4f3-b146a6f8e5f0",
"name": "Simple Memory2"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"typeVersion": 1,
"position": [
2480,
1856
],
"id": "60588235-911b-4184-9c46-35cdca585589",
"name": "Google Gemini Chat Model2"
},
{
"parameters": {
"method": "POST",
"url": "=https://graph.facebook.com/v23.0/{{ $('Webhook1').item.json.body.entry[0].messaging[0].recipient.id }}/messages?access_token=EAAKiLjdsBY0BPXUSrxr1F7Qs7kc5IGVr2X3NFI2SqOm9ggJ07UKV7aJ2No6Y0QtQOu8YxgIBU8q1aZAEF29HXWsGsdqsS1lMIw5otJKvwOXPDaMaDFuVLs50JqE9qOcrOM8OrvOJI41jjD9NNFHJYXwNgH9dzZAlsuVZAgGddO00Dwf7L9WO8z5ThTZBMlmMtEs84AZDZD",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={{$json}}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
3328,
1616
],
"id": "3b63d14d-9002-4ae5-bfe3-4ca2384be78f",
"name": "HTTP Request1"
},
{
"parameters": {
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "data.json",
"asBinaryProperty": false,
"additionalParameters": {}
},
"type": "n8n-nodes-base.githubTool",
"typeVersion": 1.1,
"position": [
2864,
1872
],
"id": "6c3d5226-0041-49f5-9c09-3f5cede2f4e5",
"name": "Get a file in GitHub2"
},
{
"parameters": {
"jsCode": "const fullText = $input.first().json.output;\nconst recipientId = $('Edit Fields1').first().json['id kh\u00e1ch'];\n\nconst items = [];\nlet orderIndex = 0; // Th\u00eam bi\u1ebfn \u0111\u1ebfm th\u1ee9 t\u1ef1 ri\u00eang\n\nfor (let i = 0; i < fullText.length; i += 1890) {\n items.push({\n json: {\n order: orderIndex, // S\u1eed d\u1ee5ng orderIndex thay v\u00ec i\n recipient: { id: recipientId },\n messaging_type: \"RESPONSE\",\n message: { text: fullText.slice(i, i + 1890) }\n }\n });\n orderIndex++; // T\u0103ng th\u1ee9 t\u1ef1 l\u00ean 1\n}\n\nreturn items;"
},
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
3040,
1616
],
"id": "cf9eba3e-a437-43a6-a2dd-5663165ea3ed",
"name": "Code2",
"executeOnce": false
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json['nd tin nh\u1eafn'] }}",
"options": {
"systemMessage": "=SYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\n\nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n\n\n\u0111o\u1ea1n tr\u00ean t\u1eeb t\u1eeb check l\u1ea1i \u0111\u00e3\n\nSYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\nN\u1ebfu trong input c\u00f3 tr\u01b0\u1eddng 'cache_hit': true v\u00e0 'cached_answer', \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 \u0111\u00e3 c\u00f3 c\u00e2u tr\u1ea3 l\u1eddi t\u01b0\u01a1ng t\u1ef1 tr\u01b0\u1edbc \u0111\u00f3. \nH\u00e3y \u0111\u1ecdc 'cached_answer' v\u00e0:\n- N\u1ebfu c\u00e2u tr\u1ea3 l\u1eddi v\u1eabn ph\u00f9 h\u1ee3p v\u1edbi c\u00e2u h\u1ecfi hi\u1ec7n t\u1ea1i \u2192 tr\u1ea3 l\u1ea1i y nguy\u00ean\n- N\u1ebfu c\u1ea7n tinh ch\u1ec9nh \u2192 \u0111i\u1ec1u ch\u1ec9nh cho ph\u00f9 h\u1ee3p v\u1edbi context\n- \u01afu ti\u00ean s\u1eed d\u1ee5ng th\u00f4ng tin t\u1eeb cache tr\u01b0\u1edbc, ch\u1ec9 query GitHub data khi th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\n\nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n\n\n\nSYSTEM:\nB\u1ea1n \u0111ang \u0111\u00f3ng vai chatbot t\u01b0 v\u1ea5n tuy\u1ec3n sinh c\u1ee7a \u0110\u1ea1i h\u1ecdc Duy T\u00e2n. \nD\u1eef li\u1ec7u m\u00e0 b\u1ea1n \u0111\u01b0\u1ee3c cung c\u1ea5p \u0111\u00e3 \u0111\u01b0\u1ee3c load tr\u1ef1c ti\u1ebfp t\u1eeb GitHub repository th\u00f4ng qua n8n, file c\u00f3 t\u00ean l\u00e0 data.json.\nD\u1eef li\u1ec7u bao g\u1ed3m nhi\u1ec1u file JSON con g\u1ed9p l\u1ea1i v\u00e0 m\u1ed7i key c\u1ea5p cao s\u1ebd ch\u1ee9a th\u00f4ng tin quan tr\u1ecdng nh\u01b0: \n- Th\u00f4ng tin h\u1ecdc ph\u00ed, ch\u00ednh s\u00e1ch h\u1ecdc b\u1ed5ng, \u0111\u1ed1i t\u01b0\u1ee3ng \u01b0u ti\u00ean\n- Chi ti\u1ebft ng\u00e0nh/chuy\u00ean ng\u00e0nh \u0111\u00e0o t\u1ea1o\n- \u0110i\u1ec3m tr\u00fang tuy\u1ec3n theo c\u00e1c ph\u01b0\u01a1ng th\u1ee9c x\u00e9t tuy\u1ec3n\n- Th\u00f4ng tin v\u1ec1 tr\u01b0\u1eddng, khoa, ch\u01b0\u01a1ng tr\u00ecnh \u0111\u00e0o t\u1ea1o (trong n\u01b0\u1edbc v\u00e0 qu\u1ed1c t\u1ebf)\n- Xu h\u01b0\u1edbng vi\u1ec7c l\u00e0m v\u00e0 g\u1ee3i \u00fd ng\u00e0nh h\u1ecdc theo n\u0103ng l\u1ef1c, s\u1edf th\u00edch\n\nB\u1ea1n c\u1ea7n hi\u1ec3u m\u1ed9t s\u1ed1 t\u1eeb kh\u00f3a vi\u1ebft t\u1eaft \u0111\u1ec3 gi\u1ea3i th\u00edch \u0111\u00fang m\u00e3 ng\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh:\nCMU: Carnegie Mellon University\nPSU: Pennsylvania State University\nCSU: California State University\nPNU: Purdue Northwest University\nHP: Ch\u01b0\u01a1ng tr\u00ecnh T\u00e0i n\u0103ng\nVJJ: Ch\u01b0\u01a1ng tr\u00ecnh Vi\u1ec7t Nh\u1eadt\nTROY: Ch\u01b0\u01a1ng tr\u00ecnh Du h\u1ecdc t\u1ea1i ch\u1ed7 l\u1ea5y b\u1eb1ng \u0110\u1ea1i h\u1ecdc Troy (M\u1ef9)\n\nH\u01af\u1edaNG D\u1eaaN TR\u1ea2 L\u1edcI:\nN\u1ebfu trong input c\u00f3 tr\u01b0\u1eddng 'cache_hit': true v\u00e0 'cached_answer', \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 \u0111\u00e3 c\u00f3 c\u00e2u tr\u1ea3 l\u1eddi t\u01b0\u01a1ng t\u1ef1 tr\u01b0\u1edbc \u0111\u00f3. \nH\u00e3y \u0111\u1ecdc 'cached_answer' v\u00e0:\n- N\u1ebfu c\u00e2u tr\u1ea3 l\u1eddi v\u1eabn ph\u00f9 h\u1ee3p v\u1edbi c\u00e2u h\u1ecfi hi\u1ec7n t\u1ea1i \u2192 tr\u1ea3 l\u1ea1i y nguy\u00ean\n- N\u1ebfu c\u1ea7n tinh ch\u1ec9nh \u2192 \u0111i\u1ec1u ch\u1ec9nh cho ph\u00f9 h\u1ee3p v\u1edbi context\n- \u01afu ti\u00ean s\u1eed d\u1ee5ng th\u00f4ng tin t\u1eeb cache tr\u01b0\u1edbc, ch\u1ec9 query GitHub data khi th\u1ef1c s\u1ef1 c\u1ea7n thi\u1ebft\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 c\u00e1c th\u00f4ng tin li\u00ean quan \u0111\u1ebfn tr\u01b0\u1eddng (l\u1ecbch s\u1eed th\u00e0nh l\u1eadp, hi\u1ec7u tr\u01b0\u1edfng, ch\u1ee7 t\u1ecbch , c\u00e1n b\u1ed9, ch\u1ec9 ti\u00eau tuy\u1ec3n sinh, c\u01a1 c\u1ea5u t\u1ed5 ch\u1ee9c), h\u00e3y ph\u00e2n lo\u1ea1i c\u00e2u h\u1ecfi n\u00e0y v\u00e0o nh\u00f3m *\"thong_tin_truong\"*. \n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi v\u1ec1 t\u1ed5ng s\u1ed1 nh\u00f3m ng\u00e0nh ho\u1eb7c c\u00e1c nh\u00f3m ng\u00e0nh \u0111\u00e0o t\u1ea1o th\u00ec ch\u1ec9 tr\u1ea3 l\u1eddi c\u00f3 bao nhi\u00eau nh\u00f3m ng\u00e0nh, sau \u0111\u00f3 li\u1ec7t k\u00ea t\u00ean c\u00e1c nh\u00f3m ng\u00e0nh l\u1edbn (v\u00ed d\u1ee5: C\u00f4ng ngh\u1ec7 th\u00f4ng tin, Khoa h\u1ecdc m\u00e1y t\u00ednh, C\u01a1 kh\u00ed, X\u00e2y d\u1ef1ng, Y t\u1ebf...).\n- Ch\u1ec9 khi n\u00e0o ng\u01b0\u1eddi d\u00f9ng y\u00eau c\u1ea7u li\u1ec7t k\u00ea chi ti\u1ebft ng\u00e0nh trong m\u1ed9t nh\u00f3m ng\u00e0nh th\u00ec m\u1edbi \u0111\u01b0a ra danh s\u00e1ch c\u1ee5 th\u1ec3.\n- N\u1ebfu ng\u01b0\u1eddi d\u00f9ng h\u1ecfi d\u1ea1ng yes/no (c\u00f3 hay kh\u00f4ng) th\u00ec tr\u1ea3 l\u1eddi \u201cc\u00f3\u201d ho\u1eb7c \u201ckh\u00f4ng\u201d, sau \u0111\u00f3 h\u1ecfi th\u00eam \u201cB\u1ea1n c\u00f3 mu\u1ed1n m\u00ecnh t\u01b0 v\u1ea5n chi ti\u1ebft h\u01a1n kh\u00f4ng?\u201d.\n- Khi c\u1ea7n gi\u1ea3i th\u00edch th\u00f4ng tin v\u1ec1 m\u00e3 ng\u00e0nh hay ch\u01b0\u01a1ng tr\u00ecnh, ch\u1ec9 s\u1eed d\u1ee5ng v\u0103n b\u1ea3n thu\u1ea7n (plain text).\nSAU KHI \u0110\u00c3 C\u00d3 TH\u00d4NG TIN TR\u1ea2 L\u1edcI:\n- b\u1ea1n s\u1ebd th\u1ea5y \u1edf \u0111\u1ea7u output s\u1ebd c\u00f3 1 file GitHub kh\u00e1c c\u00f3 t\u00ean QA.json v\u00e0 \u0111\u00e2y s\u1ebd l\u00e0 n\u01a1i m\u00e0 b\u1ea1n s\u1ebd g\u1eedi n\u1ed9i dung c\u1ee7a cu\u1ed9c h\u1ed9i tho\u1ea1i v\u00e0o \u0111\u00e2y theo nh\u01b0 setting c\u1ee7a node \nQUY \u0110\u1ecaNH \u0110\u1ecaNH D\u1ea0NG:\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG s\u1eed d\u1ee5ng \u0111\u1ecbnh d\u1ea1ng Markdown (bao g\u1ed3m *, -, +, #, _).\n- Tuy\u1ec7t \u0111\u1ed1i KH\u00d4NG t\u1ea1o bullet list ho\u1eb7c numbering t\u1ef1 \u0111\u1ed9ng.\n- N\u1ebfu c\u1ea7n xu\u1ed1ng d\u00f2ng, ch\u1ec9 s\u1eed d\u1ee5ng k\u00fd t\u1ef1 xu\u1ed1ng d\u00f2ng (\\n).\n- Tr\u1ea3 l\u1eddi ng\u1eafn g\u1ecdn, \u0111\u00fang tr\u1ecdng t\u00e2m.\n\nUSER PROMPT:\n{{ $json[\"user_input\"] }}\n"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.1,
"position": [
2640,
1632
],
"id": "e803c30a-37fb-464b-aa61-858bf2415d66",
"name": "AI Agent2"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "d58c9aa0-8132-47f3-bc4a-c10456df8f5c",
"name": "id kh\u00e1ch",
"value": "={{ $json.body.entry[0].messaging[0].sender.id }}",
"type": "string"
},
{
"id": "aa190287-c7bd-43cc-93c6-58c70c3eed53",
"name": "nd tin nh\u1eafn",
"value": "={{ $json.body.entry[0].messaging[0].message.text }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
2352,
1616
],
"id": "7defc2ee-273b-4d1c-ad84-45cf8b942138",
"name": "Edit Fields1"
},
{
"parameters": {
"sortFieldsUi": {
"sortField": [
{
"fieldName": "order"
}
]
},
"options": {
"disableDotNotation": false
}
},
"type": "n8n-nodes-base.sort",
"typeVersion": 1,
"position": [
3200,
1616
],
"id": "da36cef3-8511-45ad-b0af-16cc37cd4c8c",
"name": "Sort1"
},
{
"parameters": {
"resource": "file",
"operation": "edit",
"owner": {
"__rl": true,
"value": "nguyendangthinhit",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "CDIO_2",
"mode": "name"
},
"filePath": "QA.json",
"fileContent": "={{ JSON.stringify({\n \"question\": $('Edit Fields1').first().json['nd tin nh\u1eafn'],\n \"answer\": $input.item.json.output\n}, null, 2) }}",
"commitMessage": "commit t\u1eeb n8n"
},
"type": "n8n-nodes-base.github",
"typeVersion": 1.1,
"position": [
3120,
1840
],
"id": "3b7a6d1b-ec2a-4eb3-bd58-535bb8aa9bd8",
"name": "Edit a file1"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get a file in GitHub": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
},
{
"node": "Get a file",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "AI Agent1",
"type": "main",
"index": 0
}
]
]
},
"Sort": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory1": {
"ai_memory": [
[
{
"node": "AI Agent1",
"type": "ai_memory",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get a file in GitHub1": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"AI Agent1": {
"main": [
[
{
"node": "Combine Data",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
],
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "Sort",
"type": "main",
"index": 0
}
]
]
},
"Code1": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Combine Data": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Edit a file": {
"main": [
[]
]
},
"Code content": {
"main": [
[
{
"node": "Edit a file",
"type": "main",
"index": 0
}
]
]
},
"Get a file": {
"main": [
[
{
"node": "Code content",
"type": "main",
"index": 0
}
]
]
},
"Webhook1": {
"main": [
[
{
"node": "Respond to Webhook1",
"type": "main",
"index": 0
}
],
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory2": {
"ai_memory": [
[
{
"node": "AI Agent2",
"type": "ai_memory",
"index": 0
}
]
]
},
"Google Gemini Chat Model2": {
"ai_languageModel": [
[
{
"node": "AI Agent2",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Get a file in GitHub2": {
"ai_tool": [
[
{
"node": "AI Agent2",
"type": "ai_tool",
"index": 0
}
]
]
},
"Code2": {
"main": [
[
{
"node": "Sort1",
"type": "main",
"index": 0
}
]
]
},
"AI Agent2": {
"main": [
[
{
"node": "Edit a file1",
"type": "main",
"index": 0
},
{
"node": "Code2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "AI Agent2",
"type": "main",
"index": 0
}
]
]
},
"Sort1": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "3e6a7c65-a2ec-440f-a2c4-7aba5f034528",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "Qol5IGzAyMzNHJCK",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
githubApigooglePalmApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
N8N 23 9. Uses memoryBufferWindow, lmChatGoogleGemini, githubTool, agent. Webhook trigger; 32 nodes.
Source: https://github.com/nguyendangthinhit/CDIO_2/blob/c0f9695e8942fc2ad548d0350b96917a650e482b/n8n/n8n_23_9.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
N8N 30 9. Uses memoryBufferWindow, lmChatGoogleGemini, agent, httpRequest. Webhook trigger; 23 nodes.
N8N 9 9. Uses agent, memoryBufferWindow, githubTool, lmChatGoogleGemini. Webhook trigger; 10 nodes.
N8N. Uses lmChatGoogleGemini, httpRequest, agent, memoryBufferWindow. Webhook trigger; 10 nodes.
N8N-Chat. Uses jwt, agent, memoryBufferWindow, lmChatGoogleGemini. Webhook trigger; 66 nodes.
by Varritech Technologies