{"id":75652,"date":"2024-11-08T08:20:00","date_gmt":"2024-11-07T23:20:00","guid":{"rendered":"https:\/\/www.creationline.com\/tech-blog\/?p=75652"},"modified":"2024-11-08T10:02:41","modified_gmt":"2024-11-08T01:02:41","slug":"streamlit%e3%81%a7%e3%81%8a%e6%89%8b%e8%bb%bd%e3%83%81%e3%83%a3%e3%83%83%e3%83%88webui%e3%82%92%e4%bd%9c%e3%82%8d%e3%81%86-ai-azure-openai-llm-python","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652","title":{"rendered":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p>\u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b <a href=\"https:\/\/chatgpt.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">ChatGPT<\/a> \u306e\u3088\u3046\u306a\u30c1\u30e3\u30c3\u30c8\u5f62\u5f0f\u306e\u30a6\u30a7\u30d6\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306f\u3069\u3046\u304b\uff1f\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001<a href=\"https:\/\/streamlit.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Streamlit<\/a> \u3092\u4f7f\u3046\u3068\u306a\u304b\u306a\u304b\u304a\u624b\u8efd\u3067\u3059\u3002<a href=\"https:\/\/azure.microsoft.com\/ja-jp\/products\/ai-services\/openai-service\" target=\"_blank\" rel=\"noreferrer noopener\">Azure OpenAI<\/a> \u306b\u554f\u3044\u5408\u308f\u305b\u308b\u7c21\u5358\u306aPython\u30b9\u30af\u30ea\u30d7\u30c8\u304b\u3089\u3001\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7c21\u5358\u306a\u30b9\u30af\u30ea\u30d7\u30c8<\/h2>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306a\u6a19\u6e96\u5165\u529b\u306e\u6587\u5b57\u5217\u3092\u9006\u9806\u306b\u4e26\u3079\u66ff\u3048\u3066\u8fd4\u3059\u7c21\u5358\u306aPython\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u3042\u308b\u3068\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def process( q ):\n    return \"\".join( list( reversed( q ) ) )\n\nprint( \"Q: \", end = \"\" )\nquestion = input()\n\nanswer = process( question )\n\nprint( \"A: \" + answer )<\/pre>\n\n\n\n<p>\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Q: <\/pre>\n\n\n\n<p>\u3068\u5165\u529b\u3092\u4fc3\u3055\u308c\u308b\u306e\u3067\u4f8b\u3048\u3070 <code>abcde<\/code> \u3068\u5165\u529b\u3059\u308b\u3068\u3001<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Q: abcde\nA: edcba<\/pre>\n\n\n\n<p><code>edcba<\/code> \u3068\u9006\u9806\u306b\u306a\u3063\u3066\u51fa\u529b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Streamlit\u3067\u30a6\u30a7\u30d6UI\u5316<\/h2>\n\n\n\n<p>\u5148\u306e\u7c21\u5358\u306a\u30bf\u30fc\u30df\u30ca\u30eb\u7528\u30b9\u30af\u30ea\u30d7\u30c8\u3092 <a href=\"https:\/\/streamlit.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Streamlit<\/a> \u3092\u4f7f\u3063\u3066\u30a6\u30a7\u30d6UI\u306b\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import streamlit as st\n\ndef process( q ):\n    return \"\".join( list( reversed( q ) ) )\n\nif question := st.chat_input():\n    with st.chat_message( \"user\" ):\n        st.markdown( question )\n    with st.spinner():\n        answer = process( question )\n    with st.chat_message( \"assistant\" ):\n        st.markdown( answer )<\/pre>\n\n\n\n<p>\u3053\u308c\u3092\u5b9f\u884c\u3057\u3066\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1320\" height=\"912\" src=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/10\/streamlit-abcde-12345.gif\" alt=\"\" class=\"wp-image-75653\"\/><\/figure>\n\n\n\n<p>\u3053\u308c\u3060\u3051\u306e\u30b3\u30fc\u30c9\u3067\u304b\u306a\u308a\u3044\u3044\u611f\u3058\u306e\u30c1\u30e3\u30c3\u30c8UI\u304c\u4f5c\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7c21\u5358\u306aAzure OpenAI\u3078\u306e\u554f\u3044\u5408\u308f\u305b\u30b9\u30af\u30ea\u30d7\u30c8<\/h2>\n\n\n\n<p>\u6b21\u306e\u3088\u3046\u306a\u6a19\u6e96\u5165\u529b\u306e\u6587\u5b57\u5217\u3092Azure OpenAI\u306b\u554f\u3044\u5408\u308f\u305b\u308b\u7c21\u5358\u306aPython\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u3042\u308b\u3068\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import os\nfrom openai import AzureOpenAI\nfrom dotenv import load_dotenv\nload_dotenv()\n\ndef send_prompt(prompt):\n    response = None\n    try:\n        client = AzureOpenAI(\n            api_key = os.getenv(\"AZURE_OPENAI_API_KEY\"),\n            azure_endpoint = os.getenv(\"AZURE_OPENAI_ENDPOINT\"),\n            api_version = os.getenv(\"AZURE_OPENAI_API_VERSION\")\n        )\n        response = client.chat.completions.create(\n            model = os.getenv(\"AZURE_OPENAI_MODEL_NAME\"),\n            messages = [{\"role\": \"user\", \"content\": prompt}],\n            max_tokens = 1024,\n            temperature = 0.95\n        )\n    except Exception as e:\n        print(f\"error: {e}\")\n        response = None\n    return response\n\nprint( \"Q: \", end = \"\" )\nquestion = input()\n\nres = send_prompt( question )\nif res:\n    model_dump = res.model_dump()\n    print({\"response\": model_dump['choices'][0]['message']['content']})<\/pre>\n\n\n\n<p>\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3059\u308b\u3068 <code>Q:<\/code> \u3067\u5165\u529b\u3092\u4fc3\u3055\u308c\u308b\u306e\u3067\u4f8b\u3048\u3070 <code>What is Docker?<\/code> \u3068\u5165\u529b\u3059\u308b\u3068\u3001\u305d\u306e\u8cea\u554f\u3092Azure OpenAI\u306b\u9001\u308a\u3001\u8fd4\u3063\u3066\u304d\u305f\u7d50\u679c\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Q: What is Docker?\n{'response': \"Docker is an open-source platform designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package.\\n\\nThe idea behind Docker is to enable developers to quickly deploy applications in a lightweight, portable, and standardized environment. A container can run on any system that has Docker installed, regardless of the underlying operating system, which greatly simplifies development, testing, and deployment processes.\\n\\nSome key features and concepts of Docker include:\\n\\n1. **Containers:** These are the runtime instances of Docker images. They encapsulate the application and its environment. Containers run isolated from one another, sharing only the host OS's kernel.\\n\\n2. **Images:** Docker images are the static, immutable templates from which containers are created. They include the application code, libraries, dependencies, and environment settings.\\n\\n3. **Dockerfile:** This is a script containing a series of instructions for building a Docker image. It allows for automation of image creation.\\n\\n4. **Docker Hub and Registries:** Docker Hub is Docker's own cloud-based service for sharing and managing container images. Users can also use private registries to store and manage their own images.\\n\\n5. **Docker Compose:** This is a tool for defining and running multi-container Docker applications. With a Compose file (docker-compose.yml), you can configure all your application\u2019s services and run them with a single command.\\n\\n6. **Volumes and Mounts:** Docker offers options for persistent storage that can be attached to containers, ensuring data isn't lost when the container is stopped or deleted.\\n\\n7. **Networking:** Docker provides network interfaces to allow containers to communicate both with each other and with external networks.\\n\\nDocker has become highly popular in the DevOps world due to its advantages in continuous integration, continuous deployment (CI\/CD), infrastructure as code, and its overall agility in managing the lifecycle of applications. It supports a shift towards microservices architecture, where applications are built as a collection of loosely coupled services, which fits well with containerized deployment models.\"}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Streamlit\u3092\u7d44\u307f\u8fbc\u307f<\/h2>\n\n\n\n<p>\u3067\u306f\u3001\u6a19\u6e96\u5165\u529b\u304b\u3089\u3067\u306f\u306a\u304fStreamlit\u306e\u30c1\u30e3\u30c3\u30c8\u3067\u8cea\u554f\u3092\u5165\u529b\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import streamlit as st\n\nimport os\nfrom openai import AzureOpenAI\nfrom dotenv import load_dotenv\nload_dotenv()\n\ndef send_prompt(prompt):\n    response = None\n    try:\n        client = AzureOpenAI(\n            api_key = os.getenv(\"AZURE_OPENAI_API_KEY\"),\n            azure_endpoint = os.getenv(\"AZURE_OPENAI_ENDPOINT\"),\n            api_version = os.getenv(\"AZURE_OPENAI_API_VERSION\")\n        )\n        response = client.chat.completions.create(\n            model = os.getenv(\"AZURE_OPENAI_MODEL_NAME\"),\n            messages = [{\"role\": \"user\", \"content\": prompt}],\n            max_tokens = 1024,\n            temperature = 0.95\n        )\n    except Exception as e:\n        print(f\"error: {e}\")\n        response = None\n    return response\n\nif question := st.chat_input():\n    with st.chat_message( \"user\" ):\n        st.markdown( question )\n    with st.spinner():\n        answer = send_prompt( question )\n        model_dump = answer.model_dump()\n    with st.chat_message( \"assistant\" ):\n        st.markdown( model_dump['choices'][0]['message']['content'] )<\/pre>\n\n\n\n<p>\u3053\u308c\u3092\u5b9f\u884c\u3057\u3066\u30d6\u30e9\u30a6\u30b6\u3067\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1320\" height=\"912\" src=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/10\/streamlit-azure-openai.gif\" alt=\"\" class=\"wp-image-75654\"\/><\/figure>\n\n\n\n<p>\u305f\u3063\u305f\u3053\u308c\u3067\u3060\u3051\u3067ChatGPT\u3063\u307d\u3044\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u304c\u5b9f\u73fe\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p>Streamlit\u3092\u4f7f\u3063\u3066ChatGPT\u306e\u3088\u3046\u306a\u30c1\u30e3\u30c3\u30c8\u5f62\u5f0f\u306e\u30a6\u30a7\u30d6\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3067Azure OpenAI\u306b\u554f\u3044\u5408\u308f\u305b\u3067\u304d\u308b\u7c21\u5358\u306a\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u305f\u3002\u6bd4\u8f03\u7684\u7c21\u5358\u306a\u30b3\u30fc\u30c9\u3067UI\u90e8\u5206\u304c\u8a18\u8ff0\u3067\u304d\u308b\u305f\u3081\u3001\u751f\u6210AI\u3092\u5229\u7528\u3057\u305f\u30ed\u30b8\u30c3\u30af\u306e\u4f5c\u6210\u306b\u96c6\u4e2d\u3067\u304d\u308b\u3053\u3068\u304c\u671f\u5f85\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u306a\u304a\u3001\u672c\u7a3f\u3067\u4f5c\u6210\u3057\u305f\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u5c65\u6b74\u6a5f\u80fd\u3092\u5b9f\u88c5\u3057\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u4f1a\u8a71\u304c\u7d99\u7d9a\u3057\u3066\u3044\u304f\u30c1\u30e3\u30c3\u30c8\u3068\u3057\u3066\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u305d\u306e\u305f\u3081\u3001\u3053\u308c\u306f\u3042\u304f\u307e\u3067ChatGPT\u300c\u306e\u3088\u3046\u306a\u300d\u3067\u3057\u304b\u3042\u308a\u307e\u305b\u3093\u3002\u4e00\u65b9\u3067Streamlit\u306b\u306f\u305d\u308c\u3089\u306e\u5c65\u6b74\u3092\u5b9f\u88c5\u3059\u308b\u6a5f\u80fd\u3082\u5099\u3048\u3066\u3044\u308b\u305f\u3081\u3001\u3082\u3046\u5c11\u3057\u624b\u3092\u52a0\u3048\u308b\u3053\u3068\u3067\u3088\u308aChatGPT\u300c\u3089\u3057\u3044\u300d\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u662f\u975e\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT \u306e\u3088\u3046\u306a\u30c1\u30e3\u30c3\u30c8\u5f62\u5f0f\u306e\u30a6\u30a7\u30d6\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306f\u3069\u3046\u304b\uff1f\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308b\u304b\u3068\u601d\u3044\u307e\u3059\u3002 \u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001Streamlit \u3092\u4f7f [&#8230;]<\/p>\n","protected":false},"author":2,"featured_media":75754,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[779,58,817,31,1004,323],"tags":[],"class_list":["post-75652","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-azure","category-chatgpt-ai","category-higuchi","category-llm","category-python"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-07T23:20:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-08T01:02:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1562\" \/>\n\t<meta property=\"og:image:height\" content=\"947\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daisuke Higuchi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daisuke Higuchi\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652\"},\"author\":{\"name\":\"Daisuke Higuchi\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"headline\":\"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python\",\"datePublished\":\"2024-11-07T23:20:00+00:00\",\"dateModified\":\"2024-11-08T01:02:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652\"},\"wordCount\":40,\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/streamlit-thumb.png\",\"articleSection\":[\"AI\",\"Azure\",\"ChatGPT\uff06AI\",\"d-higuchi\",\"LLM\",\"Python\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652\",\"name\":\"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/streamlit-thumb.png\",\"datePublished\":\"2024-11-07T23:20:00+00:00\",\"dateModified\":\"2024-11-08T01:02:41+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\"},\"description\":\"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#primaryimage\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/streamlit-thumb.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/streamlit-thumb.png\",\"width\":1562,\"height\":947},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\\\/75652#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8457\u8005\uff08Author\uff09\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"d-higuchi\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/16f1373831fb6fd17387f16ae1195206\",\"name\":\"Daisuke Higuchi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/d-higuchi-wp-icon-230x230.png\",\"caption\":\"Daisuke Higuchi\"},\"description\":\"Chef\u30fbDocker\u30fbMirantis\u88fd\u54c1\u306a\u3069\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/higuchi\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT","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:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652","og_locale":"ja_JP","og_type":"article","og_title":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT","og_url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2024-11-07T23:20:00+00:00","article_modified_time":"2024-11-08T01:02:41+00:00","og_image":[{"width":1562,"height":947,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png","type":"image\/png"}],"author":"Daisuke Higuchi","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"Daisuke Higuchi","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"3\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652"},"author":{"name":"Daisuke Higuchi","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"headline":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python","datePublished":"2024-11-07T23:20:00+00:00","dateModified":"2024-11-08T01:02:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652"},"wordCount":40,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png","articleSection":["AI","Azure","ChatGPT\uff06AI","d-higuchi","LLM","Python"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652","name":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png","datePublished":"2024-11-07T23:20:00+00:00","dateModified":"2024-11-08T01:02:41+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206"},"description":"AI, Azure, ChatGPT\uff06AI, d-higuchi, LLM, Python |\u306f\u3058\u3081\u306b \u751f\u6210AI\u3067\u4f55\u304b\u3092\u3059\u308b\u3001\u3068\u306a\u3063\u305f\u3068\u304d\u306b\u307e\u305a\u771f\u3063\u5148\u306b ChatGPT","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2024\/11\/streamlit-thumb.png","width":1562,"height":947},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi\/75652#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u8457\u8005\uff08Author\uff09","item":"https:\/\/www.creationline.com\/tech-blog\/author"},{"@type":"ListItem","position":3,"name":"d-higuchi","item":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"},{"@type":"ListItem","position":4,"name":"streamlit\u3067\u304a\u624b\u8efd\u30c1\u30e3\u30c3\u30c8WebUI\u3092\u4f5c\u308d\u3046 #ai #azure #openai #llm #python"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/16f1373831fb6fd17387f16ae1195206","name":"Daisuke Higuchi","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2023\/08\/d-higuchi-wp-icon-230x230.png","caption":"Daisuke Higuchi"},"description":"Chef\u30fbDocker\u30fbMirantis\u88fd\u54c1\u306a\u3069\u306e\u6280\u8853\u8981\u7d20\u306b\u52a0\u3048\u3066\u3001\u4f1a\u8b70\u306e\u9032\u3081\u65b9\u30fb\u6587\u7ae0\u306e\u66f8\u304d\u65b9\u306a\u3069\u306e\u696d\u52d9\u6539\u5584\u306b\u3082\u53d6\u308a\u7d44\u3093\u3067\u3044\u307e\u3059\u3002\u300cChef\u6d3b\u7528\u30ac\u30a4\u30c9\u300d\u5171\u8457\u306e\u307b\u304b\u3001Debian Official Developer\u3082\u3084\u3063\u3066\u3044\u307e\u3059\u3002","url":"https:\/\/www.creationline.com\/tech-blog\/author\/higuchi"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/75652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=75652"}],"version-history":[{"count":3,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/75652\/revisions"}],"predecessor-version":[{"id":75657,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/75652\/revisions\/75657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/75754"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=75652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=75652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=75652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}