Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

ChatGPTを非同期でPythonから利用する方法

ShodoがChatGPTに対応しましたね。

最近注目されている自然言語処理技術の一つChatGPT。本記事ではPythonからChatGPTを非同期で扱う方法についてご紹介します。

実はこの記事もChatGPTに書いてもらい、僕が加筆し、Shodoで校正しています。

ChatGPTと非同期で扱う話

ChatGPTとは、人工知能の一種であるGPTを用いた、対話型の自然言語処理技術のことです。

APIも公開されて最高!なわけですが、 いかんせんレスポンスが遅いため面倒です
通常、数ミリ秒の世界で生きているわけですが、ChatGPTのAPIは30秒以上ふつうにかかります。同期的なWebサーバーで返答を待ってしまうと、ワーカーが長時間待ってしまうのであまり嬉しくありません。

そこで非同期で扱うことが大事になります。

そう。PythonのAsyncです!Async最高!

ChatCompletion.acreateを使おう!

openaiというPythonライブラリを使うことで、ChatGPTをPythonで利用できます。openai.ChatCompletion.create という関数を使う例をよく見ますが、非同期の ChatCompletion.acreate という関数を使いましょう!

import openai

res = await openai.ChatCompletion.acreate({...})

オプションなどは create と同じです(参考 https://platform.openai.com/docs/guides/chat

また stream=True というオプションを渡すことで非同期ジェネレーターで受け取れます。すごい。ChatGPTのWeb版のように、文字がどんどん書かれるようなUIを作る場合に必須となります。

Djangoでの利用例

ChatGPTを非同期で扱う場合、FastAPIやDjangoといった非同期対応のWebフレームワークを使うのがおすすめです。以下はDjangoを用いてChatGPTを利用する例です。

class GPTView(View):
    async post(request):
        res = await openai.ChatCompletion.acreate({...})
        return JsonResponse({"text": res["choices"][0]["message"]["content"]})

これで uvicorn などで起動すれば、ちゃんと非同期で扱ってくれます。Django最高!
AsyncStreamResponseDjango 4.2からの対応のようですので、それも楽しみですね。

エラーハンドリングの仕方やDjangoRestFrameworkで非同期をやる方法などは今後気が向けば書きます。

まとめ

ChatGPTをPythonから利用する方法について、 ChatCompletion.acreate という非同期の関数を紹介しました。また、非同期をWebで扱う場合はFastAPIやDjangoがおすすめです。

この記事もChatGPTとShodoのAIのおかげで書きましたが、書き始めの下書きと誤字や間違いのチェックがあるだけで、気がすごく楽ですね。

執筆:Kiyohara Hiroki (@hirokiky)
Shodoで執筆されました

ロケットと、信じる話

(今日は雑記として、結論もない話を書きました)

H3ロケットの打ち上げが失敗してしまい、僕としては結構ショックでした。
いやー、残念。やる意義も大きくて、期待していました。

1号であり試験機なので今後、改善すれば良いと思います。もちろん失敗についてや大事な衛星の打ち上げに使われたことなど、再考すべき点はあると思っています。

でもそれを含めて、応援したい気持ちです。

そこでふと、もう少し日本に期待をして良いんじゃないかなと自分に対して思いました。やっぱりどこかで「日本はダメだ」、「アメリカが正義」と言いたい気持ちも見え隠れしてしまいます(自分の中に)。とくに、こういう機会はそうです。

それって結構、寂しいなと思います。

ちょっとここから、ロケットの話から飛躍した話になってしまいますが…。

「日本オワコン」論って、論理的に正しいかもしれませんが、自己成就予言に陥ってしまう気がしています。それってもったいなくて、「なんとか解決してしまう愚かさ」を失ってしまいます。

たしかに日本には少子化GDPの低下などの悪材料が多いですし、債権にしろ株式にしろアメリカを買うほうが結果は良いでしょう。でもそれも、僕たちがオワコンと思うことでオワコンの道を加速しているようにも思えます。結局は皆んなが変えれば、変わりそうな気もする。信じることをやめたら終わりなんですよね。でもまぁ大阪の都構想が頓挫したり、やっぱり変化したくない国なのかな、と思ってしまうこともあります。

でももう少し、日本というか、「自分たち」に期待しても良いんじゃないかなと思います。今の若い人たち、働いている世代の人たちですね。たぶんデータで見ればオワコンと言うほうが正しいんですが、これは正しさではなく、根拠のない自信みたいなものです。皆んながそう期待して何かを起こせば、案外、あっさりオワコンじゃなくなる可能性もあります。

不用意に悲観しないというか、目の前の信じれるところで頑張るということです。

ウォーレン・バフェットビル・ゲイツが成功したのは昔、アメリカに期待したからだとも言えます。悲観論であればウォーレン・バフェットのようになれないのは事実です(アメックスが傾いたときに株を買ったりしてますから)。

だから僕はもう少し日本の製品を買おうかなと今ちょっとだけ思いました。そして、個人の購買動機だけ少し変えてもあまり意味はないので、こんな記事を書いてみようかなと思いました。まぁ、買うときはもちろん製品として良ければですし、Sony信者になろうというわけでもないです。Apple製品は良いですからね。

ただもう少し僕自身や近い人たちを信じたり、そこにお金を使ったり、建設的に前へ進むアクションをしようと思いました。そして、H3ロケットのこれからを応援しようと思いました。

僕の税金でロケットを飛ばしてくれ。信じてるから。

そんな話でした。

執筆:清原 弘貴 (@hirokiky)
Shodoで執筆されました

31歳になりました

めでたい!

起業した会社で初めて資金調達を実施しました。 もう、前に進むだけです。

将来、国家公務員だなんて言うな 夢がないなあ

Keep Tryin' / 宇多田ヒカルより

open.spotify.com

30歳も超えると、もう何歳がどうとか関係なくなってくるので、楽でいいですね。

過去分

blog.hirokiky.org

blog.hirokiky.org

blog.hirokiky.org

blog.hirokiky.org

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

歳とともにコンテンツからの衝撃や感動が減ってきた?という話

雑記です。

最近はFANBOXにこういうことを書きがちですが、たまにはブログでも書こうと思います。 単なる思ったことの記事なので、ふーんとか、そういう気持ちで読んでください。

コンテンツからの衝撃

何というか最近、新しいコンテンツを摂取しても 「うわ!これは衝撃的だ」と思うことが減りました。これはコンテンツ批判などでなく、慣れや飽き、そして案外SNS依存のようなものが原因だと思われます。

どういうことでしょうか。

価値観が揺さぶられるというか、自分の人間全部で向かい合う体験が日に日に減っているということです。たとえば僕にとってはアニメエヴァバック・トゥ・ザ・フューチャーは人生の根本にあります。最近だと「人間の土地」というエッセイなどがそういう作品でしたが、そういった作品に出会う数がだんだん減っている気がします。

皆さんにも覚えはないでしょうか。

良く言えば価値観が定まってきた

ただ最近は新しい何かを見ても「あぁ、どこどこで見たあの感じね」と勝手に納得してしまいがちです。もちろん今でもメイドインアビスにはワクワクしますし衝撃を得ますが、そういう衝撃を与える何かは歳を重ねるごとに少なくなっています。

楽しんだり、ファンとして追いかけたりもできるのですが、「うわ!」と自分を揺さぶられることが減っています。むしろ揺さぶられないように見ようとしている節も自分に感じるのです。消化することや何か言おうとすることを考えていて、全力で見てないんですね。

良く言ってしまえば価値観が定まってきたという感じです。何とも30歳らしい悩みですね。この悩みすらも青臭く感じるときがくるのかもしれません。ただやはりそれに危機感を覚えるとともに、これが行き過ぎると何も楽しめなくなるのではという恐怖すらあります。

もちろんいつだって初心に帰ることは今すぐできます。ですがどうも自分にある引き出しに照らし合わせてしまうことが増えています。

深く潜る気持ちが減ったのはなぜ

もう一つ別の視点でいうと、深く作品に潜る体験を自ら避けているような気がします。

年齢的な問題や仕事、子育ての忙しさもありますが、それ以上にネットというものが受動的かつ刺激的になりすぎて、能動的なダイビングが難しくなっている感覚もあります。特にここ数年で国際社会や日常が不安定化したこともあってか、どことなく「何かが定まっていない感覚」があります。ニュースをどうしても追いかけてしまったり、受動的で「軽い」コンテンツになびきがちです。

要するにSNS依存症になっているということです。

陰謀論っぽくわざと言うと、僕たちの脳は知らず知らずのうちに疲弊させられていて、受動的になるようにTwitterYouTubeのAIに支配されているのかもしれません。これは極端な言い方ですが、SNSやニュースを1週間見ないという生活はもはや無理になっていると思います。

何というかその感覚のせいで、自分の深い部分と対話しながら作品にも触れられていない気がします。 前述したようにそもそも心ここにあらずで作品を見ていたり、「後でこう言おう」と考えながらコンテンツに触れている気もします。

まさに、今のあなたもそうだったりしませんか?

答えは分からないが

これは答えを求める記事ではないので、結論は用意できていません。

おそらく原因は複合的なものであり、社会情勢や育児の忙しさ、会社経営の大変さなど僕の中にも色々あると思います。でもそれで諦めてしまうのは少し寂しい気持ちがします。

改善する方針としてはこんなところでしょうか:

  • コンテンツの消費や消化、レビューでなく体験を重視する
  • SNSを眺める時間を減らして脳のスペースを空ける
  • 自分の引き出しは置いておいてなるべく純粋に全力で見る

この答えはちょっと安直かもしれません。

ともあれまずニュースに反応してしまうのが、自分を顧みても良くない気がしています。また、コンテンツの消化や今の価値観で考えることに意識が向いていて、その体験を軽視している(勝手に納得したり批判的に見る癖が付いている)傾向もありそうです。

意識していかないとできない気もしますね。 ふと思ったのですが、VRが良いのはスマホをイジれないことなのかもしれません。

もし皆さんのおすすめしたい作品があれば、ぜひ教えてください。 僕からは「コンテナ物語」、「竜の卵」あたりをおすすめしておきます。

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

イラストのAI学習禁止はできるのかをAIエンジニアが短く話します

こんにちは。 mimic(ミミック)というサービスがリリースされ、インターネットを騒がせています。 このサービスはアップロードされたイラストを学習して、類似されたイラストを生成できるというものです。

illustmimic.com

誰がこの文章を書いているか

ShodoというAI文章校正サービスを作って運営しているものです。@hirokikyといいます。 Shodoは皆さんがメールや記事を書くときに、変な日本語になっていないかや、二重敬語を使っていないかなどをチェックしてくれるサービスです。

この記事はざっくりAIエンジニアが書いていると思ってください。 「AIと著作権」というかなりセンシティブな問題について当事者でもありますので、今回の件をサービスの設計などを含めてざっくり話します。

私自身も勉強中の身ですので、ぜひ文章に改善点があれば教えてくれると嬉しいです。 そして実際に困ったことがあったときは、著作権に詳しい弁護士の方に相談してください

で、AI学習禁止はできるのか?

さっさと結論を言うと、あなたのイラストを「AI学習禁止」と確約することはできません。規約で明示することはできますが、ケースごとの判断となります。

そもそも今回の話ですが「自分の著作物を勝手にアップロードして利益を得るな」という意味ですでに悪意のあるユーザー(なりすましたい人など)は著作権法違反となり得ます。しかし非公開かつ私的利用の範囲では、単にアップロードだけされても著作権違反と言うのは難しいかもしれません(指摘があったので1文を追記しました)。

またあなたのイラストによく似た画像を作って不当に利益を得るのは著作権法違反になり得ます(これは議論が分かれるところで、詳細は下のリンクの「第4の1.そもそも著作権侵害に該当するのか」を読んでください)。「AI学習禁止」という文言を急いで追加しなきゃ!というわけでなく、今までの「無断転載・無断利用・アップロード禁止」という説明で十分と思われます。ただ将来、AIの発達に伴ってもう一度考える機会がくるでしょう。

追記: より著作権法を見ながら解説された記事が書かれました。法律と照らしてより深く知りたい方はこちらを参照してください。

Midjourney、Stable Diffusion、mimicなどの画像自動生成AIと著作権 | STORIA法律事務所

なぜAI学習禁止をできないのか

ざっくり言うと、平成30年の著作権法改正で著作権者の利益を不当に害しなければ、公開された著作物を大規模データの一部としてAIに学習させられるようになりました。ですので、世界に公開したイラストを普遍的な意味で「AIの学習を禁止する」とするのは難しいでしょう

利益を不当に害する場合そうではありません。あなたのイラストを意図して使い、表現が全く似た画像が生成されて困る場合には、ちゃんと著作権法違反となり得ます。クリエイターの権利は保護されていますが、まだ裁判での判例がないのも現状です。類似性をどう判断するかも難しいところで、画風レベルであれば著作権で保護されません。これから裁判やAIサービス開発者の倫理規定、イラストレーターの意見などを含めてコンセンサスを作っていく必要があります

著作権法のオーバーライドについて追記:個人の規約として掲示することはできますので、「機械学習やAI、解析しての利用を禁止します」と明示できます(「無断利用禁止」より明確)。その場合も絶対ではなくデータの用途やケースにより判断が個別に行われることになります。

mimicの問題はなんだったのか

今回のmimicについてはAI学習という以前の、サービス設計やコミュニケーションの問題があると思います。

改善するとして、たとえばpixivに公開アップロードされた自分の画像を、pixivと連携した本人だけが学習できるようにすれば問題はかなり小さくなります。連携できるpixivアカウントの登録日などで制限すれば、悪意のあるユーザーの大半を排除できるでしょう。ただこれは実装のコストもありますので、現状でも通報システムくらいは必要です。

実際にmimicも、他人の画像をアップロードすることを禁止しています。なので、「問題ないサービス設計か?はいかいいえで答えてください!」とひろゆきに聞かれると「うーん…、問題はありません」と言ってしまいそうです。ただユーザーを信頼しすぎている点や、それによって生まれる危険をスルーしすぎていると思います。

イラストレーターの人は悪意のあるユーザーを断罪していくコストが増える可能性はあります。mimicというサービス側で何かしらの対策は考えたほうが良いと思います。イラストレーターの人が心配しているのは、そこじゃないでしょうか。

サービス設計とはお客様や世界とのコミュニケーションです。利用される人や関係する人がどう幸せになるのかだけでなく、悪影響がないかも考えるべきでしょう。AIに関したサービスの開発者は私を含めて法律だけでなく、倫理観や権利への考え方、コミュニケーションも大切にしたほうが良いと思います。

改正された著作権法は悪法なのか

改正された著作権法は悪法なのでしょうか? そう結論づけるのは早計です。ただ、個々に議論の余地はあります。

デジタル技術の発展のためオープンなデータを活用できることは重要です。たとえばmidjourneyって便利ですごいですよね。あれは他人の著作物を勝手に学習しています(たぶんですが高確率でそう)。そしてGoogleTwitterもおそらくあなたの著作物を、ビッグデータの一部として学習していると思います。今日、大きなテックカンパニーはほとんどがAIを活用して、皆さんの生活に役立っているでしょう(望んだ結果を返してくれるGoogle検索やYouTubeのレコメンド、Google Photoにある僕の娘の写真とか)。

また、改正著作権法は大規模なデータや研究、技術開発のためという背景でAIへの学習を認めています。「表現や思想又は感情を自ら享受し又は他人に享受させることを目的としない場合のみOK」という条件がついているので、それを逸脱していればWebサービスやAIシステムなどとしても違反となります。

https://www.bunka.go.jp/seisaku/bunkashingikai/chosakuken/bunkakai/51/pdf/r1406118_08.pdf

意図して露骨な著作物を学習・生成させて使う場合は現行法でもアウトとなり得るでしょう。なので「改正された著作権法は悪だ」、「また我々の知らないところで法律を変えやがった」と反応しすぎるのはやめたほうが良いです。AIの利点を損ないすぎる法律を日本で通してしまうと、日本だけサービスの質が低く発展しない国になる可能性もあります。

個別のサービスには議論の余地がありますし、日本の著作権法も今後また改正されていくでしょう判例もまだありません。ですのでイラストレーターの皆さんの意見を出していくのは良いことだと思います。ですが、「悪法だ!」と反応的になる前に、少し落ち着いてから良い法律や権利について議論するほうが良いと思います。

おわりに

今回のような議論が深まることは、僕はとても良いことと思います。

ですがあまり過剰な反応は危ういと思います。本当にちゃんと進めるべき議論が進まないおそれがあるからです。とくにSNSの渦というのは、人間の心を乱してしまいます。僕も経験があります。

僕もなるべく公平かつ簡潔にこの記事を書いたつもりですが、もちろん立場としてAIエンジニアですのでAI側に優しいバイアスがありそうだとは念頭に置いてください。そして、間違いがあれば僕に教えてください。

大切なのは落ち着いて、世界を一つひとつ良くしていくことです。そしてAIを使ったサービスに問題があれば開発者は説明や謝罪をして、修正したほうが良いでしょう。私も法律家や弁護士ではありませんが、著作権法や今回の話に深く関わる人間の一員です。なので記事で助けになる説明をしたいと思いましたし、自身の仕事でも大切にしていきたいと思っています。

イラストレーターの方のことは、AIエンジニアの皆さんも、もしかしたらAIくんも大好きだと思います(そう信じたいです)。ただ、今回みたいなサービス側の失敗(というか不備や齟齬)があるのは少し残念で、同業者として申し訳なくも思います。でも改善すれば良いと思います。

僕の記事がなにかの助けになると嬉しいです。そして、世界をより良くする方法があれば、一緒に考えていけると嬉しいです。

良ければ僕のTwitterのフォローをよろしくお願いします。

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

DjangoCongress JP 2022、開催します!そしてトークを募集中です

DjangoCongress JP 2022のトップ画像

DjangoCongress JP 2022を11月12日(土曜日)に開催します!

そのトークを募集中ですので、ぜひお気軽に応募してください。 締切は 8月12日(金曜日) いっぱいです。

「私なんて…」と思う方、ご安心ください。今日はトーク応募のポイントをお伝えしますDjangoについての知見がある方は共有していただけると、コミュニティのためになると思います!

とくに今年はオフラインで、東京で開催する予定です。ここ数年はイベントを開催することそのものが難しい時代でした。新型コロナへの感染対策も慣れてきた昨今ですので、ぜひオフラインで皆さんと会えると嬉しいです。

どんな内容を投稿すれば?

トークの内容はDjangoに少しでも関連していればOKです。 たとえば、このような知見はありませんか?

もしあれば何でもお気軽に投稿してください。

イベントを作るのは、あなたのトークです

ぜひ、あなたのトークを送ってください。

初めての人や、慣れてない人も歓迎しています。たとえばPyCon JPや海外イベントでの登壇となるとハードルが少し高くなるかもしれませんので、一度DjangoCongress JPで実績を積んでおくのはどうでしょう。

選考の基準としては、トークが求められているかや、イベント全体でバランスよく内容がバラけるかなどを見ています。また、応募フォームに入力している内容が詳しく書かれているかも大切な判断基準になります。逆に、投稿者や所属等は選考に関係しません。内容やトークの具体性を重視しています。公平になるために、応募者や技術のトレンドだけで選ばないためです。

お早めに内容を投稿してくれると、イベントのスタッフ的にはメンタルが安定するので嬉しいです(ギリギリまで寝かせようという気持ちも分かります…)。

ぜひ以下のフォームからDjangoの知見を共有してください。

イベントを作るのは、あなたのトークです

forms.gle

https://forms.gle/ucAfuMdPwLxfm4n7A

追伸:私がこのイベントの代表とはいえ、個人ブログで書く内容なのか?という気もあります。ですが読んでくれる方も多いのですし、スタッフの一員としてイベントを応援する気持ちで書いています。

執筆:Kiyohara Hiroki (@hirokiky)Shodoで執筆されました

テックブログ運営で大変だった話とプロダクト開発に繋がった話

こんにちは。kyです。 今日はちょっと昔話というか、お話をしようと思います。ですので気軽に聞いてもらえると嬉しいです。

ここでお伝えしたいことは「テックブログの運営で大変だった話」と「課題を解決するプロダクトを作っていった話」です。僕なりに気づいたこともお伝えします。

昔、テックブログを作ったときの意気込みと大変だったこと

前の会社でPyQというWebサービスを数人で立ち上げたのですが、成長するにつれて、もっとお客様にPyQを知っていただく必要がありました。

マーケターのnanaもチームにジョインし「ブログを通して有益な情報を公開して、それでサービスを知ってもらおう!」と決めました。SEOだけを考えた残念な記事を量産するのでなく、ちゃんと問題の解決や知見になる記事を書こう!ということを大切にしました。

テクノロジーに関したWebサービスだったので、テックブログとも言えるブログを作り始めました。ブログについてきちんと取り組むため、こういったことを大切にしました:

  • 独自ドメインでやる
  • 技術の内容とWebサービスのニュース両方を書く
  • 複数人で運用。相互にレビューしてちゃんと良いものを書く
  • エンジニアが技術的な正しさや有益さに、マーケターが読みやすさやSEOに責任を持つ

ブログを作るだけなら良いのですが、このような条件で真剣に運用するとなると、どうでしょうか。とくに最後の1つはとてもチャレンジングだったと思います。コピー&ペーストしたような記事が量産される時代を終わりにしようと、「うちはちゃんと読まれるうえ、読む人の課題解決や成長につながるものを作ろう!」と意気込んでました。

最初は、運営について大変なことがありました。チーム(とくにこの活動を引っ張ってくれたnana)が一生懸命考えて運営体制を作っていきました。

当時の運用フロー

そのためにこのようなフローで記事を書いていました。

  1. 記事をVSCodeで書き「テキスト校正くんプラグイン(textlint)」でチェックする
  2. 記事を書く仕事をAsanaでタスク管理する
  3. 記事のレビューをDropbox Paperで渡してコメントしてもらう(Asanaのタスクにアサイン)
  4. レビューのやり取りを記事に反映して、はてなブログに記事を作成する
  5. はてなブログの下書きプレビューで社内に共有する
  6. 記事を修正して、完成すれば記事を予約投稿する
  7. 記事が投稿されたらツイート、Facebookでシェアをする

これは結構大変そうです。

ですが条件の中で良い記事をちゃんと作ろうとすると、必要な作業だったと思います。実際に良い記事を書いて、多くの方に読んでいただいていました。今もそのブログ、Python学習チャンネル by PyQは多くの方に読んでいただいていますし、実際に役立つ内容が盛りだくさんです。

ですが、もう少しでも良いから運用を改善したいものです。とくに外部の人のチェックがあるインタビュー記事で、さらに運用が大変になったのを覚えています。困っているチームメンバーを見たときに 「絶対に助けたい」と思いました

数年前の話ですので、今なら「Notionで運用できる!」など新しい方法があるかもしれません。Slackのスレッドでコメントしたり、Zennをチームで運用するのも良いかもしれません(独自ドメインでやりたいのでZennやQiitaは避けたと思いますが)。皆さんも、もしかしたら苦労されているかもしれません。

何かを作って解決できないかな、と考えた

そんな困っているチームメンバーを何とかしたい、と思いました。

そこで 「テックブログの運営に使えるWebサービスがあれば良いのでは」 と考えました。いえ、テックブログと言わず、複数人でのメディア運営を何とかできるプロダクトが作れるのではないでしょうか。

こんなものがあれば、協力してブログを運営するプロダクトになるのではと考えました:

  • インストール不要ですぐ使える:
    • Webサービスにすることで、導入の手間を減らす
    • オンラインのエディターで執筆すると、自動で校正される
    • テキストで入力できる(Markdownに対応)
  • 執筆のタスク管理もできる:
    • 記事を執筆する状態を同じサービス上で管理する
    • レビューのワークフローに自動で則る
    • アサインや期限、ステータスを管理し、誰があと何をすれば記事の完成かを分かるようにする
  • 記事のレビュー(コメント)もできる
    • GitHubライクな行のレビューにし、社内のエンジニアも協力しやすくする(案外誰にとっても見やすい)
    • 記事はバージョン管理し、コメントが混ざらないようにする
    • コメントが通知、Slack連携されることで連絡を減らす
  • ワンクリックで配信できる:
    • ブログ上への記事作成をワンクリックでできるようにする
    • 画像も自動で配信する
  • 高速な校正:
    • textlintはJavaScript形態素解析エンジンを使うので、MeCabなどの速いものを使う
    • 独自に校正ツールを実装し、高速化する
  • ディープラーニングによる校正:
    • BERTの技術を活かした文法誤り訂正(GEC)をする
    • 助詞の間違いやタイポなど、ルールや正規表現でカバーできない間違いを検知する

と、若干モリモリではありますが、これを作り始めました

当時のブログ運用は「ある価値を実現しようとして、既存の仕組みで何とかしていた」状態でしたので、マッチするプロダクトがあるだけで何とかなります。最初からすべてを実装する必要はなく、運用しながら改善できる点も取り組みやすかった理由です。

もし皆さんも「既存のツールをいくつか使って何とか運用しているが、大変」という場面があれば、何かプロダクトを作るチャンスだと思います。一般化でき、1つの需要としてまとまりがあれば、きっと他の人も困っています。

使ってもらいながら成長する

これは完全にサイドプロジェクトとして作り始めました。まずアルファ版として作り、PyQチームに使ってもらいました。 その当時でも業務はかなり改善されたので、より便利になる「はてなブログ連携」やディープラーニングの技術を追加していきました。

ただ、狭すぎる需要に特化して作れば、それは「便利な社内システム」ができるだけです。そこで開発が進むごとに、クローズドベータやオープンベータとして多くの方に使っていただきました。 開発はその後も続き、半年前に正式リリースしました。もう前の会社での新規事業(PyQ)も軌道に乗っていたので、退社して今の株式会社ゼンプロダクツを起業しました。

そのWebサービスが、今のShodoです。

テックブログの運営にお使いいただいています。

導入してフィードバックをくれた皆さん、初期のころから使ってくださる皆さん、本当にありがとうございます。プロダクトは人に使ってもらわないと育たないと、よく分かりました。

そして、誰に使ってもらうか、どういった人に使ってもらうかも大切だと思います。なぜなら使う人によってプロダクトの方向性すら左右されるからです。プロダクトマネージャーとしては、誰に使ってもらい、いただいた意見をどう受け取るかという判断が重要です。そのためのブレない指針や心と、その逆の柔軟性も大切です。

今のShodoが最初からあれば、当時の悩みはなかったと思います。ですが悩みもあったからこそ良いプロダクトが生まれましたし、悩みや課題に向き合ったからこそチームがより強くなれたのかなと思います。

おわりに

今回は昔話的な内容でしたので、これが知見だ!と豪語するつもりはありません。ですが、こういった学びがあったよ、というサマリーをお伝えしたいなと思っています。

  • 今ある仕組みやツールで何とか解決している課題があれば、プロダクトを作るチャンス!
  • 何か具体的な悩みや助けたい人がいれば、まずは作って使ってもらおう
  • 広い意見をもらったり、どんな立場から意見をくれたかを考えて「社内システム化」を避けよう

プロセスの説明を端折って結果だけを伝えている気もしますが…、もしこの記事が多くの人に読んでいただけたら、もっと詳しく書こうかなと思います。

今後もShodoを開発して皆さんを助けられたら嬉しいです。もちろん今後、Shodoの方向性が大きく変わる可能性なども十分あります。ですが、最初に思った「この困っている人を助けたいな」という気持ちはずっと大切にしたいです。

プロダクト開発、やっていきましょう!

shodo.ink

Shodoで執筆されました