🧠
Gemini API 使って偽中国語翻訳サービスを作る
免責事項:記事作者は記事投稿時点でGoogle社員です。ですがこのプロジェクトは個人的な趣味プロジェクトで、技術説明も間違っている可能性がある非公式のものです。
昨今の生成 AI ブームに対して完全な傍観者であった私ですが、「そろそろなんか知らんけどAPIとか使ってサービスとか作ってみたい!」と思い立ちました。
問題はどんなサービスを作るかですが、最近の偽中国語ブームに乗って日本語→偽中国語翻訳サービスを公開してみることにしました。(軽くググってみましたが他にも似たようなサービスが色々公開されているみたいです。)
肝心の生成 AI 部分ですが、Google の最新 AI モデル Gemini 2.0 Flash を活用しています。
偽中国語.com
翻訳例:
Gemini 2.0 Flash の API 活用のポイント
このアプリケーションの要は、Gemini 2.0 Flash の API を活用した、高速な翻訳処理です。
-
google-generativeai
ライブラリ: バックエンドでは、Google 公式のgoogle-generativeai
ライブラリを使用して Gemini 2.0 Flash と連携しています。 -
高速な
gemini-2.0-flash-exp
モデル: 従来の生成 AI モデルよりも軽量で高速なgemini-2.0-flash-exp
モデルを指定することで、レスポンスの速い翻訳を実現しています。 -
シンプルな API 設計: Flask を用いて、
/translate
エンドポイントに POST リクエストを送るだけのシンプルな API を設計しました。
主要技術
-
フロントエンド: Next.js, React, Tailwind CSS,
react-icons
,react-ga4
-
バックエンド: Python, Flask,
google-generativeai
,google-cloud-recaptcha-enterprise
,flask-limiter
,flask-cors
- インフラ: Google Cloud Run, Vercel, Google Cloud Build
- その他: reCAPTCHA Enterprise v3, Gemini 2.0 Flash
デプロイと自動化
- Cloud Run: バックエンドの API は、Google Cloud Run にデプロイ。GitHub リポジトリへのプッシュをトリガーに、Google Cloud Build で自動的にビルド・デプロイされます。
- Vercel: フロントエンドは、Vercel にデプロイ。こちらも GitHub と連携し、プッシュごとに自動デプロイされます。
スケーラビリティについて
現時点では、バックエンドのスケーラビリティは Google Cloud Run に依存しています。将来的には、より多くのリクエストに対応できるよう設計する予定です。ただし、現時点では Gemini 2.0 Flash の API 自体にレートリミットが存在するため、Google Cloud Run のスケーラビリティを活かしきれていないのが現状です。
セキュリティ対策
- reCAPTCHA Enterprise v3: 不正アクセス対策として、reCAPTCHA Enterprise v3 を導入。フロントエンドでトークンを取得し、バックエンドで検証しています。
-
レート制限:
flask-limiter
を使用し、短時間に大量の翻訳リクエストが送信されるのを防いでいます。
まとめ
新卒から今に至るまで仕事ではWeb系の技術を全く使ってなかったので Gemini に助けてもらえなければ Web サービスの開発すら不可能だったことでしょう。
ソースコードも(記事も)ほとんど Gemini が書きました。Gemini 最高!
Discussion