{"id":2402,"date":"2025-04-10T23:10:39","date_gmt":"2025-04-10T15:10:39","guid":{"rendered":"https:\/\/pjq.me\/?p=2402"},"modified":"2025-04-10T23:21:15","modified_gmt":"2025-04-10T15:21:15","slug":"build-the-llm-agent-with-google-adk-and-self-deployed-llm-model","status":"publish","type":"post","link":"https:\/\/pjq.me\/?p=2402","title":{"rendered":"Build the LLM Agent with Google ADK and self deployed LLM Model"},"content":{"rendered":"\n<p>Here it shows how we build the LLM Agent with Google ADK(Agent Development Kit), and we integrate it with our own models.<\/p>\n\n\n\n<p>Follow the quick start to setup the project<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>https:\/\/google.github.io\/adk-docs\/get-started\/quickstart\/<\/li>\n<\/ul>\n\n\n\n<p>And the project structure will be like<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> tree\n.\n\u251c\u2500\u2500 multi_tool_agent\n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 __pycache__\n\u2502   \u2502   \u251c\u2500\u2500 __init__.cpython-312.pyc\n\u2502   \u2502   \u251c\u2500\u2500 __init__.cpython-39.pyc\n\u2502   \u2502   \u251c\u2500\u2500 agent.cpython-312.pyc\n\u2502   \u2502   \u2514\u2500\u2500 agent.cpython-39.pyc\n\u2502   \u2514\u2500\u2500 agent.py\n\u2514\u2500\u2500 requirements.txt<\/code><\/pre>\n\n\n\n<p>Install the requirements<\/p>\n\n\n\n<pre class=\"wp-block-code has-f-8-f-8-f-2-color has-text-color has-875-rem-font-size\"><code>cat requirements.txt\ngoogle-adk\nlitellm<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>pip install -r requirements.txt<\/code><\/pre>\n\n\n\n<p>Here is the agent.py<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import datetime\nfrom zoneinfo import ZoneInfo\nfrom google.adk.agents import Agent\nfrom google.adk.models.lite_llm import LiteLlm\nfrom google.adk.agents import LlmAgent\n\ndef get_weather(city: str) -&gt; dict:\n    \"\"\"Retrieves the current weather report for a specified city.\n\n    Args:\n        city (str): The name of the city for which to retrieve the weather report.\n\n    Returns:\n        dict: status and result or error msg.\n    \"\"\"\n    if city.lower() == \"new york\":\n        return {\n            \"status\": \"success\",\n            \"report\": (\n                \"The weather in New York is sunny with a temperature of 25 degrees\"\n                \" Celsius (41 degrees Fahrenheit).\"\n            ),\n        }\n    else:\n        return {\n            \"status\": \"error\",\n            \"error_message\": f\"Weather information for '{city}' is not available.\",\n        }\n\n\ndef get_current_time(city: str) -&gt; dict:\n    \"\"\"Returns the current time in a specified city.\n\n    Args:\n        city (str): The name of the city for which to retrieve the current time.\n\n    Returns:\n        dict: status and result or error msg.\n    \"\"\"\n\n    if city.lower() == \"new york\":\n        tz_identifier = \"America\/New_York\"\n    else:\n        return {\n            \"status\": \"error\",\n            \"error_message\": (\n                f\"Sorry, I don't have timezone information for {city}.\"\n            ),\n        }\n\n    tz = ZoneInfo(tz_identifier)\n    now = datetime.datetime.now(tz)\n    report = (\n        f'The current time in {city} is {now.strftime(\"%Y-%m-%d %H:%M:%S %Z%z\")}'\n    )\n    return {\"status\": \"success\", \"report\": report}\n\n\n# Endpoint URL provided\napi_base_url = \"http:\/\/127.0.0.1:3001\/v1\"\n\n# Model name as specified\nmodel_name = \"gpt-4o\"\n\n# API Key\napi_key = \"sk-or-v1-xxxx\"\n\n\nroot_agent = LlmAgent(\n    name=\"weather_time_agent\",\n    model=LiteLlm(\n        model=model_name,\n        api_base=api_base_url,\n        api_key=api_key\n    ),\n    description=(\n        \"Agent to answer questions about the time and weather in a city.\"\n    ),\n    instruction=(\n        \"I can answer your questions about the time and weather in a city.\"\n    ),\n    tools=&#91;get_weather, get_current_time],\n)<\/code><\/pre>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" 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: #999;color:#999\" 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><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/pjq.me\/?p=2402\/#adk_debug\" >adk debug<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pjq.me\/?p=2402\/#Reference\" >Reference<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"adk_debug\"><\/span>adk debug<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Start the Web Application<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>adk web\nINFO:     Started server process &#91;68331]\nINFO:     Waiting for application startup.\n+-----------------------------------------------------------------------------+\n| ADK Web Server started                                                      |\n|                                                                             |\n| For local testing, access at http:\/\/localhost:8000.                         |\n+-----------------------------------------------------------------------------+\n\nINFO:     Application startup complete.\nINFO:     Uvicorn running on http:\/\/0.0.0.0:8000 (Press CTRL+C to quit)<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"682\" src=\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png\" alt=\"\" class=\"wp-image-2403\" srcset=\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png 1024w, https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-300x200.png 300w, https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-768x511.png 768w, https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1536x1023.png 1536w, https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-2048x1363.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Reference\"><\/span>Reference<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>https:\/\/google.github.io\/adk-docs\/get-started\/quickstart\/<\/li>\n\n\n\n<li>https:\/\/google.github.io\/adk-docs\/get-started\/tutorial\/#step-2-going-multi-model-with-litellm<\/li>\n\n\n\n<li>https:\/\/developers.googleblog.com\/en\/agent-development-kit-easy-to-build-multi-agent-applications\/<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Here it shows how we build the LLM Agent with Google ADK(Agent Development Kit), and we integrate it with our own models. Follow the quick start to setup the project And the project structure will be like Install the requirements<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[169],"tags":[245,244,202,229],"class_list":["post-2402","post","type-post","status-publish","format-standard","hentry","category-tech","tag-adk","tag-agent","tag-ai","tag-llm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pjq.me\/?p=2402\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog\" \/>\n<meta property=\"og:description\" content=\"Here it shows how we build the LLM Agent with Google ADK(Agent Development Kit), and we integrate it with our own models. Follow the quick start to setup the project And the project structure will be like Install the requirements\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pjq.me\/?p=2402\" \/>\n<meta property=\"og:site_name\" content=\"Jianqing&#039;s Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-10T15:10:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-10T15:21:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2752\" \/>\n\t<meta property=\"og:image:height\" content=\"1832\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"pengjianqing\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pengjianqing\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pjq.me\/?p=2402#article\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/?p=2402\"},\"author\":{\"name\":\"pengjianqing\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"headline\":\"Build the LLM Agent with Google ADK and self deployed LLM Model\",\"datePublished\":\"2025-04-10T15:10:39+00:00\",\"dateModified\":\"2025-04-10T15:21:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pjq.me\/?p=2402\"},\"wordCount\":94,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"image\":{\"@id\":\"https:\/\/pjq.me\/?p=2402#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png\",\"keywords\":[\"ADK\",\"Agent\",\"AI\",\"LLM\"],\"articleSection\":[\"Tech\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/pjq.me\/?p=2402#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pjq.me\/?p=2402\",\"url\":\"https:\/\/pjq.me\/?p=2402\",\"name\":\"Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog\",\"isPartOf\":{\"@id\":\"https:\/\/pjq.me\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pjq.me\/?p=2402#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pjq.me\/?p=2402#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png\",\"datePublished\":\"2025-04-10T15:10:39+00:00\",\"dateModified\":\"2025-04-10T15:21:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/pjq.me\/?p=2402#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pjq.me\/?p=2402\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pjq.me\/?p=2402#primaryimage\",\"url\":\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png\",\"contentUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png\",\"width\":2752,\"height\":1832},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pjq.me\/?p=2402#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pjq.me\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Build the LLM Agent with Google ADK and self deployed LLM Model\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pjq.me\/#website\",\"url\":\"https:\/\/pjq.me\/\",\"name\":\"Jianqing&#039;s Blog\",\"description\":\"Thoughts and Future\",\"publisher\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pjq.me\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60\",\"name\":\"pengjianqing\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"contentUrl\":\"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png\",\"width\":460,\"height\":752,\"caption\":\"pengjianqing\"},\"logo\":{\"@id\":\"https:\/\/pjq.me\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/pjq.me\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pjq.me\/?p=2402","og_locale":"en_US","og_type":"article","og_title":"Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog","og_description":"Here it shows how we build the LLM Agent with Google ADK(Agent Development Kit), and we integrate it with our own models. Follow the quick start to setup the project And the project structure will be like Install the requirements","og_url":"https:\/\/pjq.me\/?p=2402","og_site_name":"Jianqing&#039;s Blog","article_published_time":"2025-04-10T15:10:39+00:00","article_modified_time":"2025-04-10T15:21:15+00:00","og_image":[{"width":2752,"height":1832,"url":"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png","type":"image\/png"}],"author":"pengjianqing","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pengjianqing","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pjq.me\/?p=2402#article","isPartOf":{"@id":"https:\/\/pjq.me\/?p=2402"},"author":{"name":"pengjianqing","@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"headline":"Build the LLM Agent with Google ADK and self deployed LLM Model","datePublished":"2025-04-10T15:10:39+00:00","dateModified":"2025-04-10T15:21:15+00:00","mainEntityOfPage":{"@id":"https:\/\/pjq.me\/?p=2402"},"wordCount":94,"commentCount":0,"publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"image":{"@id":"https:\/\/pjq.me\/?p=2402#primaryimage"},"thumbnailUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png","keywords":["ADK","Agent","AI","LLM"],"articleSection":["Tech"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pjq.me\/?p=2402#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pjq.me\/?p=2402","url":"https:\/\/pjq.me\/?p=2402","name":"Build the LLM Agent with Google ADK and self deployed LLM Model - Jianqing&#039;s Blog","isPartOf":{"@id":"https:\/\/pjq.me\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pjq.me\/?p=2402#primaryimage"},"image":{"@id":"https:\/\/pjq.me\/?p=2402#primaryimage"},"thumbnailUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image-1024x682.png","datePublished":"2025-04-10T15:10:39+00:00","dateModified":"2025-04-10T15:21:15+00:00","breadcrumb":{"@id":"https:\/\/pjq.me\/?p=2402#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pjq.me\/?p=2402"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pjq.me\/?p=2402#primaryimage","url":"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png","contentUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2025\/04\/image.png","width":2752,"height":1832},{"@type":"BreadcrumbList","@id":"https:\/\/pjq.me\/?p=2402#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pjq.me\/"},{"@type":"ListItem","position":2,"name":"Build the LLM Agent with Google ADK and self deployed LLM Model"}]},{"@type":"WebSite","@id":"https:\/\/pjq.me\/#website","url":"https:\/\/pjq.me\/","name":"Jianqing&#039;s Blog","description":"Thoughts and Future","publisher":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pjq.me\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/pjq.me\/#\/schema\/person\/0eb1e72d1e69fbbd9b5c0bfd8e2aae60","name":"pengjianqing","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/","url":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","contentUrl":"https:\/\/pjq.me\/wp-content\/uploads\/2021\/12\/Screen-Shot-2021-12-02-at-6.10.58-PM.png","width":460,"height":752,"caption":"pengjianqing"},"logo":{"@id":"https:\/\/pjq.me\/#\/schema\/person\/image\/"},"url":"https:\/\/pjq.me\/?author=1"}]}},"views":2371,"_links":{"self":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/2402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2402"}],"version-history":[{"count":3,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/2402\/revisions"}],"predecessor-version":[{"id":2408,"href":"https:\/\/pjq.me\/index.php?rest_route=\/wp\/v2\/posts\/2402\/revisions\/2408"}],"wp:attachment":[{"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pjq.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}