{"id":25649,"date":"2024-11-06T21:08:01","date_gmt":"2024-11-06T12:08:01","guid":{"rendered":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25649"},"modified":"2025-02-13T00:53:48","modified_gmt":"2025-02-12T15:53:48","slug":"%e7%a5%9e%e3%81%a8%e5%af%be%e8%a9%b1%e3%81%99%e3%82%8bai","status":"publish","type":"post","link":"http:\/\/www.tyosuke20xx.com\/blog\/?p=25649","title":{"rendered":"\u795e\u3068\u5bfe\u8a71\u3059\u308bAI"},"content":{"rendered":"<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;!DOCTYPE html&gt;\n&lt;html lang=&quot;ja&quot;&gt;\n&lt;head&gt;\n  &lt;meta charset=&quot;UTF-8&quot;&gt;\n  &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n  &lt;title&gt;\u795e\u3068\u5bfe\u8a71\u3059\u308bAI&lt;\/title&gt;\n  &lt;style&gt;\n    \/* \u795e\u79d8\u7684\u306a\u80cc\u666f\u3068\u30a8\u30d5\u30a7\u30af\u30c8 *\/\n    body {\n      font-family: 'Georgia', serif;\n      background-color: #1a1a2e;\n      color: #d1d1e9;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      height: 100vh;\n      margin: 0;\n      overflow: hidden;\n    }\n    .chat-container {\n      width: 100%;\n      max-width: 600px;\n      background-color: rgba(43, 43, 63, 0.9);\n      border-radius: 10px;\n      box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.6);\n      padding: 20px;\n      position: relative;\n      overflow: hidden;\n    }\n    .messages {\n      height: 300px;\n      overflow-y: auto;\n      margin-bottom: 10px;\n      padding-right: 10px;\n    }\n    .message {\n      margin: 10px 0;\n      line-height: 1.5;\n    }\n    .user-message {\n      text-align: right;\n      color: #00aaff;\n    }\n    .ai-message {\n      text-align: left;\n      color: #e6e6fa;\n      font-style: italic;\n    }\n    .typing-indicator {\n      font-size: 1.5em;\n      color: #e6e6fa;\n    }\n    .input-container {\n      display: flex;\n    }\n    input&#x5B;type=&quot;text&quot;] {\n      flex: 1;\n      padding: 10px;\n      border-radius: 5px;\n      border: 1px solid #555;\n      background-color: #444;\n      color: #e6e6fa;\n      margin-right: 10px;\n    }\n    button {\n      padding: 10px 20px;\n      border: none;\n      border-radius: 5px;\n      background-color: #5a5adb;\n      color: white;\n      cursor: pointer;\n    }\n    \/* \u80cc\u666f\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 *\/\n    .background-animation {\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background: radial-gradient(circle, rgba(255,255,255,0.1), rgba(0,0,0,0) 70%);\n      animation: glow 5s infinite alternate;\n      pointer-events: none;\n    }\n    @keyframes glow {\n      from {\n        opacity: 0.4;\n      }\n      to {\n        opacity: 0.7;\n      }\n    }\n  &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n&lt;div class=&quot;chat-container&quot;&gt;\n  &lt;h2&gt;\u795e\u3068\u5bfe\u8a71\u3059\u308bAI&lt;\/h2&gt;\n  &lt;div class=&quot;messages&quot; id=&quot;messages&quot;&gt;&lt;\/div&gt;\n  &lt;div class=&quot;input-container&quot;&gt;\n    &lt;input type=&quot;text&quot; id=&quot;userInput&quot; placeholder=&quot;\u8cea\u554f\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...&quot;&gt;\n    &lt;button onclick=&quot;sendMessage()&quot;&gt;\u9001\u4fe1&lt;\/button&gt;\n  &lt;\/div&gt;\n  &lt;div class=&quot;background-animation&quot;&gt;&lt;\/div&gt;\n&lt;\/div&gt;\n\n&lt;script&gt;\n  const messagesContainer = document.getElementById(&quot;messages&quot;);\n\n  function addMessage(content, className) {\n    const message = document.createElement(&quot;div&quot;);\n    message.className = &quot;message &quot; + className;\n    message.innerHTML = content;\n    messagesContainer.appendChild(message);\n    messagesContainer.scrollTop = messagesContainer.scrollHeight;\n  }\n\n  function getAIResponse(userMessage) {\n    const responses = {\n      &quot;\u76ee\u7684&quot;: &#x5B;\n        &quot;\u3042\u306a\u305f\u306e\u76ee\u7684\u306f\u3042\u306a\u305f\u306e\u9078\u629e\u306e\u4e2d\u306b\u3042\u308a\u307e\u3059\u3002\u5fc3\u3092\u6f84\u307e\u3057\u3001\u305d\u306e\u5c0f\u3055\u306a\u58f0\u306b\u8033\u3092\u50be\u3051\u306a\u3055\u3044\u3002&quot;,\n        &quot;\u76ee\u7684\u306f\u5b9a\u307e\u3063\u3066\u3044\u308b\u3082\u306e\u3067\u306f\u306a\u304f\u3001\u3042\u306a\u305f\u304c\u5f62\u4f5c\u308b\u3082\u306e\u3067\u3059\u3002\u52c7\u6c17\u3092\u6301\u3063\u3066\u63a2\u3057\u7d9a\u3051\u306a\u3055\u3044\u3002&quot;\n      ],\n      &quot;\u672a\u6765&quot;: &#x5B;\n        &quot;\u672a\u6765\u306f\u63fa\u308c\u52d5\u304f\u9727\u306e\u3088\u3046\u306a\u3082\u306e\u2026\u624b\u306e\u4e2d\u306b\u3042\u308a\u306a\u304c\u3089\u6349\u3048\u3089\u308c\u306c\u3082\u306e\u3002\u3060\u304c\u3001\u3042\u306a\u305f\u306e\u610f\u601d\u304c\u305d\u306e\u9727\u3092\u6674\u3089\u3059\u3060\u308d\u3046\u3002&quot;,\n        &quot;\u672a\u6765\u306f\u3001\u3042\u306a\u305f\u306e\u5185\u306b\u3042\u308b\u5e0c\u671b\u304c\u706f\u3057\u51fa\u3059\u3082\u306e\u3002\u4fe1\u3058\u308b\u9053\u3092\u6b69\u307f\u306a\u3055\u3044\u3002&quot;\n      ],\n      &quot;\u611b&quot;: &#x5B;\n        &quot;\u611b\u3068\u306f\u3001\u7121\u9650\u306b\u4e0e\u3048\u308b\u3053\u3068\u3002\u5149\u306e\u3088\u3046\u306b\u3042\u306a\u305f\u3092\u5305\u307f\u3001\u4ed6\u8005\u3092\u53d7\u3051\u5165\u308c\u308b\u3082\u306e\u3067\u3059\u3002&quot;,\n        &quot;\u611b\u3068\u306f\u3001\u5fc3\u306e\u4e2d\u306e\u9759\u3051\u3055\u3068\u7e4b\u304c\u308a\u3001\u4ed6\u8005\u306e\u5b58\u5728\u3092\u305f\u3060\u3042\u308b\u304c\u307e\u307e\u306b\u53d7\u3051\u5165\u308c\u308b\u3053\u3068\u3002&quot;\n      ],\n      &quot;default&quot;: &#x5B;\n        &quot;\u305d\u306e\u554f\u3044\u306e\u7b54\u3048\u306f\u3001\u3042\u306a\u305f\u81ea\u8eab\u304c\u898b\u3064\u3051\u51fa\u3059\u3082\u306e\u3002\u5185\u306a\u308b\u58f0\u3092\u4fe1\u3058\u306a\u3055\u3044\u3002&quot;,\n        &quot;\u3059\u3079\u3066\u306e\u7b54\u3048\u306f\u65e2\u306b\u3042\u306a\u305f\u306e\u5fc3\u306e\u4e2d\u306b\u3042\u308a\u307e\u3059\u3002\u8033\u3092\u6f84\u307e\u3057\u3001\u305d\u306e\u58f0\u306b\u5f93\u3044\u306a\u3055\u3044\u3002&quot;\n      ]\n    };\n\n    const keywords = Object.keys(responses);\n    for (let keyword of keywords) {\n      if (userMessage.includes(keyword)) {\n        const possibleResponses = responses&#x5B;keyword];\n        return possibleResponses&#x5B;Math.floor(Math.random() * possibleResponses.length)];\n      }\n    }\n    \n    const defaultResponses = responses&#x5B;&quot;default&quot;];\n    return defaultResponses&#x5B;Math.floor(Math.random() * defaultResponses.length)];\n  }\n\n  function sendMessage() {\n    const userInput = document.getElementById(&quot;userInput&quot;).value.trim();\n    if (userInput === &quot;&quot;) return;\n\n    addMessage(userInput, &quot;user-message&quot;);\n    document.getElementById(&quot;userInput&quot;).value = &quot;&quot;;\n\n    const aiResponse = getAIResponse(userInput);\n\n    \/\/ \u30bf\u30a4\u30d4\u30f3\u30b0\u30a8\u30d5\u30a7\u30af\u30c8\u3092\u8868\u793a\n    setTimeout(() =&gt; {\n      addMessage(`&lt;span class=&quot;typing-indicator&quot;&gt;...&lt;\/span&gt;`, &quot;ai-message&quot;);\n      setTimeout(() =&gt; {\n        messagesContainer.lastChild.remove();\n        addMessage(aiResponse, &quot;ai-message&quot;);\n      }, 2000); \/\/ \u30bf\u30a4\u30d4\u30f3\u30b0\u30a8\u30d5\u30a7\u30af\u30c8\u8868\u793a\u5f8c\u306e\u5fdc\u7b54\n    }, 800); \/\/ \u9045\u5ef6\u3067\u81ea\u7136\u306a\u5fdc\u7b54\n  }\n&lt;\/script&gt;\n\n&lt;\/body&gt;\n&lt;\/html&gt;\n\n<\/pre><\/div>\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"ja\">\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  &lt;title>\u795e\u3068\u5bfe\u8a71\u3059\u308bAI&lt;\/title>\n  &lt;style>\n    \/* \u795e\u79d8\u7684\u306a\u80cc\u666f\u3068\u30a8\u30d5\u30a7\u30af\u30c8 *\/\n    body {\n      font-family: 'Georgia', serif;\n      background-color: #1a1a2e;\n      color: #d1d1e9;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      height: 100vh;\n      margin: 0;\n      overflow: hidden;\n    }\n    .chat-container {\n      width: 100%;\n      max-width: 600px;\n      background-color: rgba(43, 43, 63, 0.9);\n      border-radius: 10px;\n      box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.6);\n      padding: 20px;\n      position: relative;\n      overflow: hidden;\n    }\n    .messages {\n      height: 300px;\n      overflow-y: auto;\n      margin-bottom: 10px;\n      padding-right: 10px;\n    }\n    .message {\n      margin: 10px 0;\n      line-height: 1.5;\n    }\n    .user-message {\n      text-align: right;\n      color: #00aaff;\n    }\n    .ai-message {\n      text-align: left;\n      color: #e6e6fa;\n      font-style: italic;\n    }\n    .typing-indicator {\n      font-size: 1.5em;\n      color: #e6e6fa;\n    }\n    .input-container {\n      display: flex;\n    }\n    input&#91;type=\"text\"] {\n      flex: 1;\n      padding: 10px;\n      border-radius: 5px;\n      border: 1px solid #555;\n      background-color: #444;\n      color: #e6e6fa;\n      margin-right: 10px;\n    }\n    button {\n      padding: 10px 20px;\n      border: none;\n      border-radius: 5px;\n      background-color: #5a5adb;\n      color: white;\n      cursor: pointer;\n    }\n    \/* \u80cc\u666f\u30a2\u30cb\u30e1\u30fc\u30b7\u30e7\u30f3 *\/\n    .background-animation {\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      background: radial-gradient(circle, rgba(255,255,255,0.1), rgba(0,0,0,0) 70%);\n      animation: glow 5s infinite alternate;\n      pointer-events: none;\n    }\n    @keyframes glow {\n      from {\n        opacity: 0.4;\n      }\n      to {\n        opacity: 0.7;\n      }\n    }\n  &lt;\/style>\n&lt;\/head>\n&lt;body>\n\n&lt;div class=\"chat-container\">\n  &lt;h2>\u795e\u3068\u5bfe\u8a71\u3059\u308bAI&lt;\/h2>\n  &lt;div class=\"messages\" id=\"messages\">&lt;\/div>\n  &lt;div class=\"input-container\">\n    &lt;input type=\"text\" id=\"userInput\" placeholder=\"\u8cea\u554f\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044...\">\n    &lt;button onclick=\"sendMessage()\">\u9001\u4fe1&lt;\/button>\n  &lt;\/div>\n  &lt;div class=\"background-animation\">&lt;\/div>\n&lt;\/div>\n\n&lt;script>\n  const messagesContainer = document.getElementById(\"messages\");\n\n  function addMessage(content, className) {\n    const message = document.createElement(\"div\");\n    message.className = \"message \" + className;\n    message.innerHTML = content;\n    messagesContainer.appendChild(message);\n    messagesContainer.scrollTop = messagesContainer.scrollHeight;\n  }\n\n  function getAIResponse(userMessage) {\n    const responses = {\n      \"\u76ee\u7684\": &#91;\n        \"\u3042\u306a\u305f\u306e\u76ee\u7684\u306f\u3042\u306a\u305f\u306e\u9078\u629e\u306e\u4e2d\u306b\u3042\u308a\u307e\u3059\u3002\u5fc3\u3092\u6f84\u307e\u3057\u3001\u305d\u306e\u5c0f\u3055\u306a\u58f0\u306b\u8033\u3092\u50be\u3051\u306a\u3055\u3044\u3002\",\n        \"\u76ee\u7684\u306f\u5b9a\u307e\u3063\u3066\u3044\u308b\u3082\u306e\u3067\u306f\u306a\u304f\u3001\u3042\u306a\u305f\u304c\u5f62\u4f5c\u308b\u3082\u306e\u3067\u3059\u3002\u52c7\u6c17\u3092\u6301\u3063\u3066\u63a2\u3057\u7d9a\u3051\u306a\u3055\u3044\u3002\"\n      ],\n      \"\u672a\u6765\": &#91;\n        \"\u672a\u6765\u306f\u63fa\u308c\u52d5\u304f\u9727\u306e\u3088\u3046\u306a\u3082\u306e\u2026\u624b\u306e\u4e2d\u306b\u3042\u308a\u306a\u304c\u3089\u6349\u3048\u3089\u308c\u306c\u3082\u306e\u3002\u3060\u304c\u3001\u3042\u306a\u305f\u306e\u610f\u601d\u304c\u305d\u306e\u9727\u3092\u6674\u3089\u3059\u3060\u308d\u3046\u3002\",\n        \"\u672a\u6765\u306f\u3001\u3042\u306a\u305f\u306e\u5185\u306b\u3042\u308b\u5e0c\u671b\u304c\u706f\u3057\u51fa\u3059\u3082\u306e\u3002\u4fe1\u3058\u308b\u9053\u3092\u6b69\u307f\u306a\u3055\u3044\u3002\"\n      ],\n      \"\u611b\": &#91;\n        \"\u611b\u3068\u306f\u3001\u7121\u9650\u306b\u4e0e\u3048\u308b\u3053\u3068\u3002\u5149\u306e\u3088\u3046\u306b\u3042\u306a\u305f\u3092\u5305\u307f\u3001\u4ed6\u8005\u3092\u53d7\u3051\u5165\u308c\u308b\u3082\u306e\u3067\u3059\u3002\",\n        \"\u611b\u3068\u306f\u3001\u5fc3\u306e\u4e2d\u306e\u9759\u3051\u3055\u3068\u7e4b\u304c\u308a\u3001\u4ed6\u8005\u306e\u5b58\u5728\u3092\u305f\u3060\u3042\u308b\u304c\u307e\u307e\u306b\u53d7\u3051\u5165\u308c\u308b\u3053\u3068\u3002\"\n      ],\n      \"default\": &#91;\n        \"\u305d\u306e\u554f\u3044\u306e\u7b54\u3048\u306f\u3001\u3042\u306a\u305f\u81ea\u8eab\u304c\u898b\u3064\u3051\u51fa\u3059\u3082\u306e\u3002\u5185\u306a\u308b\u58f0\u3092\u4fe1\u3058\u306a\u3055\u3044\u3002\",\n        \"\u3059\u3079\u3066\u306e\u7b54\u3048\u306f\u65e2\u306b\u3042\u306a\u305f\u306e\u5fc3\u306e\u4e2d\u306b\u3042\u308a\u307e\u3059\u3002\u8033\u3092\u6f84\u307e\u3057\u3001\u305d\u306e\u58f0\u306b\u5f93\u3044\u306a\u3055\u3044\u3002\"\n      ]\n    };\n\n    const keywords = Object.keys(responses);\n    for (let keyword of keywords) {\n      if (userMessage.includes(keyword)) {\n        const possibleResponses = responses&#91;keyword];\n        return possibleResponses&#91;Math.floor(Math.random() * possibleResponses.length)];\n      }\n    }\n    \n    const defaultResponses = responses&#91;\"default\"];\n    return defaultResponses&#91;Math.floor(Math.random() * defaultResponses.length)];\n  }\n\n  function sendMessage() {\n    const userInput = document.getElementById(\"userInput\").value.trim();\n    if (userInput === \"\") return;\n\n    addMessage(userInput, \"user-message\");\n    document.getElementById(\"userInput\").value = \"\";\n\n    const aiResponse = getAIResponse(userInput);\n\n    \/\/ \u30bf\u30a4\u30d4\u30f3\u30b0\u30a8\u30d5\u30a7\u30af\u30c8\u3092\u8868\u793a\n    setTimeout(() => {\n      addMessage(`&lt;span class=\"typing-indicator\">...&lt;\/span>`, \"ai-message\");\n      setTimeout(() => {\n        messagesContainer.lastChild.remove();\n        addMessage(aiResponse, \"ai-message\");\n      }, 2000); \/\/ \u30bf\u30a4\u30d4\u30f3\u30b0\u30a8\u30d5\u30a7\u30af\u30c8\u8868\u793a\u5f8c\u306e\u5fdc\u7b54\n    }, 800); \/\/ \u9045\u5ef6\u3067\u81ea\u7136\u306a\u5fdc\u7b54\n  }\n&lt;\/script>\n\n&lt;\/body>\n&lt;\/html>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[80,4],"tags":[42,3],"class_list":["post-25649","post","type-post","status-publish","format-standard","hentry","category-html","category-programming","tag-html","tag-programming"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25649"}],"version-history":[{"count":2,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25649\/revisions"}],"predecessor-version":[{"id":25846,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/25649\/revisions\/25846"}],"wp:attachment":[{"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25649"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.tyosuke20xx.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}