{"id":10020436,"date":"2024-12-04T16:46:06","date_gmt":"2024-12-04T08:46:06","guid":{"rendered":"https:\/\/itmax.cn\/?p=10020436"},"modified":"2024-12-04T16:46:06","modified_gmt":"2024-12-04T08:46:06","slug":"%e6%8a%80%e6%9c%af%e9%80%9f%e9%80%92%ef%bd%9c%e4%bd%bf%e7%94%a8-semantic-kernel-%e8%a7%a3%e9%94%81-net-%e4%b8%ad-github-%e6%a8%a1%e5%9e%8b%e7%9a%84%e5%bc%ba%e5%a4%a7%e5%8a%9f%e8%83%bd","status":"publish","type":"post","link":"https:\/\/itmax.cn\/?p=10020436","title":{"rendered":"\u6280\u672f\u901f\u9012\uff5c\u4f7f\u7528 Semantic Kernel \u89e3\u9501 .NET \u4e2d GitHub \u6a21\u578b\u7684\u5f3a\u5927\u529f\u80fd"},"content":{"rendered":"<p>\u4f5c\u8005\uff1aBruno Capuano &#8211; Cloud Advocate<\/p>\n<p>\u63a2\u7d22\u5982\u4f55\u4f7f\u7528 Microsoft \u7684\u667a\u80fd\u5e94\u7528\u7a0b\u5e8f Semantic Kernel \u5c06 GitHub \u7684 AI \u6a21\u578b\uff08\u5982 GPT\u3001Llama \u548c Phi\uff09\u96c6\u6210\u5230\u60a8\u7684 .NET \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002<\/p>\n<h2>\u4f7f\u7528 Semantic Kernel \u89e3\u9501 .NET \u4e2d GitHub \u6a21\u578b\u7684\u5f3a\u5927\u529f\u80fd<\/h2>\n<p>\u4eba\u5de5\u667a\u80fd\u7684\u4e16\u754c\u7ee7\u7eed\u5feb\u901f\u53d1\u5c55\uff0cGitHub \u901a\u8fc7\u5728 GitHub \u5e02\u573a\u4e0a\u63a8\u51fa\u4e00\u5957\u6d41\u884c\u7684\u5927\u578b\u8bed\u8a00\u6a21\u578b\uff08LLM\uff09\uff0c\u5982 GPT\u3001Llama \u548c Phi\uff0c\u52a0\u5165\u4e86\u8fd9\u573a\u7ade\u4e89\u3002\u8fd9\u4e9b\u6a21\u578b\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u8f7b\u677e\u6784\u5efa\u5f3a\u5927\u7684\u4eba\u5de5\u667a\u80fd\u9a71\u52a8\u5e94\u7528\u7a0b\u5e8f\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u5c06\u63a2\u8ba8 .NET \u7a0b\u5e8f\u5458\u5982\u4f55\u5229\u7528\u8fd9\u4e9b\u6a21\u578b\u5e76\u4f7f\u7528 Semantic Kernel \u5c06\u5b83\u4eec\u96c6\u6210\u5230\u4ed6\u4eec\u7684\u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002<\/p>\n<h2>GitHub \u6a21\u578b\u7b80\u4ecb<\/h2>\n<p>GitHub \u901a\u8fc7\u63a8\u51fa GitHub \u6a21\u578b(<a href=\"https:\/\/link.segmentfault.com\/?enc=Y%2B675FkxFX54CAkZj51%2Ftg%3D%3D.qAVL2srcm9hYU%2Bl81z3mMCFj4x1LC8wbMqApNL7o3PLek0M9tk7v4tAONF7Pl9MohqcADeB8PX4ohs6zekl3PTdr8NMrCCp1vZ9KsGHKLk8%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.blog\/news-insights\/product-news\/introducing-gi&#8230;<\/a>)\u6269\u5c55\u4e86\u5176\u5de5\u5177\u5305\uff0c\u8fd9\u662f\u4e00\u5957\u884c\u4e1a\u9886\u5148\u7684\u4eba\u5de5\u667a\u80fd\u6a21\u578b\uff0c\u65e8\u5728\u4f7f\u8d85\u8fc71\u4ebf\u5f00\u53d1\u4eba\u5458\u6210\u4e3a\u4eba\u5de5\u667a\u80fd\u5de5\u7a0b\u5e08\u3002\u8fd9\u4e9b\u6a21\u578b\uff08\u5982 Llama 3.1\u3001GPT-4o \u548c Phi-3.5\uff09\u5bf9\u4e8e\u6d89\u53ca\u81ea\u7136\u8bed\u8a00\u5904\u7406 (NLP) \u7684\u4efb\u52a1\u7279\u522b\u6709\u7528\u3002\u5728 GitHub \u5e02\u573a\u4e2d\uff0c\u5b83\u4eec\u4e3a\u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5185\u7f6e\u7684 Playground\uff0c\u8ba9\u4ed6\u4eec\u53ef\u4ee5\u5728 GitHub \u4e2d\u514d\u8d39\u6d4b\u8bd5\u4e0d\u540c\u7684\u63d0\u793a\u548c\u6a21\u578b\u53c2\u6570\u3002<\/p>\n<p>\u5bf9\u4e8e .NET \u5f00\u53d1\u4eba\u5458\u6765\u8bf4\uff0c\u8fd9\u4e9b\u6a21\u578b\u4e3a\u521b\u5efa\u80fd\u591f\u7406\u89e3\u548c\u751f\u6210\u4eba\u7c7b\u8bed\u8a00\u751a\u81f3\u4ee3\u7801\u7684\u667a\u80fd\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u65b0\u7684\u53ef\u80fd\u6027\uff0c\u4ece\u800c\u66f4\u5bb9\u6613\u7b80\u5316\u5404\u79cd\u4efb\u52a1\u548c\u6d41\u7a0b\u3002<\/p>\n<h2>Semantic Kernel\uff1a\u7b80\u8981\u6982\u8ff0<\/h2>\n<p>Semantic Kernel (<a href=\"https:\/\/link.segmentfault.com\/?enc=SUi8u5wdbV9t9fXBJLirZg%3D%3D.rs%2FNG%2BYgzuKe90H%2BvnvRuFAoe6VhnLM8D4sO7jhNTjpbuCp3S9Z2ezCc7ptlY9sK\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.com\/microsoft\/semantic-kernel<\/a>) \u662fMicrosoft \u63a8\u51fa\u7684\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u53ef\u6269\u5c55\u6846\u67b6\uff0c\u5141\u8bb8\u5f00\u53d1\u4eba\u5458\u521b\u5efa\u5229\u7528 LLM \u548c\u5176\u4ed6\u4e91\u670d\u52a1\uff08\u5982 Azure AI Search\uff09\u7684\u590d\u6742 AI \u5e94\u7528\u7a0b\u5e8f\u3002\u5b83\u53ef\u8f7b\u677e\u96c6\u6210\u5230\u60a8\u7684 .NET \u5e94\u7528\u7a0b\u5e8f\u4e2d\uff0c\u4ece\u800c\u80fd\u591f\u6574\u5408\u81ea\u7136\u8bed\u8a00\u7406\u89e3\u548c\u751f\u6210\u529f\u80fd\u3002<\/p>\n<p>\u501f\u52a9 Semantic Kernel\uff0c\u60a8\u53ef\u4ee5\u5b9a\u4e49\u5de5\u4f5c\u6d41\u7a0b\u3001\u5bf9 LLM \u7684\u8f93\u51fa\u8fdb\u884c\u63a8\u7406\uff0c\u5e76\u5c06\u6a21\u578b\u94fe\u63a5\u5728\u4e00\u8d77\u4ee5\u521b\u5efa\u66f4\u590d\u6742\u7684 AI \u9a71\u52a8\u4f53\u9a8c\u3002\u5b83\u5145\u5f53\u5927\u578b\u8bed\u8a00\u6a21\u578b\u548c\u5e94\u7528\u7a0b\u5e8f\u903b\u8f91\u4e4b\u95f4\u7684\u6865\u6881\u3002<\/p>\n<h2>\u5c06 GitHub \u6a21\u578b\u4e0e Semantic Kernel \u7ed3\u5408\u4f7f\u7528<\/h2>\n<p>\u4e3e\u4e00\u4e2a\u5b9e\u9645\u7684\u4f8b\u5b50\uff0c\u8ba9\u6211\u4eec\u63a2\u7d22\u5982\u4f55\u4f7f\u7528 Semantic Kernel \u5c06 GitHub \u6a21\u578b\u96c6\u6210\u5230 C# \u5e94\u7528\u7a0b\u5e8f\u4e2d\u3002\u6709\u4e00\u4e2a GitHub \u5b58\u50a8\u5e93(<a href=\"https:\/\/link.segmentfault.com\/?enc=ZdyAbe%2FHA8hqxYG%2BwmOIjQ%3D%3D.mJ%2BidYmxK4KeaZ0szr2%2FZCEj188ETxFO07hHx8xgmvgMggIhNUTIFDp0m9Q0OM%2FW8VbrzaZAZHXEEEpBG4geyw%3D%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.com\/elbruno\/GithubModelsAndSemanticKernel<\/a>)\u63d0\u4f9b\u4e86\u5982\u4f55\u5b9e\u73b0\u6b64\u96c6\u6210\u7684\u5de5\u4f5c\u793a\u4f8b\u3002<\/p>\n<p>\u4ee5\u4e0b\u662f\u5feb\u901f\u5165\u95e8\u7684\u5206\u6b65\u6307\u5357\uff1a<\/p>\n<h4>\u6b65\u9aa4 1\uff1a\u5b89\u88c5\u5fc5\u8981\u7684 NuGet \u5305<\/h4>\n<p>\u9996\u5148\uff0c\u786e\u4fdd\u60a8\u7684 C# \u9879\u76ee\u4e2d\u6709\u6240\u9700\u7684 NuGet \u5305\uff1a<\/p>\n<pre><code>dotnet add package Microsoft.SemanticKernel --version 1.18.2\ndotnet add package Microsoft.Extensions.Configuration.UserSecrets --version 9.0.0-rc.1.24431.7<\/code><\/pre>\n<p>Semantic Kernel \u5305\u5141\u8bb8\u60a8\u901a\u8fc7 API \u4e0e GitHub \u6a21\u578b\u8fdb\u884c\u4ea4\u4e92\u3002Microsoft \u914d\u7f6e\u7528\u6237\u5bc6\u94a5\u7528\u4e8e\u5b58\u50a8\u548c\u68c0\u7d22\u6240\u9700\u7684 GitHub \u4ee4\u724c\u3002<\/p>\n<h4>\u7b2c 2 \u6b65\uff1a\u4f7f\u7528 GitHub Personal Access Token \u8bbe\u7f6e\u9879\u76ee\u5bc6\u94a5<\/h4>\n<p>\u751f\u6210\u4e00\u4e2a\u65b0\u7684 GitHub Personal Access Token(<a href=\"https:\/\/link.segmentfault.com\/?enc=4mkoF%2BhUJmiwRI2v7KHe7w%3D%3D.Bq%2Fm65UlqU88a1Lt4YsqimhWj%2FhXuG5SfEtgwt%2BxIJXHH6S2sQXxGN%2Bn%2FndjyYza\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.com\/settings\/tokens<\/a>)\u3002\u5bfc\u822a\u5230 C# \u9879\u76ee\u7684\u6839\u76ee\u5f55\u5e76\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u6dfb\u52a0\u4ee4\u724c\u3002<\/p>\n<pre><code>dotnet user-secrets init\ndotnet user-secrets set &quot;GH_PAT&quot; &quot;&lt; PAT &gt;&quot;<\/code><\/pre>\n<p>\u5728\u5b58\u50a8\u5e93\u63a7\u5236\u53f0\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f(<a href=\"https:\/\/link.segmentfault.com\/?enc=hXttRV2fYdB%2FcZKaIc6qiQ%3D%3D.IvtUSVXCgSOp%2FQYIMJZwAiaSmAx8G20XTDtFcVWTFdRvAV0q%2BFwq2FpfN5%2BEm8LIDoZQZpdE%2BDMKfTCFxydlLR%2FL6xpERbUPwrm5kVXN7j4%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/devblogs.microsoft.com\/dotnet\/github-ai-models-dotnet&#8230;<\/a>)\u4e2d\uff0c\u8fd9\u4e9b\u4ee3\u7801\u7528\u4e8e\u68c0\u7d22\uff1a<\/p>\n<ul>\n<li>GitHub \u6a21\u578b\uff0c\u6a21\u578b\u540d\u79f0<\/li>\n<li>GitHub \u6a21\u578b\uff0c\u6a21\u578b\u7aef\u70b9<\/li>\n<li>GitHub \u4e2a\u4eba\u8bbf\u95ee\u4ee4\u724c<\/li>\n<\/ul>\n<pre><code>\nvar config = new ConfigurationBuilder().AddUserSecrets&lt;Program&gt;().Build();\nvar modelId = &quot;Phi-3.5-mini-instruct&quot;;\nvar uri = &quot;https:\/\/models.inference.ai.azure.com&quot;;\nvar githubPAT = config[&quot;GH_PAT&quot;];<\/code><\/pre>\n<p>\u4ee5\u4e0b\u662f\u5982\u4f55\u4f7f\u7528\u5bc6\u94a5\u8bbe\u7f6e modelId \u548c uri \u4ee5\u53ca GitHub PAT \u7684\u793a\u4f8b\uff1a<br \/><img loading=\"lazy\" decoding=\"async\" width=\"723\" height=\"436\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVdfd3f\" alt=\"\" title=\"\"><\/p>\n<h4>\u6b65\u9aa4 3\uff1a\u914d\u7f6e Semantic Kernel \u5ba2\u6237\u7aef\u4ee5\u4f7f\u7528 GitHub \u6a21\u578b<\/h4>\n<p>\u63a5\u4e0b\u6765\uff0c\u8bbe\u7f6e\u8bed Semantic Kernel \u4e0e GitHub \u6a21\u578b API \u96c6\u6210\uff1a<\/p>\n<pre><code>\n\/\/ \u521b\u5efa\u5ba2\u6237\u7aef\nvar client = new OpenAIClient(new ApiKeyCredential(githubPAT), new OpenAIClientOptions { Endpoint = new Uri(uri) });\n\n\/\/ \u521b\u5efa\u804a\u5929\u5b8c\u6210\u670d\u52a1\nvar builder = Kernel.CreateBuilder();\nbuilder.AddOpenAIChatCompletion(modelId, client);\n\n\/\/ \u83b7\u5f97\u804a\u5929\u5b8c\u6210\u670d\u52a1\nKernel kernel = builder.Build();\nvar chat = kernel.GetRequiredService&lt;IChatCompletionService&gt;();<\/code><\/pre>\n<h4>\u6b65\u9aa4 4\uff1a\u8fd0\u884c\u5e94\u7528\u7a0b\u5e8f<\/h4>\n<p>\u73b0\u5728\uff0c\u5b9a\u4e49\u60a8\u5e0c\u671b GitHub \u6a21\u578b\u6267\u884c\u7684\u4efb\u52a1\u3002\u793a\u4f8b\u63a7\u5236\u53f0\u5e94\u7528\u7a0b\u5e8f\u662f\u5728\u63a7\u5236\u53f0\u4e2d\u8fd0\u884c\u7684\u6807\u51c6\u95ee\u7b54\u804a\u5929\uff1a<\/p>\n<pre><code>var history = new ChatHistory();\nhistory.AddSystemMessage(&quot;You are a useful chatbot. If you don't know an answer, say 'I don't know!'. Always reply in a funny way. Use emojis if possible.&quot;);\n\nwhile (true)\n{\n    Console.Write(&quot;Q: &quot;);\n    var userQ = Console.ReadLine();\n    if (string.IsNullOrEmpty(userQ))\n    {\n        break;\n    }\n    history.AddUserMessage(userQ);\n\n    var sb = new StringBuilder();\n    var result = chat.GetStreamingChatMessageContentsAsync(history);\n    Console.Write(&quot;AI: &quot;);\n    await foreach (var item in result)\n    {\n        sb.Append(item);\n        Console.Write(item.Content);\n    }\n    Console.WriteLine();\n\n    history.AddAssistantMessage(sb.ToString());\n}<\/code><\/pre>\n<p>\u53ef\u9009\uff1a\u5b58\u50a8\u5e93\u5df2\u51c6\u5907\u597d\u4f7f\u7528 Codespaces \u8fd0\u884c\u793a\u4f8b\u9879\u76ee\u3002\u804a\u5929\u6f14\u793a\u5e94\u7528\u7a0b\u5e8f\u5e94\u5982\u4e0b\u6240\u793a\uff1a<br \/><img decoding=\"async\" width=\"723\" height=\"436\" referrerpolicy=\"no-referrer\" src=\"https:\/\/segmentfault.com\/img\/bVdfd3i\" alt=\"\" title=\"\" loading=\"lazy\"><\/p>\n<h2>\u603b\u7ed3<\/h2>\n<p>\u4f7f\u7528 Semantic Kernel \u5c06 GitHub \u6a21\u578b\u96c6\u6210\u5230\u60a8\u7684 .NET \u5e94\u7528\u7a0b\u5e8f\u4e2d\uff0c\u4e3a\u6784\u5efa AI \u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u8f9f\u4e86\u4ee4\u4eba\u5174\u594b\u7684\u53ef\u80fd\u6027\u3002\u501f\u52a9 Semantic Kernel \u7b49\u5de5\u5177\uff0c\u60a8\u53ef\u4ee5\u7b80\u5316\u5f00\u53d1\u6d41\u7a0b\u5e76\u521b\u5efa\u66f4\u667a\u80fd\u7684\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n<p>\u5982\u679c\u60a8\u60f3\u6df1\u5165\u4e86\u89e3\u6b64\u4e3b\u9898\uff0c\u8bf7\u67e5\u770b\u4ee5\u4e0b\u8d44\u6e90\uff1a<\/p>\n<p>GitHub \u6a21\u578b\u7b80\u4ecb<br \/><a href=\"https:\/\/link.segmentfault.com\/?enc=t2RG1l6IxwHBVGef1KGDSw%3D%3D.eKGBdR5fTEng2i9tJHhZfiS1eTi%2Bw2GHt4m6JKsumfujXXQGdcT9cfY8SSAEuiGya8ZsAHr7QJdI4m8JQPwrSkEIj9FQHcCvAPcP%2FyD5qlE%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.blog\/news-insights\/product-news\/introducing-gi&#8230;<\/a><\/p>\n<p>\u5e26\u6709 Semantic Kernel \u96c6\u6210\u7684 GitHub \u5b58\u50a8\u5e93<br \/><a href=\"https:\/\/link.segmentfault.com\/?enc=H1hu7oYH0S9TzEhwTRpVPw%3D%3D.77akmRg5GfK5qlpw6jjM%2Fhdzf1mSRtSniUxPtLt4y16AqNf2khaH0CNYLKQO2teqtDEkuCSwNXsNdCMiouSqhA%3D%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">https:\/\/github.com\/elbruno\/GithubModelsAndSemanticKernel<\/a><\/p>\n<h2>\u8d44\u6599\u63a8\u8350<\/h2>\n<p><a href=\"https:\/\/link.segmentfault.com\/?enc=%2F2TF7cSxpzUGOWnAacEetg%3D%3D.XtY0yIyP1sDjz7I7kzsOYDmZjymrFlm3tpU3tC6NIifvh0lb0%2FfyVp%2Bm5CqKpYIF2yDBoJDy1U7d9oKcUNTLseBPpxG9VWnGe6ccBDdlihoLTy7vP8m9w1anDbTgBCUcYdaTNnBzFeWZl%2BEYbh53YZoteYZNjhDp6hQ9dIfsVcjVZnZsAzQNnQSPtOGk7bmd\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">\u667a\u80fd GitHub Copilot \u526f\u9a7e\u9a76\u00ae \u63d0\u793a\u548c\u6280\u5de7<\/a><\/p>\n<p><a href=\"https:\/\/link.segmentfault.com\/?enc=NekO6e1mo6p03lKtpGr4CA%3D%3D.dbt8qWkig6Ugi5cfFfG9vYAoW4PI5lEa6Ga5ylafLNau0xtMNHSVr%2F33W%2BdKrXO%2BLG6Zt%2Bn0qsCQRwtDd4nuinmevgP%2F%2F0xPxr7FvZS3%2BG8O4NepX%2B780OzoJt1ucmpPZXmVUiV3m273lutXgfYEuammRn8FWXgMQF9z1kL9XSaVW5NAau5T3YTjTyTH10TgSd8zIgbzMhAICFyvJm%2Bx9Ce8w7uZypdwPZCTPS6vFXw%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">Azure OpenAI \u751f\u6210\u5f0f\u4eba\u5de5\u667a\u80fd\u767d\u76ae\u4e66<\/a><\/p>\n<p><a href=\"https:\/\/link.segmentfault.com\/?enc=cvavSpO8Q4lfQYIPs8%2Fc6Q%3D%3D.4gbZ7hwAVRdHV1Dl3Zq3T7fytjWJwGNHDA072v7v0pkQk9Ss9xZXl5N3xF6AQwH7QMEDiric%2BI6oWKQNaKZmUW8n4iSA6qMClMOEEHRUC2WnRy7y7PeYlDRKQwYLNYWi\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">\u5229\u7528 AI \u548c DevOps \u91cd\u65b0\u5b9a\u4e49\u5f00\u53d1\u4eba\u5458\u4f53\u9a8c<\/a><\/p>\n<p><a href=\"https:\/\/link.segmentfault.com\/?enc=fwCj552cK90V%2FOfj9edtwg%3D%3D.uJpI%2FkidiNGX2WM2QMGPPK7Iq2TrxyUY9FHr9YS2Cii3OAVWztVd9duV8DPZJjxylxSmqjweOG5xWmcNg1JEHEae1Q3A5VV7rdY4%2FeR%2BtRFxBlmr4WrTL1tUodcQ5QxhHvRKZgcucjCyc4dc98JAa%2F7Lxl4ec5ouxzQG%2FGDUB80%3D\" rel=\"nofollow noopener noreferrer\" target=\"_blank\">SAP on Microsoft Cloud<\/a><\/p>\n<p>\u795d\u60a8\u7f16\u7801\u6109\u5feb\uff01<\/p>\n<p><a href=\"https:\/\/segmentfault.com\/a\/1190000045535619\">https:\/\/segmentfault.com\/a\/1190000045535619<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4f5c\u8005\uff1aBruno Capuano &#8211; Cloud Advocate \u63a2\u7d22\u5982\u4f55\u4f7f\u7528 Microsof [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-10020436","post","type-post","status-publish","format-standard","hentry","category-share"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10020436"}],"version-history":[{"count":0,"href":"https:\/\/itmax.cn\/index.php?rest_route=\/wp\/v2\/posts\/10020436\/revisions"}],"wp:attachment":[{"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10020436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10020436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itmax.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10020436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}