matobaの備忘録

とあるプログラマーのブログ。ソフトウェア開発、執筆活動、ライフログ。

Pythonで文字列からURLを抽出したい時に使えるライブラリ

Pythonで文字列からURLを抽出したいなあ。でも正規表現を書くのは嫌だなあ。という気持ちになりました。

ライブラリ探したら見つかった&日本語記事だと正規表現ばかり紹介されていたので、書いておきますね。

github.com

Welcome to urlextract’s documentation! — urlextract 1.8.0 documentation

インストール

pip install urlextract

使ってみる

>>> from urlextract import URLExtract
>>> extractor = URLExtract()
>>> text = "Pythonで文字列からURLを抽出したい時に使えるライブラリを探していたら、 https://github.com/lipoja/URLExtract が見つかりました。"
>>> urls = extractor.find_urls(text)
>>> print(urls)
['https://github.com/lipoja/URLExtract']

余談

ちなみにライブラリは、 Pythonで文字列からURLを抽出したいけど、正規表現書きたくない。いい感じのライブラリありますか? みたいな雑な問をChatGPTに聞いたら出てきました。

雰囲気だけ知りたい人のための「LangChain」の話

最近、ChatGPTのような技術を関連する情報を見てると、LangChainと呼ばれる技術を見聞きするようになりました。

今回は、「LangChainとは何か」「LangChainを使うと何ができるのか」といった話を軽く調べて整理していこうと思います。

私の場合、新しい技術を学ぶ際、最初は動かさずにドキュメントやコードを眺めて雰囲気を掴むのですが、今はその段階です。実際に動かしている人は勘違いしている内容にコメントもらえると喜びます。

本記事は見つかった記事を読みつつ、未来の自分に向けて現状の理解を整理したものになります。

LangChain とは

  • LangChainは、LLMを利用してサービスを開発したいときの便利ライブラリ
  • OpenAIが提供するAPIだけでもAIチャットサービスを開発できるが、開発中のよくある課題を解決するときに便利(らしい)

関連リンクです

LangChain の 便利なこと

  • LLMを使う時によく使う読み出しや読み込みのユーティリティが用意されている
  • LLMへのリクエスト(プロンプトと呼ばれる)のテンプレートを管理できる
  • 様々なLLMへのインターフェースを標準化できる。OpenAIのAPIからCohereやHugging Faceに切り替える、などができるらしい
  • LLMを組み合わせてアプリケーションを作るときの、枠組みを提供してくれる
  • LLMとの会話のやりとりをシリアライズする仕組みがある

疑問:よく使う外部呼び出しのユーティリティとは?

この辺にリストや用途があります。

Getting Started — 🦜🔗 LangChain 0.0.126

以下のような呼び出し先があります。

  • bing検索
  • Google検索
  • OpenWeatherMap
  • Wikipedia
  • Wolfram Alpha
  • Zapier

Zapierを呼び出せるってことは、Zapier経由で投稿できる全てがサクッと呼び出せてしまいそうですね。

また、Document Loaderという機能もありました。

Document Loaders — 🦜🔗 LangChain 0.0.126

これは既存のテキストデータをLLMと一緒に使う方法で、ここもたくさんのサービスを呼びだすユーティリティが用意されてるようです。ざっと見てると見たことがある名前がたくさんありました。以下は抜粋です。

  • Google Drive
  • Evernote
  • Notion
  • CSV
  • HTML
  • Email
  • Figma
  • Markdown
  • PDF
  • PowerPoint
  • ReadTheDocs Documentation

疑問:LLMってそんなにたくさんあるの?

この辺にリストがありました。

python.langchain.com

素人的には「たくさんあるなあ(語彙力)」という印象を受けました。

疑問:LLMとの会話のやりとりをシリアライズする仕組み?

サービスを開発しようとするをLLMとの会話の履歴をデータベースに保存したり、再読み込みしたり、ということが発生するのは予想できます。

会話履歴をPythonのdictのlistで出力できる&それを読み込めばオブジェクトを復元できるようですね。(試してないし、それで足りるのか不明ですが)

Getting Started — 🦜🔗 LangChain 0.0.126

終わり

私は、LangChainという名前をTwitterやイベントで見聞きしつつ、実際に触るようなまとまった時間を取れずに今に至ってました。とは言え、どういうものなのかは気になっていたので、ドキュメントや資料をざっと読んで情報を整理してみました。

今回は、雰囲気だけLangChainを調べました。せいぜい1hほどドキュメントや諸々を眺めた程度の知識ですが、読んだ方の1hを5minに圧縮できたら何よりです。

次は、実際に触ってみようと思います。(触った結果を記事にするかはその後の気分によります)

また、機会があれば、LangChainで何かしらの機能やサービスを開発してみたいですね。今回はこれで。

参考にしたページ

ChatGPTが出てきてインターネット広告を見る機会が減った

最近、インターネットを閲覧していて、不快な記事を見る機会が減ったと感じませんか?私はそう感じます。ChatGPTやBingチャットが公開されてから、Google検索を利用することが減りました。

この記事は、簡単な気づきの共有です。

続きを読む

育児してたら断捨離したくなってきた話

育児が始まってから、生活が大きく変わった。なんとなく聞いたり予想したりしていたが、実際に体験してみると色々と思うことがある。今回は、最近の話として断捨離したくなった話をしようと思う。

時間が足りないのに減った

育児が始まって、時間的な制約が厳しくなった。聞くところによると親と同居していたり、近くに親が住んでいたりすると、当てはまらないらしい。ただ、夫婦で子供を育てている場合は、大抵時間の制約が厳しくなるように思う。

もともと、やりたいことに対して時間が足りないと思っていた。それが育児の開始によってさらに減った。そして、その制約はしばらく続く見通しになっている。なので、この現実に向き合わないといけない。

限界が見えやすいと最適化しやすい

時間の制約が厳しくなって、色んなことの限界というか上限が見えやすくなった。これをネガティブな話じゃなくてポジティブな話と捉えてる。時間の自由度が下がった分、自分の活動の最適化が進めやすくなった。

自分の活動は無駄が多いと思っていたので、それを少しでも最適化できるなら嬉しい。最適化しやすい状況が見えて嬉しい。

活動の最適化のためにモノを捨てよう

自分の活動の最適化が進めやすくなると、「より最適化を進めていきたい」との気持ちになってきた。その後、「モノをもっと捨てたい」との考えに到達した。モノを捨てることについて考えている。

これまで、色んなものを捨てずにとっておく生活をしていた。「いつか使うかもしれない」「何かの役に立つかも」という気持ちで保管していた。ただ、活動を最適化していくためにはモノを減らした方がいい。

モノを減らしたい機運が高まってきた。

モノの減らし方を考えていて本を見つけた

その後、「どうやってモノを減らすか」について考えていた。これまでモノを集めがちだったので、いきなりモノを減らそうとしても簡単に減らせない。何かいい考えはないだろうか、と考えていた。

そんな中、ある時に本屋をぶらつくことがあった。そこで断捨離コーナーの本を眺めた。「書いて、捨てる」と言う本を見つけた。自分に合いそうな気がしたので、買って読んだ。

意思決定のハードルを下げる話

今の所、この本に書いてあることは自分にハマりそうに感じている。本に書いてあることは、全体として次のような話だと捉えている。

  • 頭の中で捨てるかどうかを考えるのは、意思決定のコストが高い。まずは意思決定のハードルを下げよう
  • 意思決定のハードルを下げるために、対象を一覧にして、適切な観点で分離、ラベル付けをする。整理を進める。
  • 整理してたら意思決定しやすい状況になっている。そこで、自身の状況を考えて捨てる、処分するの計画を考えていく。

言われてみると当たり前だと感じた。締切が厳しくなったプロジェクトの中で「課題を一覧化して整理して、どんどん意思決定を進める」という活動を進めたことがある。あれと同じだと感じた。、

断捨離でもっとスピードアップしたい

まだ、モノを捨てる活動が始まったばかりではあるものの、物が減っていくと明らかに迷うことが減っていく。それによって日々の活動のスピードが上がる。モノを捨てると、スピードが上がるのは理解できてなかった。

モノを捨てる活動は「自分がやること・やらないこと」を整理していく活動でもあるように思う。断捨離を進めるほど、自分の活動や意思決定のスピードが上がるとわかると考えると、捨てる活動が楽しくなってくる。自分の意思決定のスピードに個人的に課題を感じていた。

この活動を進めていくと、意思決定のスピードが上がるぞーという気持ちを持って、断捨離していく所存になった話でした。

そういえば、このブログは備忘録とタイトルにつけてますが、書いて忘れるためのブログだったことを思い出した。もっと書いて忘れて行きたい。

育児と保活と働き方の変化についての近況報告

こんばんは。しばらくブログを更新していないので、簡単に近況報告します。

前回の記事は2022年7月でした。そこから9ヶ月?ほど経ちました。ここら辺で記事を書いておきます。

と思ったのですが、子育てっぽい話がメインになってしまった。

続きを読む

育児が始まって感じたこと。社会支援など

先日、近況報告の記事を書いた。思っていた以上に同年代からレスポンスがあった印象を受けた。 忙しくて連絡を取ったり話ができていないけど、みんな育児トークに興味あるんだなー、などと思った。 出産・育児関係の話で、思うことはいろいろあるので、気が向いた話を書いておこうと思う。

そういえば、育児休業をとって育児をしている男性視点での情報はまだまだWeb上に足りていないような気もするのでちょうど良い気はする。

育児休業をとって感じていること

社会との距離が縮まった気がする

日中に会社員として活動していないので当然ではあるのだけど、それだけじゃなくて周囲の目が変わったように感じる。漠然と友好的な人が増えた。

育児休業を取る前は、リモートワークが中心だったしコロナ禍でもあったので外に行くことは少なかった。また、お昼休みに外に出たとしても、平日の昼間から一人でユニクロの半袖短パンで歩いてる30代の男に対する視線はなんとなく友好的ではなかったと思う。むしろ警戒されている雰囲気を感じていたし、それに対しては「まあしょうがないよね」という気持ちもあった。ユニクロは安い。

対して、今は外出する際に赤ちゃんを抱っこしていたりベビーカーを押していることが多い。また、オムツなど赤ちゃん用品を買い出しに行って持ち帰ってることもある。 そうすると、マンションで知らない人から挨拶されるようになったり、エレベーターに乗る時もなんとなく友好的な反応が見えるようになった。

スーパーやショッピングモールのエレベーターに子供と一緒に乗っていると、高い確率でお婆ちゃんに応援される。「赤ちゃんかわいいね。何歳ですか?」「育児頑張ってね」などといった具合だ。知らない人に応援される経験はなかなかない。

妊娠中の妻と一緒にコロナ禍でリモートワーク中心で働いていると、基本的に外出や外のイベント参加は控えていた。また、オンラインのイベント参加しても基本的に話す機会は少ないので「俺、いる意味あるか?」と思ったり、仕事でもタスクを粛々と消化するマシーンっぽくなっていて、人間的な活動が少なく社会との距離が広がっているのを感じていた。これは良くないと思いつつ、なかなか解決策が見つかってなかった。

それが育児を通して、社会との距離が少し縮まったような気がした。

思ってたより、育児支援があると感じた

インターネット上、というかTwitterを見ていると「日本は育児支援が基本的にない」という印象を受けていた。なんというか基本的に文句ばかりが流れてくるので、「日本は子育て層に厳しい」という印象を強く受けていて、「公共の支援は期待できないのだろう」などと思っていた。なので、「子供を育てるには金銭的な自由度に制限がかかることへの覚悟が必要」などと思っていた。

実際に自分に子供が生まれてみると、「思っていたより育児支援があるな」と感じた。

例えば、2021年3月から東京都で「赤ちゃんファースト事業」というのが始まっているが、これは、新生児1人当たり10万円相当の希望する育児用品や子育て支援サービス等を提供するという東京都の事業。

www.fukushihoken.metro.tokyo.lg.jp

あとは、乳幼児医療費助成制度(マル乳)というもの。新生児は、親の健康保険に入るが100%保険適用ではなくて自己負担が発生する。この自己負担分を行政が負担する、という制度がこれ。

www.fukushihoken.metro.tokyo.lg.jp

あとは、児童手当や育児休業給付金もあるし、出産一時金とかもある。使ってないけど(そもそも育児休業をとってたら使えるのか?)、内閣府ベビーシッター割引券というのもある様子。書くの忘れただけで他にもあるかもしれない。

終わり

そもそもの話を思い出すと、もともと僕は地域や行政の支援・応援がなくても子供を育てられる状況を意識・覚悟してた。「子供は生まれたけど、支援がないので、育てられません」などとは絶対に言いたくなかったので、「行政や地域の支援がない前提で何が必要か」と考えていた。そのスタートラインだった僕からすると、「いろんな支援があってありがたいなあ」という気持ちになっている。

とは言え、育児は始まったばかりなので、これから色々辛い話が出てくるのかもしれないし、「これからお金かかるぞ」的なコメントが自分のところに集まってくるので、ざわざわとしているけど、少なくとも育児の滑り出しは思っていたより好印象ではある。