{"version":"1.0","blog_url":"https://garyo.hatenablog.jp/","image_url":null,"type":"rich","blog_title":"garyo\u5ca1","categories":["AI"],"url":"https://garyo.hatenablog.jp/entry/2025/03/03/143318","title":"AI\u30cb\u30e5\u30fc\u30b9\u30bd\u30fc\u30b9","height":"190","published":"2025-03-03 14:33:18","provider_name":"Hatena Blog","width":"100%","author_url":"https://blog.hatena.ne.jp/garyo/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fgaryo.hatenablog.jp%2Fentry%2F2025%2F03%2F03%2F143318\" title=\"AI\u30cb\u30e5\u30fc\u30b9\u30bd\u30fc\u30b9 - garyo\u5ca1\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","description":"zenn.dev \u81ea\u5206\u3067\u3082\u4f5c\u3063\u3066\u307f\u305f import tkinter as tk from tkinter.scrolledtext import ScrolledText import threading import feedparser from openai import OpenAI # API\u30ad\u30fc\u306e\u8a2d\u5b9a\uff08\u3054\u81ea\u8eab\u306e\u30ad\u30fc\u306b\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\uff09 client = OpenAI(api_key=\"API\u30ad\u30fc\") # \u96c6\u7d04\u5bfe\u8c61\u306eRSS\u30d5\u30a3\u30fc\u30c9\u4e00\u89a7 rss_feeds = [ {\"name\": \"THE DECODER\", \"url\": \"https://the-decoder.com/feed/\u2026","provider_url":"https://hatena.blog","author_name":"garyo"}