{"id":3584,"date":"2023-12-08T22:39:05","date_gmt":"2023-12-08T13:39:05","guid":{"rendered":"https:\/\/ubun2m.com\/?p=3584"},"modified":"2023-12-08T22:40:55","modified_gmt":"2023-12-08T13:40:55","slug":"openai%e3%81%aeapi%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%80%81chatgpt%e3%81%ae%e3%82%88%e3%81%86%e3%81%ab%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e5%bf%9c%e7%ad%94%e3%81%a8%e7%94%bb%e5%83%8f%e7%94%9f","status":"publish","type":"post","link":"https:\/\/ubun2m.com\/?p=3584","title":{"rendered":"OpenAI\u306eAPI\u3092\u4f7f\u3063\u3066\u3001ChatGPT\u306e\u3088\u3046\u306b\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u3068\u753b\u50cf\u751f\u6210\u3092\u81ea\u52d5\u3067\u5224\u65ad\u3057\u3066\u51e6\u7406\u3059\u308bSlackBOT\u3092\u4f5c\u308b"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h3>\n\n\n\n<p>\u3000\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u81ea\u7136\u8a00\u8a9e\u51e6\u7406\u3092\u884c\u3046GPT\u30e2\u30c7\u30eb\u3068\u3001\u753b\u50cf\u3092\u751f\u6210\u3059\u308bDALL-E\u30e2\u30c7\u30eb\u306e\uff12\u3064\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u3001ChatGPT\u306e\u3088\u3046\u306b\u3001\u4f1a\u8a71\u5185\u5bb9\u304b\u3089\u5224\u65ad\u3057\u3066\u3001\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u304b\u753b\u50cf\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6982\u8981<\/h3>\n\n\n\n<p>\u3000\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306f\u3001Slack\u4e0a\u3067\u306e\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5185\u5bb9\u306b\u5fdc\u3058\u3066\u3001\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u304b\u753b\u50cf\u751f\u6210\u3092\u884c\u3044\u307e\u3059\u3002\u5177\u4f53\u7684\u306b\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u753b\u50cf\u751f\u6210\u3092\u8981\u6c42\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092 GPT\u30e2\u30c7\u30eb\u304c\u5224\u65ad\u3057\u3001\u753b\u50cf\u751f\u6210\u3092\u8981\u6c42\u3057\u3066\u3044\u308b\u3068\u5224\u65ad\u3057\u305f\u5834\u5408\u306fDALL-E\u304c\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u57fa\u3065\u3044\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u3001\u305d\u308c\u4ee5\u5916\u306e\u5834\u5408\u306fGPT\u30e2\u30c7\u30eb\u3067\u51e6\u7406\u3057\u307e\u3059\u3002<br>\u3000\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u958b\u767a\u306b\u306f\u3001Python\u8a00\u8a9e\u3001OpenAI\u306eAPI\uff08GPT-4\u3068DALL-E\u30e2\u30c7\u30eb\uff09\u3001\u305d\u3057\u3066Slack\u306eAPI\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"affiliate-box\"><div class=\"affiliate-containar\"><a href=\"https:\/\/amzn.to\/41dlj5j\" rel=\"nofollow\"><img decoding=\"async\" style=\"border: none;\" src=\"https:\/\/m.media-amazon.com\/images\/I\/71YzLQjXshL._SY522_.jpg\" target=\"_blank\"><\/a><div class=\"affiliate-content\"><a href=\"https:\/\/amzn.to\/41dlj5j\" rel=\"nofollow\">\u52d5\u304b\u3057\u3066\u5b66\u3076! Slack\u30a2\u30d7\u30ea\u958b\u767a\u5165\u9580<\/a><ul class=\"affiliate-button\"><li><a href=\"https:\/\/amzn.to\/41dlj5j\" rel=\"nofollow\">Amazon<\/a><\/li><\/ul><\/div><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h3>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import os\nimport openai\nimport datetime\nfrom slack_bolt import App\nfrom slack_bolt.adapter.socket_mode import SocketModeHandler\n\n# \u74b0\u5883\u5909\u6570\u306e\u8a2d\u5b9a\nSLACK_BOT_TOKEN = os.environ.get(&quot;SLACK_BOT_TOKEN&quot;)\nSLACK_APP_TOKEN = os.environ[&quot;SLACK_APP_TOKEN&quot;]\nOPENAI_API_KEY = os.environ[&quot;OPENAI_API_KEY&quot;]\n\n# OpenAI API\u30ad\u30fc\u306e\u8a2d\u5b9a\nopenai.api_key = OPENAI_API_KEY\n\n# Slack\u30a2\u30d7\u30ea\u306e\u521d\u671f\u5316\napp = App(token=SLACK_BOT_TOKEN)\n\n# \u5bfe\u8a71\u5c65\u6b74\u3068\u30e2\u30c7\u30eb\u306e\u8a2d\u5b9a\nchannel_conversation_history = {}\nlast_interaction_time = {}\nmodel = &quot;gpt-4-1106-preview&quot;  # \u30c7\u30d5\u30a9\u30eb\u30c8\u30e2\u30c7\u30eb\u3092\u8a2d\u5b9a\n\n# GPT\u306b\u3088\u308b\u4f1a\u8a71\u89e3\u6790\u3068\u753b\u50cf\u751f\u6210\u306e\u63a8\u5968\ndef analyze_and_recommend_image(message):\n    try:\n        response = openai.ChatCompletion.create(\n            model=&quot;gpt-4-1106-preview&quot;,  # \u5206\u6790\u7528\u306e\u30e2\u30c7\u30eb\u3092\u6307\u5b9a\n            messages=[\n                {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Analyze the message provided. If the message explicitly requests the creation of a photograph, drawing, illustration, or any form of visual artwork, respond with &#39;Yes&#39;.This includes requests for specific scenes, objects, concepts, or designs to be visualized. However, if the message does not explicitly ask for an image or is seeking information, explanations, or any non-visual content, respond with &#39;No&#39;. This applies to general questions, requests for written content, or any query where a visual representation is not directly requested.&quot;},\n                {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: message}\n            ]\n        )\n        return &quot;Yes&quot; in response[&#39;choices&#39;][0][&#39;message&#39;][&#39;content&#39;]\n    except Exception as e:\n        print(f&quot;Error in analyze_and_recommend_image: {e}&quot;)\n        return False\n\n# DALL-E API\u3092\u547c\u3073\u51fa\u3059\u95a2\u6570\ndef generate_dalle_image(prompt):\n    try:\n        response = openai.Image.create(\n            model=&quot;dall-e-3&quot;,\n            prompt=prompt,\n            n=1,\n            size=&quot;1024x1024&quot;\n        )\n        image_url = response[&#39;data&#39;][0][&#39;url&#39;]\n        return image_url\n    except openai.error.InvalidRequestError as e:\n        return &quot;error&quot;\n\n# Slack\u306b\u753b\u50cf\u3092\u6295\u7a3f\u3059\u308b\u95a2\u6570\ndef post_image_to_slack(channel_id, image_url, ts):\n    try:\n        if image_url == &quot;error&quot;:\n            app.client.chat_update(\n                channel=channel_id,\n                ts=ts,\n                text=&quot;\u753b\u50cf\u3092\u751f\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002&quot;\n            )\n        else:\n            app.client.chat_update(\n                channel=channel_id,\n                ts=ts,\n                text=&quot;&quot;,\n                blocks=[\n                    {\n                        &quot;type&quot;: &quot;image&quot;,\n                        &quot;title&quot;: {\n                            &quot;type&quot;: &quot;plain_text&quot;,\n                            &quot;text&quot;: &quot;Generated Image&quot;\n                        },\n                        &quot;image_url&quot;: image_url,\n                        &quot;alt_text&quot;: &quot;Generated Image&quot;\n                    }\n                ]\n            )\n    except Exception as e:\n        logger.error(f&quot;Error posting image to Slack: {e}&quot;)\n\n# Slack\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\n@app.event(&quot;message&quot;)\ndef handle_message(body, logger):\n    global channel_conversation_history\n    global last_interaction_time\n\n    user_id = body[&quot;event&quot;][&quot;user&quot;]\n    channel_id = body[&quot;event&quot;][&quot;channel&quot;]\n    message = body[&quot;event&quot;][&quot;text&quot;]\n\n    initial_message_response = app.client.chat_postMessage(\n        channel=channel_id,\n        text=&quot;...&quot;\n    )\n    ts = initial_message_response[&#39;ts&#39;]\n\n    if analyze_and_recommend_image(message):\n        image_url = generate_dalle_image(message)\n        post_image_to_slack(channel_id, image_url, ts)\n    else:\n        if channel_id not in channel_conversation_history:\n            channel_conversation_history[channel_id] = []\n\n        if channel_id not in last_interaction_time or (datetime.datetime.now() - last_interaction_time[channel_id]).seconds &gt; 3600:\n            channel_conversation_history[channel_id] = []\n\n        last_interaction_time[channel_id] = datetime.datetime.now()\n\n        gpt_response = get_gpt_response(channel_conversation_history[channel_id], message, model)\n\n        try:\n            app.client.chat_update(\n                channel=channel_id,\n                ts=ts,\n\nif __name__ == &quot;__main__&quot;:\n    handler = SocketModeHandler(app, SLACK_APP_TOKEN)\n    handler.start()<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u89e3\u8aac<\/h3>\n\n\n\n<p>\u3000\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f\u4e3b\u306b\u3001Slack\u30a4\u30d9\u30f3\u30c8\u306e\u51e6\u7406\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5206\u6790\u3001GPT\u30e2\u30c7\u30eb\u306b\u3088\u308b\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u306e\u751f\u6210\u3001DALL-E\u306b\u3088\u308b\u753b\u50cf\u751f\u6210\u306e\uff14\u3064\u306e\u4e3b\u8981\u90e8\u5206\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Slack\u30a4\u30d9\u30f3\u30c8\u306e\u51e6\u7406<\/h3>\n\n\n\n<p>\u3000Slack\u306e\u30a4\u30d9\u30f3\u30c8\u30cf\u30f3\u30c9\u30e9\u306f\u30e6\u30fc\u30b6\u30fc\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u53d6\u308a\u3001\u5f8c\u7d9a\u306e\u51e6\u7406\u3092\u958b\u59cb\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u30a4\u30d9\u30f3\u30c8\u3092\u53d7\u3051\u53d6\u308b\u305f\u3081\u306e\u30cf\u30f3\u30c9\u30e9\u306e\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>@app.event(&quot;message&quot;)\ndef handle_message(body, logger):\n    user_id = body[&quot;event&quot;][&quot;user&quot;]\n    channel_id = body[&quot;event&quot;][&quot;channel&quot;]\n    message = body[&quot;event&quot;][&quot;text&quot;]\n\n    initial_message_response = app.client.chat_postMessage(\n        channel=channel_id,\n        text=&quot;...&quot;\n    )\n    ts = initial_message_response[&#39;ts&#39;]\n\n    if analyze_and_recommend_image(message):\n        # \u753b\u50cf\u751f\u6210\u306e\u51e6\u7406\n    else:\n        # \u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u306e\u751f\u6210\n<\/code><\/pre><\/div>\n\n\n\n<p>\u3053\u306e\u95a2\u6570\u3067\u306f\u3001Slack\u304b\u3089\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u53d7\u3051\u53d6\u308a\u3001\u305d\u306e\u5185\u5bb9\u306b\u57fa\u3065\u3044\u3066\u753b\u50cf\u751f\u6210\u3092\u884c\u3046\u304b\u3001\u307e\u305f\u306f\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u3092\u751f\u6210\u3059\u308b\u304b\u3092\u6c7a\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u30e1\u30c3\u30bb\u30fc\u30b8\u5206\u6790<\/h3>\n\n\n\n<p>\u3000\u30e1\u30c3\u30bb\u30fc\u30b8\u5206\u6790\u3067\u306f\u3001GPT\u30e2\u30c7\u30eb\u304c\u30e1\u30c3\u30bb\u30fc\u30b8\u5185\u5bb9\u3092\u89e3\u6790\u3057\u3001\u753b\u50cf\u751f\u6210\u304c\u5fc5\u8981\u304b\u3069\u3046\u304b\u3092\u5224\u65ad\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u95a2\u6570\u304c\u305d\u306e\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>def analyze_and_recommend_image(message):\n    try:\n        response = openai.ChatCompletion.create(\n            model=&quot;gpt-4-1106-preview&quot;,\n            messages=[\n                {&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;Analyze the message provided. If the message explicitly requests the creation of a photograph, drawing, illustration, or any form of visual artwork, respond with &#39;Yes&#39;.This includes requests for specific scenes, objects, concepts, or designs to be visualized. However, if the message does not explicitly ask for an image or is seeking information, explanations, or any non-visual content, respond with &#39;No&#39;. This applies to general questions, requests for written content, or any query where a visual representation is not directly requested.&quot;},\n                {&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: message}\n            ]\n        )\n        return &quot;Yes&quot; in response[&#39;choices&#39;][0][&#39;message&#39;][&#39;content&#39;]\n    except Exception as e:\n        print(f&quot;Error in analyze_and_recommend_image: {e}&quot;)\n        return False<\/code><\/pre><\/div>\n\n\n\n<p>\u5206\u6790\u306e\u7cbe\u5ea6\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u7d30\u304b\u304f\u6307\u793a\u3092\u3057\u3066\u3044\u307e\u3059\u3002\u30c8\u30fc\u30af\u30f3\u6570\u306e\u7bc0\u7d04\u306e\u305f\u3081\u82f1\u8a9e\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><em>\u300c\u4e0e\u3048\u3089\u308c\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5206\u6790\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3082\u3057\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u5199\u771f\u3001\u7d75\u3001\u30a4\u30e9\u30b9\u30c8\u3001\u307e\u305f\u306f\u8996\u899a\u7684\u306a\u30a2\u30fc\u30c8\u30ef\u30fc\u30af\u306e\u4f5c\u6210\u3092\u660e\u793a\u7684\u306b\u8981\u6c42\u3057\u3066\u3044\u308b\u5834\u5408\u306f\u300cYes\u300d\u3068\u56de\u7b54\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306b\u306f\u7279\u5b9a\u306e\u30b7\u30fc\u30f3\u3001\u7269\u4f53\u3001\u6982\u5ff5\u3001\u307e\u305f\u306f\u8996\u899a\u5316\u3055\u308c\u308b\u3079\u304d\u30c7\u30b6\u30a4\u30f3\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u3082\u3057\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u753b\u50cf\u3092\u660e\u793a\u7684\u306b\u6c42\u3081\u3066\u3044\u306a\u3044\u3001\u307e\u305f\u306f\u60c5\u5831\u3001\u8aac\u660e\u3001\u307e\u305f\u306f\u975e\u8996\u899a\u7684\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u6c42\u3081\u3066\u3044\u308b\u5834\u5408\u306f\u300cNo\u300d\u3068\u56de\u7b54\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u308c\u306f\u4e00\u822c\u7684\u306a\u8cea\u554f\u3001\u6587\u7ae0\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3001\u307e\u305f\u306f\u8996\u899a\u7684\u306a\u8868\u73fe\u304c\u76f4\u63a5\u8981\u6c42\u3055\u308c\u3066\u3044\u306a\u3044\u4efb\u610f\u306e\u554f\u3044\u5408\u308f\u305b\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u300d<\/em><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">3. \u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u306e\u751f\u6210<\/h3>\n\n\n\n<p>\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u306e\u751f\u6210\u3067\u306f\u3001GPT\u30e2\u30c7\u30eb\u304c\u9069\u5207\u306a\u5fdc\u7b54\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\u3053\u306e\u95a2\u6570\u306f\u3001\u4f1a\u8a71\u5c65\u6b74\u3068\u65b0\u3057\u3044\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u57fa\u306b\u3001GPT\u30e2\u30c7\u30eb\u3092\u4f7f\u3063\u3066\u9069\u5207\u306a\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>def get_gpt_response(conversation_history, message, model_name):\n    conversation_history.append({&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: message})\n    # \u30c8\u30fc\u30af\u30f3\u6570\u306e\u30c1\u30a7\u30c3\u30af\u3068\u4f1a\u8a71\u5c65\u6b74\u306e\u8abf\u6574\n    response = openai.ChatCompletion.create(\n        model=model_name,\n        messages=[{&quot;role&quot;: &quot;system&quot;, &quot;content&quot;: &quot;You are a helpful assistant.&quot;}] + conversation_history\n    )\n    assistant_message = response.choices[0][&#39;message&#39;][&#39;content&#39;].strip()\n    conversation_history.append({&quot;role&quot;: &quot;assistant&quot;, &quot;content&quot;: assistant_message})\n    return assistant_message\n<\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">4. \u753b\u50cf\u751f\u6210<\/h3>\n\n\n\n<p>\u753b\u50cf\u751f\u6210\u3067\u306f\u3001DALL-E\u304c\u4e0e\u3048\u3089\u308c\u305f\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u57fa\u3065\u3044\u3066\u753b\u50cf\u3092\u751f\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>def generate_dalle_image(prompt):\n    try:\n        response = openai.Image.create(\n            model=&quot;dall-e-3&quot;,\n            prompt=prompt,\n            n=1,\n            size=&quot;1024x1024&quot;\n        )\n        image_url = response[&#39;data&#39;][0][&#39;url&#39;]\n        return image_url\n    except openai.error.InvalidRequestError as e:\n        return &quot;error&quot;\n<\/code><\/pre><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9f\u88c5\u4f8b<\/h3>\n\n\n\n<p>\u3000\u5b9f\u88c5\u306e\u30c7\u30e2\u30f3\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u3068\u3057\u3066\u3001Slack\u4e0a\u3067\u306e\u5b9f\u969b\u306e\u5bfe\u8a71\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8\u3084\u751f\u6210\u3055\u308c\u305f\u753b\u50cf\u306e\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized is-style-default\"><img decoding=\"async\" width=\"2242\" height=\"564\" src=\"https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.23.45.png\" alt=\"\" class=\"wp-image-3588\" style=\"width:840px;height:auto\"\/><figcaption class=\"wp-element-caption\">\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u306e\u4f8b<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img decoding=\"async\" width=\"800\" height=\"461\" src=\"https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03-800x461.jpg\" alt=\"\" class=\"wp-image-3590\" srcset=\"https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03-800x461.jpg 800w, https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03-400x231.jpg 400w, https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03-768x443.jpg 768w, https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03-1536x886.jpg 1536w, https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/Screenshot-2023-12-08-at-22.25.03.jpg 1920w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">\u753b\u50cf\u751f\u6210\u306e\u4f8b<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u7d50\u8ad6<\/h3>\n\n\n\n<p>\u3000\u4eca\u56de\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6700\u521d\u306b\u5206\u6790\u3059\u308b\u3053\u3068\u3067\u3001\u7279\u5b9a\u306e\u30bf\u30b0\u3084\u6587\u8a00\u306b\u7e1b\u3089\u308c\u305a\u306b\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u3068\u753b\u50cf\u751f\u6210\u306e\u4e21\u65b9\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u4eca\u5f8c\u306f\u3001\u753b\u50cf\u751f\u6210\u304b\u5224\u65ad\u3059\u308b\u4ee5\u5916\u306b\u3082\u3001\u904e\u53bb\u306e\u4f1a\u8a71\u5c65\u6b74\u3092\u53c2\u7167\u3059\u308b\u3068\u304b\u3001\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306e\u60c5\u5831\u3092\u691c\u7d22\u3059\u308b\u3068\u304b\u305d\u306e\u8fba\u308a\u306e\u5206\u5c90\u3082\u4e00\u7dd2\u306b\u7d44\u307f\u8fbc\u3080\u3068\u9762\u767d\u3044\u304b\u306a\u3068\u601d\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"affiliate-box\"><div class=\"affiliate-containar\"><a href=\"https:\/\/amzn.to\/3NG7DdR\" rel=\"nofollow\"><img decoding=\"async\" style=\"border: none;\" src=\"https:\/\/m.media-amazon.com\/images\/I\/71ditQWQbTL._SY522_.jpg\" target=\"_blank\"><\/a><div class=\"affiliate-content\"><a href=\"https:\/\/amzn.to\/3NG7DdR\" rel=\"nofollow\">ChatGPT API\u00d7Python\u3067\u59cb\u3081\u308b\u5bfe\u8a71\u578bAI\u5b9f\u88c5\u5165\u9580<\/a><ul class=\"affiliate-button\"><li><a href=\"https:\/\/amzn.to\/3NG7DdR\" rel=\"nofollow\">Amazon<\/a><\/li><\/ul><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b \u3000\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u81ea\u7136\u8a00\u8a9e\u51e6\u7406\u3092\u884c\u3046GPT\u30e2\u30c7\u30eb\u3068\u3001\u753b\u50cf\u3092\u751f\u6210\u3059\u308bDALL-E\u30e2\u30c7\u30eb\u306e\uff12\u3064\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u3001ChatGPT\u306e\u3088\u3046\u306b\u3001\u4f1a\u8a71\u5185\u5bb9\u304b\u3089\u5224\u65ad\u3057\u3066\u3001\u30c6\u30ad\u30b9\u30c8\u5fdc\u7b54\u304b\u753b\u50cf\u751f\u6210\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3064\u3044\u3066\u7d39\u4ecb\u3057\u307e\u3059\u3002 \u30d7 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3593,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[20],"tags":[],"class_list":["post-3584","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chatgpt"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/ubun2m.com\/wp-content\/uploads\/2023\/12\/download.png","_links":{"self":[{"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/posts\/3584","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ubun2m.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3584"}],"version-history":[{"count":0,"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/posts\/3584\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ubun2m.com\/index.php?rest_route=\/wp\/v2\/media\/3593"}],"wp:attachment":[{"href":"https:\/\/ubun2m.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3584"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ubun2m.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3584"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ubun2m.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3584"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}