1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-08-25 18:20:46 +02:00

Add content for AI Agents roadmap

This commit is contained in:
Kamran Ahmed
2025-04-29 23:16:46 +01:00
parent b9aee719b2
commit 464bcb6c66
98 changed files with 533 additions and 476 deletions

View File

@@ -13,494 +13,394 @@ const __dirname = dirname(__filename);
* @property {string} text - The text content of the node
*/
const roadmapId = 'php';
const roadmapId = 'ai-agents';
/** @type {Node[]} */
const nodes = [
{
"id": "_hYN0gEi9BL24nptEtXWU",
"text": "PHP > Introduction to PHP"
id: 'ZF5_5Y5zqa75Ov22JACX6',
text: 'AI Agents > Transformer Models and LLMs',
},
{
"id": "_LhLDVZjLt1DoAP1NuUES",
"text": "PHP > Introduction to PHP > What is PHP?"
id: 'GAjuWyJl9CI1nqXBp6XCf',
text: 'AI Agents > LLM Fundamentals > Model Mechanis > Tokenization',
},
{
"id": "b2CuLrhsUNnb4OxI6RRAS",
"text": "PHP > Introduction to PHP > Evolution and History"
id: 'dyn1LSioema-Bf9lLTgUZ',
text: 'AI Agents > LLM Fundamentals > Model Mechanis > Context Windows',
},
{
"id": "6sHRQTcoKL3TlgNJlwyx8",
"text": "PHP > Introduction to PHP > PHP Versions and Features"
id: '1fiWPBV99E2YncqdCgUw2',
text: 'AI Agents > LLM Fundamentals > Model Mechanis > Token Based Pricing',
},
{
"id": "3_TuxOSzBuktBlBF05r_z",
"text": "PHP > Installing PHP"
id: 'L1zL1GzqjSAjF06pIIXhy',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Temperature',
},
{
"id": "36Y1HkHxhuxh2qVQB8NVE",
"text": "PHP > WAMP"
id: 'icbp1NjurQfdM0dHnz6v2',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Top-p',
},
{
"id": "-wniKEBwbF0Fi1fHpF-Gc",
"text": "PHP > XAMPP"
id: 'z_N-Y0zGkv8_qHPuVtimL',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Frequency Penalty',
},
{
"id": "t7p7TU2khaxsZPYAdwFAA",
"text": "PHP > MAMP"
id: 'Vd8ycw8pW-ZKvg5WYFtoh',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Presence Penalty',
},
{
"id": "7LjxtrmgJtTJc0_kP83Tr",
"text": "PHP > LAMP"
id: 'K0G-Lw069jXUJwZqHtybd',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Stopping Criteria',
},
{
"id": "hzBUHSuFwLYNooF_vEmrs",
"text": "PHP > Basic PHP Syntax"
id: 'Bn_BkthrVX_vOuwQzvPZa',
text: 'AI Agents > LLM Fundamentals > Generation Controls > Max Length',
},
{
"id": "D0BtyxyjIBcpfn5wP23WC",
"text": "PHP > Variables and Scope"
id: 'DSJAhQhc1dQmBHQ8ZkTau',
text: 'AI Agents > Model Families and Licences > Open Weight Models',
},
{
"id": "srIHPZabaCGdB5VvUXaMa",
"text": "PHP > Data Types"
id: 'tJYmEDDwK0LtEux-kwp9B',
text: 'AI Agents > Model Families and Licences > Closed Weight Models',
},
{
"id": "pzReF4C0mcCWAnpfIJbwl",
"text": "PHP > Casting Data Types"
id: 'i2NE6haX9-7mdoV5LQ3Ah',
text: 'AI Agents > Understand the Basics > Streamed vs Unstreamed Responses',
},
{
"id": "2ykzBBdYhWuM-neGf0AWP",
"text": "PHP > echo"
id: 'N3yZfUxphxjiupqGpyaS9',
text: 'AI Agents > Understand the Basics > Reasoning vs Standard Models',
},
{
"id": "NQUmO90sqe7fnzod3Ia8H",
"text": "PHP > print"
id: '5OW_6o286mj470ElFyJ_5',
text: 'AI Agents > Understand the Basics > Fine-tuning vs Prompt Engineering',
},
{
"id": "wsC7OGXOyfCY4pLLNrR2v",
"text": "PHP > print_r"
id: 'UIm54UmICKgep6s8Itcyv',
text: 'AI Agents > Understand the Basics > Embeddings and Vector Search',
},
{
"id": "JCCeVC0hOrvIeyfg1ScKA",
"text": "PHP > var_dump"
id: 'qwVQOwBTLA2yUgRISzC8k',
text: 'AI Agents > Understand the Basics > Understand the Basics of RAG',
},
{
"id": "VLRLymQmLfscrBfzXKvHi",
"text": "PHP > Constants"
id: 'B8dzg61TGaknuruBgkEJd',
text: 'AI Agents > Understand the Basics > Pricing of Common Models',
},
{
"id": "IhKjvT6CjRz4dsSU7SNQo",
"text": "PHP > Arrays"
id: 'aFZAm44nP5NefX_9TpT0A',
text: 'AI Agents > AI Agents 101 > What are AI Agents?',
},
{
"id": "j2S8dP3HlAOOoZdpj-7Dx",
"text": "PHP > Arrays > Indexed Arrays"
id: '2zsOUWJQ8e7wnoHmq1icG',
text: 'AI Agents > AI Agents 101 > What are Tools?',
},
{
"id": "i_NRsOJNNp7AOqMgu5Jg8",
"text": "PHP > Arrays > Associative Arrays"
id: 'Eih4eybuYB3C2So8K0AT3',
text: 'AI Agents > AI Agents 101 > Agent Loop',
},
{
"id": "uARTOZ-ZwugSmbCJoRS5Y",
"text": "PHP > Arrays > Multi-dimensional Arrays"
id: 'LU76AhCYDjxdBhpMQ4eMU',
text: 'AI Agents > AI Agents 101 > Agent Loop > Perception / User Input',
},
{
"id": "38YksjvhXCbgnHqkl57Cz",
"text": "PHP > Conditionals"
id: 'ycPRgRYR4lEBQr_xxHKnM',
text: 'AI Agents > AI Agents 101 > Agent Loop > Reason and Plan',
},
{
"id": "-McOv-ZPTGayX7Mx2Thw1",
"text": "PHP > Conditionals > if/else"
id: 'sHYd4KsKlmw5Im3nQ19W8',
text: 'AI Agents > AI Agents 101 > Agent Loop > Acting / Tool Invocation',
},
{
"id": "bgJ9-m6Fiu3VCc-NZlbpn",
"text": "PHP > Conditionals > switch"
id: 'ZJTrun3jK3zBGOTm1jdMI',
text: 'AI Agents > AI Agents 101 > Agent Loop > Observation & Reflection',
},
{
"id": "3gNzX-bw2iqur7U7-_W38",
"text": "PHP > Conditionals > match"
id: 'PPdAutqJF5G60Eg9lYBND',
text: 'AI Agents > AI Agents 101 > Example Usecases > Personal assistant',
},
{
"id": "w0ntgFBhgGd5RUFd-qlPK",
"text": "PHP > Conditionals > Null Coalescing Operator"
id: 'PK8w31GlvtmAuU92sHaqr',
text: 'AI Agents > AI Agents 101 > Example Usecases > Code generation',
},
{
"id": "1NXSk8VZDr89jQTTkOL7x",
"text": "PHP > Conditionals > Null Safe Operator"
id: 'wKYEaPWNsR30TIpHaxSsq',
text: 'AI Agents > AI Agents 101 > Example Usecases > Data analysis',
},
{
"id": "qwt8xN4vuTrY-D0czYITI",
"text": "PHP > Loops"
id: '5oLc-235bvKhApxzYFkEc',
text: 'AI Agents > AI Agents 101 > Example Usecases > Web Scraping / Crawling',
},
{
"id": "WiGv7vi7Mtw-YqPMcnnyw",
"text": "PHP > Functions"
id: 'ok8vN7VtCgyef5x6aoQaL',
text: 'AI Agents > AI Agents 101 > Example Usecases > NPC / Game AI',
},
{
"id": "1nODJchgSuWbcvSlxnWeE",
"text": "PHP > Functions > Function Declaration"
id: 'Y8EqzFx3qxtrSh7bWbbV8',
text: 'AI Agents > Prompt Engineering > What is Prompt Engineering',
},
{
"id": "mpQKoBzsOa-5iWo08sOhQ",
"text": "PHP > Functions > Parameters / Return Values"
id: 'qFKFM2qNPEN7EoD0V-1SM',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Be specific in what you want',
},
{
"id": "RgVP99rJJ8FVecIA45w20",
"text": "PHP > Functions > Default / Optional Params"
id: '6I42CoeWX-kkFXTKAY7rw',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Provide additional context',
},
{
"id": "RkNjYva8o_jXp9suz5YdG",
"text": "PHP > Functions > Named Arguments"
id: 'sUwdtOX550tSdceaeFPmF',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Use relevant technical terms',
},
{
"id": "Nr5m6wQLp7VyG3AucrSc8",
"text": "PHP > Functions > Anonymous Functions"
id: 'yulzE4ZNLhXOgHhG7BtZQ',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Use Examples in your Prompt',
},
{
"id": "x7hA2KAzJIjc-prgCEw6V",
"text": "PHP > Functions > Callback Functions"
id: 'noTuUFnHSBzn7GKG9UZEi',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Iterate and Test your Prompts',
},
{
"id": "mP1BIkqbWVVTU-zZv1ZL6",
"text": "PHP > Functions > Arrow Functions"
id: 'wwHHlEoPAx0TLxbtY6nMA',
text: 'AI Agents > Prompt Engineering > Writing Good Prompts > Specify Length, format etc',
},
{
"id": "D9ybK5INH5zSOcYMb5ZPi",
"text": "PHP > Functions > Recursion"
id: 'qakbxB8xe7Y8gejC5cZnK',
text: 'AI Agents > AI Agents 101 > Tools / Actions > Tool Definition',
},
{
"id": "rtmytETfyyLdcXUC0QyzL",
"text": "PHP > Functions > Variadic Functions"
id: 'kBtqT8AduLoYDWopj-V9_',
text: 'AI Agents > Tools / Actions > Examples of Tools > Web Search',
},
{
"id": "Kaaqu-mN7xvHN6CbIn616",
"text": "PHP > File Handling > require"
id: 'mS0EVCkWuPN_GkVPng4A2',
text: 'AI Agents > Tools / Actions > Examples of Tools > Code Execution / REPL',
},
{
"id": "-CyJbsg2ho3RvfzKnJj5C",
"text": "PHP > File Handling > require_once"
id: 'sV1BnA2-qBnXoKpUn-8Ub',
text: 'AI Agents > Tools / Actions > Examples of Tools > Database Queries',
},
{
"id": "hKfv7V6bl2LXssq9Ffi7C",
"text": "PHP > File Handling > include"
id: '52qxjZILV-X1isup6dazC',
text: 'AI Agents > Tools / Actions > Examples of Tools > API Requests > Tools / Actions > Examples of Tools > API Requests',
},
{
"id": "SwtLDgyPmDry20qS4FBfH",
"text": "PHP > File Handling > include_once"
id: 'qaNr5I-NQPnfrRH7ynGTl',
text: 'AI Agents > Tools / Actions > Examples of Tools > Email / Slack / SMS',
},
{
"id": "S9wTlkbv9-R6dohhZ47hs",
"text": "PHP > File Operations > Reading Files"
id: 'BoJqZvdGam4cd6G6yK2IV',
text: 'AI Agents > Tools / Actions > Examples of Tools > File System Access',
},
{
"id": "two4UycJaCfSp6jQqtTAb",
"text": "PHP > File Operations > Writing Files"
id: '1B0IqRNYdtbHDi1jHSXuI',
text: 'AI Agents > Model Context Protocol (MCP)',
},
{
"id": "tgIyG6vHWpe9sz6lHmj5a",
"text": "PHP > File Operations > File Permissions"
id: '9FryAIrWRHh8YlzKX3et5',
text: 'AI Agents > Model Context Protocol (MCP) > Core Components > MCP Hosts',
},
{
"id": "MRDjEjbkMpk7shcWAoPOF",
"text": "PHP > File Operations > CSV Processing"
id: 'CGVstUxVXLJcYZrwk3iNQ',
text: 'AI Agents > Model Context Protocol (MCP) > Core Components > MCP Client',
},
{
"id": "DB2cxZE58WCCavW2PNwmf",
"text": "PHP > File Operations > JSON Processing"
id: 'yv_-87FVM7WKn5iv6LW9q',
text: 'AI Agents > Model Context Protocol (MCP) > Core Components > MCP Servers',
},
{
"id": "ggkWo0DRSSDDkHpbiyUyf",
"text": "PHP > File Operations > XML Processing"
id: '1NXIN-Hbjl5rPy_mqxQYW',
text: 'AI Agents > Model Context Protocol (MCP) > Creating MCP Servers',
},
{
"id": "tn_iIfaJZVtPK6vFds7FH",
"text": "PHP > HTTP / Request Handling > HTTP Methods"
id: 'iBtJp24F_kJE3YlBsW60s',
text: 'AI Agents > Model Context Protocol (MCP) > Creating MCP Servers > Deployment Modes > Local Desktop',
},
{
"id": "GFYGFVfxkOoPI5mI4zSt1",
"text": "PHP > HTTP / Request Handling > $_GET"
id: 'dHNMX3_t1KSDdAWqgdJXv',
text: 'AI Agents > Model Context Protocol (MCP) > Creating MCP Servers > Deployment Modes > Remote / Cloud',
},
{
"id": "qNG-a4iIO-puZsMwAMzYC",
"text": "PHP > HTTP / Request Handling > $_POST"
id: 'TBH_DZTAfR8Daoh-njNFC',
text: 'AI Agents > Agent Memory > What is Agent Memory?',
},
{
"id": "A6rfW4uJhyfAX2b18_EEC",
"text": "PHP > HTTP / Request Handling > $_REQUEST"
id: 'M3U6RfIqaiut2nuOibY8W',
text: 'AI Agents > Agent Memory > Short Term Memory',
},
{
"id": "7Ja2at_N9tRTlvSGahrqn",
"text": "PHP > HTTP / Request Handling > $_SERVER"
id: 'Ue633fz6Xu2wa2-KOAtdP',
text: 'AI Agents > Agent Memory > What is Agent Memory? > Long Term Memory',
},
{
"id": "sYI7f1PYP7G30_Uj2mZRv",
"text": "PHP > Form Processing"
id: 'EfCCNqLMJpWKKtamUa5gK',
text: 'AI Agents > Agent Memory > What is Agent Memory? > Episodic vs Semantic Memory',
},
{
"id": "HNo8QO4aPbvgePiA4l6tq",
"text": "PHP > File Uploads"
id: 'wkS4yOJ3JdZQE_yBID8K7',
text: 'AI Agents > Agent Memory > What is Agent Memory? > Maintaining Memory > RAG and Vector Databases',
},
{
"id": "CGehmZjcgTWC7fQAvxmNW",
"text": "PHP > State Management"
id: 'QJqXHV8VHPTnfYfmKPzW7',
text: 'AI Agents > Agent Memory > What is Agent Memory? > Maintaining Memory > User Profile Storage',
},
{
"id": "so03-fK7E2WvTm6XsPq4i",
"text": "PHP > State Management > Cookies"
id: 'jTDC19BTWCqxqMizrIJHr',
text: 'AI Agents > Agent Memory > Maintaining Memory > Summarization / Compression',
},
{
"id": "qobzzgzArNHLLn9Oiqc6G",
"text": "PHP > State Management > Sessions"
id: 'm-97m7SI0XpBnhEE8-_1S',
text: 'AI Agents > Agent Memory > Maintaining Memory > Forgetting / Aging Strategies',
},
{
"id": "93oEIZttb85S23C1fLraP",
"text": "PHP > Basics of Security > Input Validation"
id: 'cW8O4vLLKEG-Q0dE8E5Zp',
text: 'AI Agents > Agent Architectures > Common Architectures > RAG Agent',
},
{
"id": "801vB_JMas4ucriUmfrLg",
"text": "PHP > Basics of Security > SQL Injection"
id: '53xDks6JQ33fHMa3XcuCd',
text: 'AI Agents > Agent Architectures > Common Architectures > ReAct (Reason + Act)',
},
{
"id": "DxqQrToZSayWplKdCkTgT",
"text": "PHP > Basics of Security > XSS Prevention"
id: 'qwdh5pkBbrF8LKPxbZp4F',
text: 'AI Agents > Agent Architectures > Common Architectures > Chain of Thought (CoT)',
},
{
"id": "J9yIXZTtwbFzH2u4dI1ep",
"text": "PHP > Basics of Security > CSRF Protection"
id: '6YLCMWzystao6byCYCTPO',
text: 'AI Agents > Agent Architectures > Common Architectures > Planner Executor',
},
{
"id": "JbWFfJiCRrXDhnuIx_lqx",
"text": "PHP > Basics of Security > Password Hashing"
id: 'Ep8RoZSy_Iq_zWXlGQLZo',
text: 'AI Agents > Agent Architectures > Common Architectures > DAG Agents',
},
{
"id": "HJJzKYXdK4BWITLP4APLZ",
"text": "PHP > Basics of Security > Auth Mechanisms"
id: 'Nmy1PoB32DcWZnPM8l8jT',
text: 'AI Agents > Agent Architectures > Common Architectures > Tree-of-Thought',
},
{
"id": "tfC1tCrbvH5J43WUpG9Yb",
"text": "PHP > Basics of Security > Sanitization Techniques"
id: 'hj1adjkG9nalXKZ-Youn0',
text: 'AI Agents > Agent Architectures > Common Architectures > Tree-of-Thought',
},
{
"id": "cJtPz1RMN1qDE4eRdv4N_",
"text": "PHP > Database Connectivity > PDO"
id: 'US6T5dXM8IY9V2qZnTOFW',
text: 'AI Agents > Building Agents > Manual (from scratch)',
},
{
"id": "YLuo0oZJzTCoiZoOSG57z",
"text": "PHP > Database Connectivity > MySQLi"
id: 'aafZxtjxiwzJH1lwHBODi',
text: 'AI Agents > Building Agents > LLM Native "Function Calling"',
},
{
"id": "SeqGIfcLuveZ2z5ZSXcOd",
"text": "PHP > Advanced Database Techniques > Object-Relational Mapping (ORM)"
id: 'AQtxTTxmBpfl8BMgJbGzc',
text: 'AI Agents > Building Agents > LLM Native "Function Calling" > OpenAI Functions Calling',
},
{
"id": "FY-F6n9j29hQrnFry3VGb",
"text": "PHP > Advanced Database Techniques > Database Transactions"
id: '37GBFVZ2J2d5r8bd1ViHq',
text: 'AI Agents > Building Agents > LLM Native "Function Calling" > OpenAI Assistant API',
},
{
"id": "txUyPR_tdC8iTJV3RtvBz",
"text": "PHP > Advanced Database Techniques > Connection Pooling"
id: '_iIsBJTVS6OBf_dsdmbVO',
text: 'AI Agents > Building Agents > LLM Native "Function Calling" > Gemini Function Calling',
},
{
"id": "M1nVsh_sCSFJRf6-7Ttsj",
"text": "PHP > Advanced Database Techniques > Performance Optimization"
id: '1EZFbDHA5J5_5BPMLMxXb',
text: 'AI Agents > Building Agents > LLM Native "Function Calling" > Anthropic Tool Use',
},
{
"id": "meplwvmHMtI3Sb_fyodzZ",
"text": "PHP > Advanced Database Techniques > Database Migrations"
id: 'Ka6VpCEnqABvwiF9vba7t',
text: 'AI Agents > Building Agents > Building Using Frameworks > Langchain',
},
{
"id": "yTviiPFR5b_dr3WyxdxxQ",
"text": "PHP > OOP Fundamentals"
id: 'iEHF-Jm3ck-Iu85EbCoDi',
text: 'AI Agents > Building Agents > Building Using Frameworks > LlamaIndex',
},
{
"id": "PIuplWreo7PFG3Mdn2t6W",
"text": "PHP > OOP Fundamentals > Classes and Objects"
id: 'XS-FsvtrXGZ8DPrwOsnlI',
text: 'AI Agents > Building Agents > Building Using Frameworks > Haystack',
},
{
"id": "oNUt1oT8pYBVvH0S2P6cb",
"text": "PHP > OOP Fundamentals > Constructor / Destructor"
id: '7YtnQ9-KIvGPSpDzEDexl',
text: 'AI Agents > Building Agents > Building Using Frameworks > AutoGen',
},
{
"id": "MRAPXshy9RoYdReY6grf_",
"text": "PHP > OOP Fundamentals > Properties and Methods"
id: 'uFPJqgU4qGvZyxTv-osZA',
text: 'AI Agents > Building Agents > Building Using Frameworks > CrewAI',
},
{
"id": "RD2RaBmA2XWkEa13PTCTX",
"text": "PHP > OOP Fundamentals > Access Specifiers"
id: 'eWxQiBrxIUG2JNcrdfIHS',
text: 'AI Agents > Building Agents > Building Using Frameworks > Smol Depot',
},
{
"id": "qlkpwXfOc1p7j37hrzffI",
"text": "PHP > OOP Fundamentals > Static Methods and Properties"
id: 'v8qLnyFRnEumodBYxQSXQ',
text: 'AI Agents > Building Agents > Evaluation and Testing > Metrics to Track',
},
{
"id": "c5q2e_jyMt8Pir5Od3lRi",
"text": "PHP > OOP Fundamentals > Inheritance"
id: 'qo_O4YAe4-MTP_ZJoXJHR',
text: 'AI Agents > Evaluation and Testing > Unit Testing for Individual Tools',
},
{
"id": "gtq5KrghF28f5G8nuDcYQ",
"text": "PHP > Polymorphism"
id: 'P9-SiIda3TSjHsfkI5OUV',
text: 'AI Agents > Evaluation and Testing > Integration Testing for Flows',
},
{
"id": "ub79EkMiOmPBwXLRuYFL8",
"text": "PHP > Abstract classes"
id: 'rHxdxN97ZcU7MPl8L1jzN',
text: 'AI Agents > Evaluation and Testing > Human in the Loop Evaluation',
},
{
"id": "vu0H-TsD7hkJgOQbSRj92",
"text": "PHP > Interfaces"
id: 'xp7TCTRE9HP60_rGzTUF6',
text: 'AI Agents > Evaluation and Testing > Frameworks > LangSmith',
},
{
"id": "GR09ns9B-0cONQaQ_uj-7",
"text": "PHP > Traits"
id: '0924QUH1wV7Mp-Xu0FAhF',
text: 'AI Agents > Evaluation and Testing > Frameworks > DeepEval',
},
{
"id": "9raJ06lKRZITbjWeLil-F",
"text": "PHP > Namespaces"
id: 'YzEDtGEaMaMWVt0W03HRt',
text: 'AI Agents > Evaluation and Testing > Frameworks > Ragas',
},
{
"id": "rSXsPWto7Jeyw3Szl9pvf",
"text": "PHP > Magic methods"
id: 'zs6LM8WEnb0ERWpiaQCgc',
text: 'AI Agents > Debugging and Monitoring > Structured logging & tracing',
},
{
"id": "sPW-Ti2VyNYzxq6EYkbn7",
"text": "PHP > Type Declarations"
id: 'zs6LM8WEnb0ERWpiaQCgc',
text: 'AI Agents > Debugging and Monitoring > Structured logging & tracing',
},
{
"id": "KEE50C6lOS4eX8sAbfhYe",
"text": "PHP > Dependency injection"
id: 'SS8mGqf9wfrNqenIWvN8Z',
text: 'AI Agents > Observability Tools > LangSmith',
},
{
"id": "zsscRQZIq5o0JZir9hlz-",
"text": "PHP > Laravel"
id: 'MLxP5N0Vrmwh-kyvNeGXn',
text: 'AI Agents > Observability Tools > Helicone',
},
{
"id": "57VSMVePOr9qUD5x_LNdf",
"text": "PHP > Symfony"
id: 'UoIheaJlShiceafrWALEH',
text: 'AI Agents > Observability Tools > LangFuse',
},
{
"id": "yVFDu2aTiEZ4PWMdKdW2P",
"text": "PHP > Composer"
id: '7UqPXUzqKYXklnB3x-tsv',
text: 'AI Agents > Observability Tools > openllmetry',
},
{
"id": "xZf2jjnCVHwYfDH2hs9kR",
"text": "PHP > Packagist"
id: 'SU2RuicMUo8tiAsQtDI1k',
text: 'AI Agents > Security & Ethics > Prompt Injection / Jailbreaks',
},
{
"id": "qFiTsf6Es-gwqe6J6bdL1",
"text": "PHP > Autoloading"
id: 'UVzLGXG6K7HQVHmw8ZAv2',
text: 'AI Agents > Security & Ethics > Tool sandboxing / Permissioning',
},
{
"id": "NfBKKwG2GGBPppOjoLLBg",
"text": "PHP > PHPUnit"
id: 'rdlYBJNNyZUshzsJawME4',
text: 'AI Agents > Security & Ethics > Data Privacy + PII Redaction',
},
{
"id": "d6MydchA52HIxfAUjmZui",
"text": "PHP > Pest"
id: 'EyLo2j8IQsIK91SKaXkmK',
text: 'AI Agents > Security & Ethics > Bias & Toxicity Guardrails',
},
{
"id": "6eWgZVLV479oQzl0fu-Od",
"text": "PHP > Style Tools"
id: '63nsfJFO1BwjLX_ZVaPFC',
text: 'AI Agents > Security & Ethics > Safety + Red Team Testing',
},
{
"id": "fSpvZ_4kGFMbFVCWhA8vn",
"text": "PHP > Style Tools > PHPCodeSniffer"
},
{
"id": "r07k_hT2z2EiIBH4q3F7-",
"text": "PHP > Style Tools > PHP CS Fixer"
},
{
"id": "PrG_5dyBblXsWYYRcOJMa",
"text": "PHP > Static Analysis"
},
{
"id": "12k71gNfwAcT9K5aLWgbZ",
"text": "PHP > Static Analysis > PHPStan"
},
{
"id": "T1XD93j6Lkpl88JSmys9b",
"text": "PHP > Static Analysis > Psalm"
},
{
"id": "B45YVzov8X_iOtneiFEqa",
"text": "PHP > Static Analysis > Phan"
},
{
"id": "KC6D81-T-FwQc7Osw1rlY",
"text": "PHP > External Integrations > cURL"
},
{
"id": "_Al4NXKVQAnk8OikwvXCL",
"text": "PHP > External Integrations > Guzzle"
},
{
"id": "SD9k16UlVve9WtNMDA5Za",
"text": "PHP > PHP-FIG"
},
{
"id": "3tONibbRgK7HCwGTE2Gqw",
"text": "PHP > PHP-FIG > PSR Standards"
},
{
"id": "_Dh78x_tPLqZweg--qZFQ",
"text": "PHP > Performance Optimization > Profiling Techniques"
},
{
"id": "Av-BMa57RvrLlAXLffOH0",
"text": "PHP > Performance Optimization > Caching Strategies"
},
{
"id": "bt7dK2PcOZ72B9HXPyMwL",
"text": "PHP > Performance Optimization > Memory Management"
},
{
"id": "VpwwF8j5ZtXVSbzNfE7Sx",
"text": "PHP > Performance Optimization > Configuration Tuning"
},
{
"id": "NieqZd1juaNYoZOrB7e31",
"text": "PHP > Performance Optimization > Opcode Caching"
},
{
"id": "AoGS-5MSkp8gtJFQVPSBE",
"text": "PHP > Performance Optimization > PHP-FPM"
},
{
"id": "qp5Xi12c0qcSzTanzJq0Z",
"text": "PHP > System Interactions"
},
{
"id": "VhyYNGhOdKKrz_-uTkrjD",
"text": "PHP > System Interactions > Executing System Commands"
},
{
"id": "NTKUMgsKGYISIyhgOJPQn",
"text": "PHP > System Interactions > Process Control"
},
{
"id": "fitjnLYKLHJ2P5G7JAvzm",
"text": "PHP > System Interactions > Environment Variables"
},
{
"id": "DTaAZaU1CwzW7esoDhj85",
"text": "PHP > System Interactions > Configuration Files"
},
{
"id": "lFoHoMRywCWa056ii5cKQ",
"text": "PHP > Debugging Tools > Xdebug"
},
{
"id": "KpQb5Zh3GUcbYUyXHvyu2",
"text": "PHP > Debugging Tools > Zend Debugger"
},
{
"id": "KMQqePqAjQ-ReDwHqeofx",
"text": "PHP > Web Servers > Apache"
},
{
"id": "aspZpACHEKOsi_Er5FYPY",
"text": "PHP > Web Servers > Nginx"
}
];
const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
@@ -516,19 +416,11 @@ const openai = new OpenAI({
const prompt = `
You are a helpful assistant that can help me generate content for a roadmap tree.
User will give you roadmap topics in the form of "Parent > Child > Leaf". You need
to generate content for the last node in the hierarchy in relation to the parents.
Remember that you are explaining the topics for PHP showing what the given topic is
with respect to PHP and giving a short code sample ONLY when required.
You will be given a roadmap topic in the form of "Parent > Child > Leaf". You need
to generate a single paragraph explaining the topic.
Also, I hate it when you say "In the realm of..."
or "In the context of..." or "..in the context of..." or "when we talk about..." or something
similar.
Content should be helpful and engaging for a technical audience.
It can include things like (you can include more or less, depending on the topic):
- Briefly explain the given topic in relation to PHP.
- Code sample if applicable.
- Add a link to PHP documentation
The content should be a a single textual paragraph.
IMPORTANT: Use simple and clear English. Avoid complex words and jargon when possible.
Write in a way that is easy to understand. Use short sentences and common words.
`;
@@ -541,7 +433,7 @@ const prompt = `
const generateContent = async (node) => {
try {
const content = await openai.chat.completions.create({
model: 'gpt-4',
model: 'o3',
messages: [
{ role: 'system', content: prompt },
{