{"id":2599,"date":"2026-09-08T20:37:55","date_gmt":"2026-09-08T20:37:55","guid":{"rendered":"https:\/\/convly.ai\/?p=2599"},"modified":"2026-09-08T20:37:55","modified_gmt":"2026-09-08T20:37:55","slug":"nano-vllm","status":"publish","type":"post","link":"https:\/\/convly.ai\/it\/nano-vllm\/","title":{"rendered":"Nano-vLLM: Un'implementazione minima di vLLM per l'inferenza locale"},"content":{"rendered":"<div class=\"convly-tldr\">\n<ul>\n<li><strong>What it is:<\/strong> Nano-vLLM is a lightweight, ~1,200-line Python reimplementation of the <a href=\"https:\/\/docs.vllm.ai\/\" rel=\"noopener\" target=\"_blank\">vLLM<\/a> inference engine, published by DeepSeek engineer Xingkai Yu on GitHub as <a href=\"https:\/\/github.com\/GeeeekExplorer\/nano-vllm\" rel=\"noopener\" target=\"_blank\">GeeeekExplorer\/nano-vllm<\/a>.<\/li>\n<li><strong>Why use it:<\/strong> Readable source for learning how paged attention, prefix caching and CUDA graphs work \u2014 not a production replacement for vLLM.<\/li>\n<li><strong>Install:<\/strong> <code>pip install git+https:\/\/github.com\/GeeeekExplorer\/nano-vllm.git<\/code>, then load a Hugging Face model directory and call <code>LLM(...).generate(...)<\/code>.<\/li>\n<li><strong>Requires:<\/strong> An NVIDIA GPU with CUDA, PyTorch, and enough VRAM for your chosen model \u2014 see the <a href=\"https:\/\/convly.ai\/llm-vram-calculator\/\">VRAM calculator<\/a>.<\/li>\n<\/ul>\n<\/div>\n<p><strong>Nano-vLLM<\/strong> is an open-source, from-scratch reimplementation of the <a href=\"https:\/\/docs.vllm.ai\/\" rel=\"noopener\" target=\"_blank\">vLLM<\/a> inference server, written in roughly 1,200 lines of Python. It was released in mid-2025 by Xingkai Yu, a DeepSeek engineer, under the MIT license at <a href=\"https:\/\/github.com\/GeeeekExplorer\/nano-vllm\" rel=\"noopener\" target=\"_blank\">github.com\/GeeeekExplorer\/nano-vllm<\/a>. It is a teaching-grade codebase and a fast batch inference tool \u2014 not a drop-in replacement for the full vLLM server.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_87_1 counter-flat ez-toc-counter ez-toc-container-direction\">\n<label for=\"ez-toc-cssicon-toggle-item-6aa0b033b430a\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #000000;color:#000000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #000000;color:#000000\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6aa0b033b430a\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#What_Nano-vLLM_Actually_Is\" >What Nano-vLLM Actually Is<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Installing_Nano-vLLM\" >Installing Nano-vLLM<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Downloading_a_Model\" >Downloading a Model<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Running_Inference\" >Running Inference<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Hardware_Requirements_by_Model\" >Hardware Requirements by Model<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Nano-vLLM_vs_vLLM_vs_Ollama\" >Nano-vLLM vs vLLM vs Ollama<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#When_Nano-vLLM_Makes_Sense\" >When Nano-vLLM Makes Sense<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Self-Hosting_vs_API\" >Self-Hosting vs API<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/convly.ai\/it\/nano-vllm\/#Frequently_Asked_Questions\" >Frequently Asked Questions<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"What_Nano-vLLM_Actually_Is\"><\/span>What Nano-vLLM Actually Is<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The upstream <a href=\"https:\/\/github.com\/vllm-project\/vllm\" rel=\"noopener\" target=\"_blank\">vllm-project\/vllm<\/a> repository is a large, production-grade inference server with hundreds of contributors, an OpenAI-compatible HTTP API, distributed workers, and support for dozens of model architectures and quantization schemes. Nano-vLLM strips that back to the core loop: model loading, a KV cache manager, a batching scheduler, and a sampler.<\/p>\n<p>According to the project&#8217;s README, nano-vllm keeps the key optimizations that make vLLM fast:<\/p>\n<ul>\n<li><strong>Prefix caching<\/strong> \u2014 reuses KV cache blocks across requests that share a prompt prefix.<\/li>\n<li><strong>Tensor parallelism<\/strong> \u2014 splits a model across multiple GPUs on one node.<\/li>\n<li><strong>Torch compilation<\/strong> \u2014 uses <code>torch.compile<\/code> for kernel fusion.<\/li>\n<li><strong>CUDA graphs<\/strong> \u2014 reduces per-step launch overhead during decoding.<\/li>\n<\/ul>\n<p>What it deliberately omits: the OpenAI-compatible HTTP server, continuous streaming APIs, most quantization backends (AWQ, GPTQ, FP8), speculative decoding, LoRA hot-swapping, multi-node clustering, and the broad model zoo. It ships primarily tested against Qwen3-class dense models.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Installing_Nano-vLLM\"><\/span>Installing Nano-vLLM<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nano-vLLM is a Python package. There is no Windows-native CUDA support path in the upstream repo; on Windows use WSL2 with an NVIDIA driver. Linux and WSL2 are the primary platforms. macOS is not supported because the code paths assume CUDA.<\/p>\n<h3>Linux and WSL2<\/h3>\n<pre><code>python -m venv .venv\nsource .venv\/bin\/activate\npip install torch --index-url https:\/\/download.pytorch.org\/whl\/cu121\npip install git+https:\/\/github.com\/GeeeekExplorer\/nano-vllm.git<\/code><\/pre>\n<p>Match the CUDA wheel (<code>cu121<\/code>, <code>cu124<\/code>, etc.) to your installed NVIDIA driver. Verify with <code>nvidia-smi<\/code> before installing.<\/p>\n<h3>Windows (via WSL2)<\/h3>\n<p>Install the NVIDIA Windows driver, enable WSL2 with an Ubuntu distribution (<code>wsl --install -d Ubuntu<\/code>), then follow the Linux steps inside WSL. Do not install CUDA toolkit inside WSL \u2014 the Windows driver exposes the GPU.<\/p>\n<h3>macOS<\/h3>\n<p>Not supported. Nano-vLLM depends on CUDA kernels and paged-attention primitives that have no Metal backend. On Apple Silicon use <a href=\"https:\/\/convly.ai\/what-is-ollama-complete-guide-2026\/\">Ollama<\/a> or <a href=\"https:\/\/convly.ai\/lm-studio-complete-guide-2026\/\">LM Studio<\/a> instead, both of which run <code>llama.cpp<\/code> under the hood.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Downloading_a_Model\"><\/span>Downloading a Model<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nano-vLLM loads standard Hugging Face model directories \u2014 the same <code>config.json<\/code>, <code>tokenizer.json<\/code> and safetensors layout that transformers and vLLM use. Fetch a model with the official <code>huggingface_hub<\/code> CLI:<\/p>\n<pre><code>pip install -U \"huggingface_hub[cli]\"\nhf download Qwen\/Qwen3-8B --local-dir ~\/models\/Qwen3-8B<\/code><\/pre>\n<p>See the <a href=\"https:\/\/huggingface.co\/docs\/huggingface_hub\/guides\/cli\" rel=\"noopener\" target=\"_blank\">Hugging Face Hub CLI docs<\/a> for authentication and gated models. Note that the older <code>huggingface-cli<\/code> entry point still ships with the package, but Hugging Face now recommends the <code>hf<\/code> command.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Running_Inference\"><\/span>Running Inference<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The API mirrors vLLM&#8217;s offline batch interface closely. A minimal script:<\/p>\n<pre><code>from nanovllm import LLM, SamplingParams\n\nllm = LLM(\"\/home\/user\/models\/Qwen3-8B\", enforce_eager=False, tensor_parallel_size=1)\nsp = SamplingParams(temperature=0.7, max_tokens=256)\n\nprompts = [\"Explain paged attention in one paragraph.\"]\noutputs = llm.generate(prompts, sp)\nprint(outputs[0][\"text\"])<\/code><\/pre>\n<p>The exact class names and return shape may drift across commits \u2014 check <code>example.py<\/code> in the repo root, which is the canonical usage reference.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Hardware_Requirements_by_Model\"><\/span>Hardware Requirements by Model<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Because nano-vllm currently runs models in bf16\/fp16 (no built-in 4-bit quantization at the time of writing), VRAM requirements are roughly double the 4-bit figures below. Use the <a href=\"https:\/\/convly.ai\/llm-vram-calculator\/\">VRAM calculator<\/a> for a per-precision estimate. The following are 4-bit reference numbers from the Convly <a href=\"https:\/\/convly.ai\/models\/\">models database<\/a> \u2014 for nano-vllm in bf16, budget approximately 2x these values plus KV cache headroom.<\/p>\n<table>\n<thead>\n<tr>\n<th>Model<\/th>\n<th>Context<\/th>\n<th>VRAM (4-bit ref.)<\/th>\n<th>Realistic nano-vllm GPU<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Qwen3 8B<\/td>\n<td>128K<\/td>\n<td>~5 GB<\/td>\n<td>Single RTX 4090 (24 GB) at bf16<\/td>\n<\/tr>\n<tr>\n<td>Qwen3 14B<\/td>\n<td>128K<\/td>\n<td>~9 GB<\/td>\n<td>Single RTX 4090 at bf16 with modest context<\/td>\n<\/tr>\n<tr>\n<td>Qwen3 32B<\/td>\n<td>128K<\/td>\n<td>~20 GB<\/td>\n<td>2\u00d7 RTX 4090 with <code>tensor_parallel_size=2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Llama 3.1 8B<\/td>\n<td>128K<\/td>\n<td>~5 GB<\/td>\n<td>Single RTX 4090<\/td>\n<\/tr>\n<tr>\n<td>Llama 3.3 70B<\/td>\n<td>128K<\/td>\n<td>~40 GB<\/td>\n<td>2\u00d7 A100 80GB or 4\u00d7 RTX 4090<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>For a broader picture of what fits on which card, see <a href=\"https:\/\/convly.ai\/best-gpus-for-local-llms-2026\/\">best GPUs for local LLMs<\/a> and the <a href=\"https:\/\/convly.ai\/vram-requirements-every-major-llm-2026\/\">VRAM requirements table<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Nano-vLLM_vs_vLLM_vs_Ollama\"><\/span>Nano-vLLM vs vLLM vs Ollama<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<table>\n<thead>\n<tr>\n<th>Feature<\/th>\n<th>Nano-vLLM<\/th>\n<th>vLLM<\/th>\n<th>Ollama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Line count<\/td>\n<td>~1,200 Python<\/td>\n<td>~100k+ Python\/C++\/CUDA<\/td>\n<td>Go wrapper over llama.cpp<\/td>\n<\/tr>\n<tr>\n<td>OpenAI-compatible server<\/td>\n<td>No<\/td>\n<td>Yes<\/td>\n<td>Yes (via <code>\/v1<\/code>)<\/td>\n<\/tr>\n<tr>\n<td>Backend<\/td>\n<td>PyTorch + CUDA<\/td>\n<td>PyTorch + custom kernels<\/td>\n<td>llama.cpp (GGUF)<\/td>\n<\/tr>\n<tr>\n<td>Quantization<\/td>\n<td>Minimal<\/td>\n<td>AWQ, GPTQ, FP8, INT4<\/td>\n<td>Q2\u2013Q8 GGUF<\/td>\n<\/tr>\n<tr>\n<td>Multi-GPU<\/td>\n<td>Tensor parallel<\/td>\n<td>Tensor + pipeline + expert<\/td>\n<td>Limited<\/td>\n<\/tr>\n<tr>\n<td>Primary use<\/td>\n<td>Learning, embedding<\/td>\n<td>Production serving<\/td>\n<td>Desktop \/ dev<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If your goal is to serve a customer-facing endpoint, use full vLLM. If you want to embed a batch inference loop inside a larger Python program with minimal dependencies, nano-vllm is reasonable. If you want a one-command local chatbot, use <a href=\"https:\/\/convly.ai\/how-to-install-ollama-2026\/\">Ollama<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"When_Nano-vLLM_Makes_Sense\"><\/span>When Nano-vLLM Makes Sense<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Learning the internals.<\/strong> The scheduler and block manager fit on one screen. Reading nano-vllm is the fastest way to understand paged attention in real code.<\/li>\n<li><strong>Research forks.<\/strong> Modifying a 1,200-line codebase to test a new sampler or cache policy is tractable; forking upstream vLLM is not.<\/li>\n<li><strong>Batch offline inference.<\/strong> Grading, synthetic data generation, evaluation loops over a fixed prompt set.<\/li>\n<\/ul>\n<p>When it does not make sense: production APIs, multi-tenant serving, tight quantization budgets, or any non-NVIDIA hardware.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Self-Hosting_vs_API\"><\/span>Self-Hosting vs API<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Running nano-vllm locally has real costs \u2014 GPU capital, electricity, and engineering time. Frontier hosted models are often cheaper per token than amortized local inference at low volume. Compare with the <a href=\"https:\/\/convly.ai\/self-hosting-vs-api-calculator\/\">self-hosting vs API calculator<\/a> and the <a href=\"https:\/\/convly.ai\/ai-api-cost-calculator\/\">API cost calculator<\/a>. For reference, Qwen3 8B on a hosted endpoint runs at $0.04 in \/ $0.14 out per 1M tokens per the Convly <a href=\"https:\/\/convly.ai\/models\/\">models database<\/a>, while a 24 GB GPU capable of running it locally costs well over $1,500.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Frequently_Asked_Questions\"><\/span>Frequently Asked Questions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3>Who wrote nano-vllm?<\/h3>\n<p>The repository is maintained by Xingkai Yu (GitHub handle <code>GeeeekExplorer<\/code>), an engineer at DeepSeek. It is a personal project, not an official DeepSeek release. The code is MIT-licensed and lives at <a href=\"https:\/\/github.com\/GeeeekExplorer\/nano-vllm\" rel=\"noopener\" target=\"_blank\">github.com\/GeeeekExplorer\/nano-vllm<\/a>.<\/p>\n<h3>Is nano-vllm faster than vLLM?<\/h3>\n<p>The README reports throughput close to vLLM on small dense models like Qwen3-0.6B on a single RTX 4070-class GPU, and in some short-benchmark configurations slightly faster because there is less scheduler overhead. On larger models, longer contexts, or multi-request serving, upstream vLLM&#8217;s optimizations pull ahead. Treat parity as &#8220;in the same ballpark for offline batch,&#8221; not &#8220;a strict replacement.&#8221;<\/p>\n<h3>Can nano-vllm serve an OpenAI-compatible API?<\/h3>\n<p>Not out of the box. The project exposes a Python <code>LLM.generate()<\/code> method for offline batch use. If you need an HTTP server with <code>\/v1\/chat\/completions<\/code>, wrap it yourself with FastAPI, or use full <a href=\"https:\/\/docs.vllm.ai\/en\/latest\/serving\/openai_compatible_server.html\" rel=\"noopener\" target=\"_blank\">vLLM&#8217;s OpenAI-compatible server<\/a> or Ollama.<\/p>\n<h3>Does nano-vllm support quantized models like GGUF or AWQ?<\/h3>\n<p>No. The codebase loads standard Hugging Face safetensors weights in bf16\/fp16. For GGUF (Q4_K_M etc.) use <a href=\"https:\/\/convly.ai\/best-local-llms-to-run-on-ollama-2026\/\">llama.cpp-based tools<\/a>; for AWQ or GPTQ use upstream vLLM. This is one reason nano-vllm&#8217;s VRAM footprint is higher per parameter than Ollama&#8217;s for the same model.<\/p>\n<h3>Which models are known to work?<\/h3>\n<p>Qwen3 dense models are the primary target of the reference implementation. Other Llama-architecture models often work with minor adjustments to the model loader, but exotic architectures (mixture-of-experts, hybrid state-space) generally do not. Check the repo&#8217;s <code>nanovllm\/models\/<\/code> directory for the current supported list.<\/p>\n<h3>Can I run nano-vllm on AMD or Apple Silicon?<\/h3>\n<p>Not currently. The kernels assume CUDA. ROCm may work with a custom PyTorch build but is untested upstream. On Apple Silicon there is no path \u2014 use MLX-based tools or llama.cpp. For a survey of alternatives, see the <a href=\"https:\/\/convly.ai\/llm-leaderboard\/\">LLM leaderboard<\/a> and pick a model that matches your hardware profile.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What it is: Nano-vLLM is a lightweight, ~1,200-line Python reimplementation of the vLLM inference engine, published by DeepSeek engineer Xingkai [\u2026]<\/p>\n","protected":false},"author":1,"featured_media":2600,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[7],"tags":[],"class_list":["post-2599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-news"],"_links":{"self":[{"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/posts\/2599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/comments?post=2599"}],"version-history":[{"count":1,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/posts\/2599\/revisions"}],"predecessor-version":[{"id":2601,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/posts\/2599\/revisions\/2601"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/media\/2600"}],"wp:attachment":[{"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/media?parent=2599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/categories?post=2599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/convly.ai\/it\/wp-json\/wp\/v2\/tags?post=2599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}