1コマ漫画検索サービスTiqav2 (Algolia + Cloudinary + Google Cloud Vision API) 作ってみた
画像で会話って楽しい
皆さん、チャットツールでコミュニケーションするとき、絵文字や画像って使ってますか? 僕はよく使ってます。人とコミュニケーションするのに、文字だけだと堅苦しいイメージですよね。 例えば、
『OK です、それで先に進めて下さい。』
というフレーズだけだと、相手がどのような感情なのか読み取りにくいです。
そこで、次のような画像でコミュニケーションを取ると、柔らかい印象を与えることができます。
Tiqav2
Tiqav とは?
画像を使って会話をするためのサービスとして、Tiqav があります。
現在は、サービス終了しています。 Tiqav2 は、その Tiqav を参考にして作りました。
Tiqav2 とは?
Tiqav2 は、大きく分けて 2 つの機能があります。
- 画像とテキストを保存
- 画像を検索&表示
2 つの機能
画像とテキストを保存
検索する為には、全文検索サービスの Algolia を使います。
Algolia に保存する情報は、主に 3 つです。画像 URL と拡張子、そしてテキストです。 画像は画像変換&管理サービスの Cloudinary に保存します。保存後、Cloudinary より、画像 URL と拡張子が手に入ります。
テキストは、Google Cloud Vision API へ画像を渡すことでテキストを抽出します。 もちろん、手動でテキストを設定することもできます。
https://cloud.google.com/vision/
画像を検索&表示
テキストで全文検索を行います。その結果の ID と Extension を組み合わせることで、 画像を表示することができます。Extension の種類は、Cloudinary のサポートするもの全てになります。
"gif", "png", "jpg", "bmp", "ico", "pdf", "tiff", "eps", "jpc", "jp2", "psd", "webp", "zip", "svg", "mp4", "webm", "wdp", "hpx", "djvu", "ai", "flif", "bpg", "miff", "tga", "heic"
https://cloudinary.com/documentation/image_transformations#supported_image_formats
この画像を表示する機能を使うと、次のように Slack 上で画像を送信することができます。
詳しい機能は、次のリポジトリをご確認下さい。
https://github.com/silverbirder/tiqav2
SaaS は個人開発には最適
今回、全文検索であったり画像管理は、SaaS に全て任せました。テキスト抽出はなくてもよかったのですが、Google Cloud Vision API が、そこそこ使えたため、そちらも使いました。
個人で開発する際、リソース(時間、お金、人)は組織に比べてとても小さいです。 SaaS は、1つのことを上手くやってくれるし、個人の利用範囲であれば無料なものが多いです。 ニッチなカスタマイズしたい要求がない限り、SaaS は大体の要望を叶えてくれます。 どんな種類の SaaS があるか知りたい方は、↓ のサイトを見てみて下さい。参考になるはずです。
SaaS に面倒なことは任せて、プロダクトコードに集中することは、私にとって、とても大切にしています。 ちなみに今回のプロダクトコードは、CleanArchitecture + InversifyJS で作りました。
終わりに
Tiqav2 は、OSS として公開していますので、誰でも無料で構築できます。 ぜひ、使ってみて下さい。快適なコミュニケーションを目指しましょう!
シェアしよう
関連するタグ
- 手軽に安い食材を見つけられるアプリ「ぼちぼち」を開発
- Qwikでブログページを刷新して学んだこと
- ライティングの効率化ツール:AI Ghostwriterの紹介
- Stable Diffusion API 開発
- Micro Frontendsで組成するフラグメントをWeb Componentsで定義してModule Federationで共有する
- OEmbedとOGPのWebComponentsを作ったので、自分のブログサイトに使う
- Chrome拡張機能(Manifest V3)の開発で知ったこと
- Markdownで執筆するなら、WebComponentsが使えるSSG、Rocketがオススメ!
- silverbirderのポートフォリオページ刷新(v2)
- Googleアカウント画像を返却するだけのAPIを作った
- TikTokスクレイプ基盤をGCP上で構築してハマったこと
- クライアントサイド(ES Module)でMicro Frontends
- Zalando tailor で Micro Frontends with ( LitElement & etcetera)
- Ara-Framework で Micro Frontends with SSR
- ZoomのMeetingを自動生成するGASライブラリ zoom-meeting-creator を作った
- アカウント画像一括更新ツールを作ったので、紹介と学びについて
- TwitterにあるLinkを収集するツール Cotlin で、世界中のプレゼンテーション資料を知ろう
- GMailをGCalendarに登録するサービス rMinc を作ってみた
- [覚書]Reactを業務で使い始めて知ったこと
- WebComponentsでoEmbedのコンポーネントを開発して、学んだこと
- Ruby on Railsを業務で使って思ったこと
- Reactを学ぶ前に歴史を知る
- オミクロン株に感染したので、分かったことを書く
- TikTokスクレイプ基盤をGCP上で構築してハマったこと
- ブラウザの仕組みを学ぶ
- リモートワークになってから『気軽にすぐ聞く』ことが難しくなった
- 20代後半エンジニアである私がこれから学ぶべきこと
- Micro Frontends を調べたすべて
- アカウント画像一括更新ツールを作ったので、紹介と学びについて
- Micro Frontends を学んだすべて
- TwitterにあるLinkを収集するツール Cotlin で、世界中のプレゼンテーション資料を知ろう
- Google Apps Script で FetchAllとRedirctURL の組み合わせは悪い
- GMailをGCalendarに登録するサービス rMinc を作ってみた
- 技術書典7で初執筆した経験をすべて公開