Open8
Open AIのAPIでポジティブな記事を探す
ネットには心が荒むようなニュースしかないのでOpen AIのAPIを使ってポジティブな記事を探すことにする。
使うもの
- Open AIのAPIキー
- Google Colab
まずはOpen AIのAPIキーを変数に格納する。
直接書くとやばいのでgetpassというモジュールを使って実行時に入力してもらう。
from getpass import getpass
secret = getpass('Enter the secret value: ')
ライブラリをインストールする。
Google Colabなどのノートブックの場合は先頭に!
を入れる。
!pip install feedparser
!pip install openai
フィードを取得する。
今回ははてなブックマークの人気エントリを使う。
果たしてはてなブックマークにポジティブな話題は存在するのか。
import feedparser
url = "https://b.hatena.ne.jp/hotentry.rss"
feed = feedparser.parse(url)
プロンプトに使いやすいよう、タイトルだけ抜き出す。
このコードではあとで応用するためにいったん辞書形式にしているが、結局使わなかった。
def to_obj(entry):
title = entry['title']
link = entry['link']
description = entry['description']
return {'title':title,'link':link}
entries = list(map(to_obj,feed['entries']))[:15]
entries_text = '\n'.join([f"[{entry['title']}]({entry['link']})" for entry in entries])
実行すると以下のようなmarkdownになる。
[ゲームさんぽの次に見るべきYouTubeの教養コンテンツ](https://anond.hatelabo.jp/20230222194136)
[「頭のいい人」が自然とやっている4つのこと。“素直に○○する” ことも意外と大切だった - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習](https://studyhacker.net/sharp-people)
[はあちゅうさん講演講師交代の経緯まとめ(かながわハートフルフェスタ2022inおだわら) - ドクダミ自由帳](https://www.dokudamiyoshiko.com/entry/20230223/1677078000)
[上野千鶴子氏のいう「おひとりさま」は、社会から孤立するススメではなく、家族以外の選択肢も増やすことのススメ - 法華狼の日記](https://hokke-ookami.hatenablog.com/entry/20230223/1677099600)
[子供は作っておいた方がいい](https://anond.hatelabo.jp/20230222190044)
[家計管理アプリ「マネーフォワード ME」に課金したら、お金に無頓着な私でも節約できるようになった | ライフハッカー・ジャパン](https://www.lifehacker.jp/article/2302-tinyhack-money-forward-me-premium/)
[ウクライナ政府が自国での『Atomic Heart』配信停止を要求―他国のゲーマーに対してもプレイを控えるよう呼びかけ | Game*Spark - 国内・海外ゲーム情報サイト](https://www.gamespark.jp/article/2023/02/23/127353.html)
[リス◯◯ング](https://anond.hatelabo.jp/20230222220943)
[生産性を高めれば高めるほどますます忙しくなる /「限りある時間の使い方」を読んだ - kakakakakku blog](https://kakakakakku.hatenablog.com/entry/2023/02/22/084137)
[トマト1個、もやし1袋入り「フライパン炊き込みご飯」にんにく、チーズ、コンソメで簡単、激ウマに炊けます【筋肉料理人】 - メシ通 | ホットペッパーグルメ](https://www.hotpepper.jp/mesitsu/entry/kinniku/2023-00766)
[セッション認証とトークン認証について](https://zenn.dev/oreilly_ota/articles/31d66fab5c184e)
[Naoki Iso on Twitter: "上野千鶴子氏「結婚するな、と言っているわけではないのよ。自分の人生に巻き込んでいい、相手の人生に巻き込まれていい。そう思えるほどコミットできる相手は、一生のうちで5人もいないはず。そういう「血迷える相手」に出会えるのは、やはり幸福… https://t.co/uVscqGfzQW"](https://twitter.com/isnki/status/1627952307618091008)
[エマニュエル・トッドが仏紙に断言「第三次世界大戦はもう始まっている」 | 「クレイジーな反逆児野郎」が持論を展開](https://courrier.jp/news/archives/317205/)
[baizou1000 on Twitter: "バズっているようなので放置せず言わせてもらいますが、脳疾患とサウナとの因果関係を示すデータは存在しません。サウナの温度も日本とフィンランドで大差はありません。フィンランドも乾式が主であり、湿度100%もありません。ロウリュウ中でも… https://t.co/aGg98LphZi"](https://twitter.com/baizou/status/1627399580592791553)
[アップルウオッチで血糖値測定する技術、開発が飛躍的進展-関係者](https://www.bloomberg.co.jp/news/articles/2023-02-22/RQHT1BT1UM0W01)
Open AIのAPIにプロンプトを投げる。
今回はFrom the following news, extract only five rows that contain positive news.
にした。
「以下のニュースから、ポジティブなニュースを含む行を5行だけ抽出して」といったところ。
import openai
openai.api_key = secret
completion = openai.Completion.create(
model="text-davinci-003",
prompt=f"""From the following news, extract only five rows that contain positive news.
{entries_text}
""",
max_tokens=700,
temperature=0.5)
プロンプトを考えるのはとても重要。
試しにChatGPTに「明るい気持ちになれるニュースが書かれている行だけ抽出して」とお願いしたところ。
身も蓋もない回答をされた。
はてなブックマークの人気エントリは荒んでいる。
あとは結果を出力するだけ。
for comp in completion.choices:
print(comp.text)
結果はこんな感じ。
1. [「頭のいい人」が自然とやっている4つのこと。“素直に○○する” ことも意外と大切だった - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習](https://studyhacker.net/sharp-people)
2. [家計管理アプリ「マネーフォワード ME」に課金したら、お金に無頓着な私でも節約できるようになった | ライフハッカー・ジャパン](https://www.lifehacker.jp/article/2302-tinyhack-money-forward-me-premium/)
3. [生産性を高めれば高めるほどますます忙しくなる /「限りある時間の使い方」を読んだ - kakakakakku blog](https://kakakakakku.hatenablog.com/entry/2023/02/22/084137)
4. [トマト1個、もやし1袋入り「フライパン炊き込みご飯」にんにく、チーズ、コンソメで簡単、激ウマに炊けます【筋肉料理人】 - メシ通 | ホットペッパーグルメ](https://www.hotpepper.jp/mesitsu/entry/kinniku/2023-00766)
5. [アップルウオッチで血糖値測定する技術、開発が飛躍的進展-関係者](https://www.bloomberg.co.jp/news/articles/2023-02-22/RQHT1BT1UM0W01)
markdownをそのまま貼り付けるとこうなる。
- 「頭のいい人」が自然とやっている4つのこと。“素直に○○する” ことも意外と大切だった - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習
- 家計管理アプリ「マネーフォワード ME」に課金したら、お金に無頓着な私でも節約できるようになった | ライフハッカー・ジャパン
- 生産性を高めれば高めるほどますます忙しくなる /「限りある時間の使い方」を読んだ - kakakakakku blog
- トマト1個、もやし1袋入り「フライパン炊き込みご飯」にんにく、チーズ、コンソメで簡単、激ウマに炊けます【筋肉料理人】 - メシ通 | ホットペッパーグルメ
- アップルウオッチで血糖値測定する技術、開発が飛躍的進展-関係者
ポジティブな記事…まぁそう言われてみればそうとも言える感じがする。
おまけ
俳句を作ってみた。
こんな感じのプロンプトで
あなたは俳句で喜怒哀楽や季節感を表現する詩人です。
俳句とは、5・7・5という音節数の文章を作ることを指します。
俳句の例として以下のようなものがあります。
* 古池や 蛙飛びこむ 水の音
* 若草や つわものどもが 夢の跡
* 柿食えば 鐘が鳴るなり 法隆寺
* 梅一輪 一輪ほどの あたたかさ
* 静かさや 岩にしみ入る 蝉の声
それでは「---」に続く文章をテーマにして俳句を作ってください。
---
{entry['title']}
{entry['description']}
こういうのを出力する
愛すべき者と
地下壕にて
笑いあふれ
https://www.dailyshincho.jp/article/2023/02211131/