{"id":2939,"date":"2026-08-01T16:54:22","date_gmt":"2026-08-01T15:54:22","guid":{"rendered":"https:\/\/www.balajibandi.com\/?p=2939"},"modified":"2026-08-01T17:02:48","modified_gmt":"2026-08-01T16:02:48","slug":"building-a-local-ai-network-engineer-on-amd-radeon-pro-wx7100-ubuntu-26-04","status":"publish","type":"post","link":"https:\/\/www.balajibandi.com\/?p=2939","title":{"rendered":"Building a Local AI using AMD Radeon Pro WX7100 (Ubuntu 26.04) &#8211; Network and Security Engineer Automation."},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><a>Introduction<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This project documents the process of building a completely local AI platform for Network Operations (AI NetOps) using an AMD Radeon Pro WX7100 GPU and open-source software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is to build an AI assistant capable of:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Understanding Cisco technologies<\/li>\n\n\n\n<li>Performing Retrieval-Augmented Generation (RAG) using networking documentation<\/li>\n\n\n\n<li>Integrating with automation tools such as Netmiko and pyATS<\/li>\n\n\n\n<li>Running entirely on local infrastructure without requiring cloud-based LLM services<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This blog covers the work completed so far and outlines the planned roadmap.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Project Objectives<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The long-term objective is to build an AI platform that can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Answer networking questions<\/li>\n\n\n\n<li>Analyze Cisco configurations<\/li>\n\n\n\n<li>Interpret \u201cshow\u201d command outputs<\/li>\n\n\n\n<li>Troubleshoot network issues<\/li>\n\n\n\n<li>Retrieve information from Cisco documentation<\/li>\n\n\n\n<li>Execute approved automation tasks<\/li>\n\n\n\n<li>Operate entirely on local hardware<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"340\" src=\"https:\/\/www.balajibandi.com\/wp-content\/uploads\/2026\/08\/image.png\" alt=\"\" class=\"wp-image-2941\" srcset=\"https:\/\/www.balajibandi.com\/wp-content\/uploads\/2026\/08\/image.png 379w, https:\/\/www.balajibandi.com\/wp-content\/uploads\/2026\/08\/image-300x269.png 300w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Hardware Platform<\/a><\/h1>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Server<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu 26.04<\/li>\n\n\n\n<li>GCC 15.x<\/li>\n\n\n\n<li>Docker<\/li>\n\n\n\n<li>Python 3<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>GPU<\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">AMD Radeon Pro WX7100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Specifications:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Polaris10 GPU<\/li>\n\n\n\n<li>8 GB GDDR5 VRAM<\/li>\n\n\n\n<li>Vulkan support<\/li>\n\n\n\n<li>Mesa RADV driver<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 1 \u2013 GPU Validation<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The first task was verifying that Ubuntu correctly detected the GPU.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verified using:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">lspci<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">vulkaninfo &#8211;summary<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>AMDGPU driver loaded successfully<\/li>\n\n\n\n<li>Vulkan detected<\/li>\n\n\n\n<li>RADV driver active<\/li>\n\n\n\n<li>GPU available to compute applications<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 2 \u2013 Building llama.cpp<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Initially, several compilation problems were encountered.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Examples included:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vulkan API compatibility errors<\/li>\n\n\n\n<li>Missing GLSL compiler<\/li>\n\n\n\n<li>Missing SPIRV-Headers<\/li>\n\n\n\n<li>CMake configuration issues<\/li>\n\n\n\n<li>Compiler compatibility with GCC 15<\/li>\n\n\n\n<li>Build failures in older llama.cpp releases<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">After evaluating multiple commits, the latest upstream release successfully compiled with Vulkan support.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Successful build options:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cmake -B build \\<br>-G Ninja \\<br>-DGGML_VULKAN=ON \\<br>-DCMAKE_BUILD_TYPE=Release<br><br>ninja -C build<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 3 \u2013 Verifying GPU Support<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Verification command:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.\/build\/bin\/llama-cli &#8211;list-devices<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Result:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vulkan0:<br>AMD Radeon Pro WX7100<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This confirmed Vulkan acceleration was functioning correctly.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 4 \u2013 Installing Qwen3<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The selected model was:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qwen3-8B-Q4_K_M.gguf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The model was downloaded again from Hugging Face and verified successfully.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 5 \u2013 Running llama-server<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The server was launched with:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.\/build\/bin\/llama-server \\<br>-m ~\/models\/Qwen3-8B-Q4_K_M.gguf \\<br>-ngl 99 \\<br>-c 8192 \\<br>-t $(nproc) \\<br>&#8211;host 0.0.0.0 \\<br>&#8211;port 8080<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Successful startup confirmed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Model loaded<\/li>\n\n\n\n<li>Vulkan backend initialized<\/li>\n\n\n\n<li>OpenAI-compatible API available on port 8080<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Phase 6 \u2013 Performance Testing<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Multiple GPU layer configurations were evaluated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Test 1<\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GPU Layers:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">40<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Performance:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prompt: 144 tokens\/sec<\/li>\n\n\n\n<li>Generation: 16.3 tokens\/sec<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Test 2<\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">GPU Layers:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">99<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Performance:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prompt: 55.9 tokens\/sec<\/li>\n\n\n\n<li>Generation: 20.4 tokens\/sec<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This configuration provided the best generation speed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Long-running generation tests produced stable performance around:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prompt evaluation: ~75 tokens\/sec<\/li>\n\n\n\n<li>Generation: 15\u201317 tokens\/sec<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The system remained stable throughout extended inference sessions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Test 3<\/a><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">.\/build\/bin\/llama-server \\<br>-m ~\/models\/Qwen3.5-2b-Kimi-and-Opus-Distillation.Q8_0.gguf \\<br>-c 16384 \\<br>-ngl 80 \\<br>&#8211;parallel 1 \\<br>-t 16 \\<br>-tb 32 \\<br>-b 2048 \\<br>-ub 1024 \\<br>&#8211;flash-attn auto \\<br>&#8211;cache-type-k q4_0 \\<br>&#8211;cache-type-v q4_0 \\<br>&#8211;no-mmap \\<br>&#8211;host 0.0.0.0 \\<br>&#8211;port 8080 \\<br>&#8211;log-file \/var\/log\/llama_server.log \\<br>&#8211;log-colors on \\<br>&#8211;metrics \\<br>&#8211;mlock \\<br>&#8211;context-shift \\<br>&#8211;fit on \\<br>&#8211;fit-ctx 16384 \\<br>&#8211;keep 1 \\<br>-n -1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GPU Layers:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">80<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Performance:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">40Tokens \/Second<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This configuration provided the best generation speed.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Current Architecture<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">AMD WX7100<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>Vulkan Backend<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>llama.cpp<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>llama-server<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>Qwen3-8B<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>OpenAI-Compatible API<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Lessons Learned<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Several valuable lessons emerged:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always verify downloaded GGUF files before testing.<\/li>\n\n\n\n<li>Use current upstream llama.cpp releases for newer compilers.<\/li>\n\n\n\n<li>Install Vulkan development dependencies before compiling.<\/li>\n\n\n\n<li>Build with Ninja for faster incremental compilation.<\/li>\n\n\n\n<li>Test GPU detection before attempting model inference.<\/li>\n\n\n\n<li>Benchmark multiple GPU layer settings instead of assuming higher values are always faster.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Next Phase \u2013 User Interface<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The next milestone is integrating Open WebUI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Planned architecture:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open WebUI<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u25bc<br>llama-server<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u25bc<br>Qwen3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Objectives:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Browser-based chat interface<\/li>\n\n\n\n<li>OpenAI-compatible connection<\/li>\n\n\n\n<li>Multiple chat sessions<\/li>\n\n\n\n<li>Conversation history<\/li>\n\n\n\n<li>User management<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Next Phase \u2013 Retrieval-Augmented Generation (RAG)<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">A Qdrant vector database will be introduced.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Knowledge sources will include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cisco documentation<\/li>\n\n\n\n<li>RFCs<\/li>\n\n\n\n<li>Internal runbooks<\/li>\n\n\n\n<li>pyATS reports<\/li>\n\n\n\n<li>Device configurations<\/li>\n\n\n\n<li>Troubleshooting guides<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Expected architecture:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qdrant<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>Cisco Documents<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>Retriever<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u2502<br>Qwen3<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Next Phase \u2013 AI Network Operations<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The project will then integrate automation tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Components include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FastAPI<\/li>\n\n\n\n<li>Netmiko<\/li>\n\n\n\n<li>pyATS<\/li>\n\n\n\n<li>Genie<\/li>\n\n\n\n<li>PostgreSQL<\/li>\n\n\n\n<li>SNMP<\/li>\n\n\n\n<li>RESTCONF<\/li>\n\n\n\n<li>NETCONF<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This enables the assistant to reason over documentation while also interacting with live network devices.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Planned Testing Roadmap<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The following tests are planned as development progresses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Performance<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GPU layer benchmarking<\/li>\n\n\n\n<li>Context window scaling (8K, 16K, 32K)<\/li>\n\n\n\n<li>Concurrent user testing<\/li>\n\n\n\n<li>Long-duration inference stability<\/li>\n\n\n\n<li>Memory and VRAM utilization<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>RAG<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Retrieval accuracy<\/li>\n\n\n\n<li>Chunk size optimisation<\/li>\n\n\n\n<li>Embedding model comparison<\/li>\n\n\n\n<li>Citation quality<\/li>\n\n\n\n<li>Response latency<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Networking<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cisco configuration explanation<\/li>\n\n\n\n<li>Routing protocol analysis<\/li>\n\n\n\n<li>VXLAN EVPN troubleshooting<\/li>\n\n\n\n<li>BGP policy validation<\/li>\n\n\n\n<li>OSPF analysis<\/li>\n\n\n\n<li>Wireless controller diagnostics<\/li>\n\n\n\n<li>SD-WAN troubleshooting<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Automation<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Netmiko command execution<\/li>\n\n\n\n<li>pyATS parsing<\/li>\n\n\n\n<li>Genie structured output<\/li>\n\n\n\n<li>Approval workflows<\/li>\n\n\n\n<li>Error handling and recovery<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><a>Security<\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>API authentication<\/li>\n\n\n\n<li>Role-based access control<\/li>\n\n\n\n<li>Audit logging<\/li>\n\n\n\n<li>Secure secret management<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Future Vision<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">The final platform will combine local LLM inference, RAG, automation, and operational data into a single AI NetOps assistant capable of assisting with day-to-day network engineering tasks while keeping sensitive information on local infrastructure.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I have also found an old NVIDIA Quadro K2200 with 4GB of RAM; let me try that in the Home Lab and post the next blog test results and interactions with My Lab (like Cisco Routers\/Switches\/WLCs\/ firewalls).<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\"><a>Conclusion<\/a><\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">This project has progressed from validating GPU support and overcoming build challenges to successfully running a Vulkan-accelerated local LLM on AMD hardware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The foundation is now in place for the next stages: integrating Open WebUI, building a Cisco-focused knowledge base with Qdrant, and adding network automation through FastAPI, Netmiko, and pyATS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Future updates will document the continued evolution of this local AI Network Operations platform.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy Labbinggggggggggggg!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction This project documents the process of building a completely local AI platform for Network Operations (AI NetOps) using an AMD Radeon Pro WX7100 GPU and open-source software. The goal is to build an AI assistant capable of: This blog covers the work completed so far and outlines the planned roadmap. Project Objectives The long-term [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[],"class_list":["post-2939","post","type-post","status-publish","format-standard","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/posts\/2939","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2939"}],"version-history":[{"count":6,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/posts\/2939\/revisions"}],"predecessor-version":[{"id":2947,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=\/wp\/v2\/posts\/2939\/revisions\/2947"}],"wp:attachment":[{"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.balajibandi.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}