📻
ラジオネーム生成 bot を作ってみた
概要
生成AIを使ってみたい、Xの自動投稿をしてみたい、という気持ちがあったので
- Gemini で架空のラジオネームを生成する
- 生成したラジオネームを X にポストする
という処理を行うプログラムを作ってみました。
生成されたラジオネームが投稿されているのは、以下のアカウントです。
フォローしてくれたらうれしいです。
なぜラジオネーム?
なぜラジオネーム?という疑問は当然だと思います。
暇な時間に架空のラジオネームを考えるのが好きだからです。
ただ、ラジオにメール等を送ったことはないです...
(もっと役立つことにAI使えよ)
準備
プログラム作成前に以下の準備を行います。
- パッケージ(
google-genai
,tweepy
)のインストール - Gemini の API Key
- X の API Key, Token
- 環境変数の設定
パッケージのインストール
pip
コマンドで google-genai
, tweepy
をインストールします。
pip install -q -U google-genai tweepy
Gemini の API Key
以下のURLにアクセスしてGoogle AI Studio で Gemini API キーを取得する
からAPI Key を取得します。
X の API Key, Token
X の API Key と Token を取得します。
以下を参考に取得しました。
環境変数の設定
~/.bashrc
に以下の5行を追記します。
API Key や Token の部分は、上の手順で取得したものに置き換えてください。
export GEMINI_API_KEY="<Gemini の API Key>"
export X_API_KEY="<X の API Key>"
export X_API_KEY_SECRET="<X の API Key Secret>"
export X_ACCESS_TOKEN="<X の Access Token>"
export X_ACCESS_TOKEN_SECRET="<X の Access Token Secret>"
プログラムの作成
以下の内容でプログラムを作成しました。
- 環境変数から API Key, Token を取得する
- Gemini で架空のラジオネームを生成する
- 生成したラジオネームを X にポストする
環境変数から API Key, Token を取得する
os
モジュールを使用して、環境変数を取得しました。
import os
# get Gemini API Key from Enviroment Variable
GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
# get X API Key from Enviroment Variable
X_API_KEY = os.environ["X_API_KEY"]
X_API_KEY_SECRET = os.environ["X_API_KEY_SECRET"]
X_ACCESS_TOKEN = os.environ["X_ACCESS_TOKEN"]
X_ACCESS_TOKEN_SECRET = os.environ["X_ACCESS_TOKEN_SECRET"]
Gemini にリクエストを送る
Gemini API にリクエストを送る関数を作成します。
プロンプトは引数で受け取るようにします。
from google import genai
# Send request to Google Gemini API
def send_request_to_gemini_api(prompt: str) -> str:
client = genai.Client(api_key=GEMINI_API_KEY)
response = client.models.generate_content(
model="gemini-2.0-flash",
contents=prompt
)
return response.text
生成したラジオネームを X にポストする
引数にラジオネームを受け取り、X にポストする関数を作成します。
import tweepy
# Post to X
def post_tweet(radio_name: str):
client = tweepy.Client(
consumer_key=X_API_KEY,
consumer_secret=X_API_KEY_SECRET,
access_token=X_ACCESS_TOKEN,
access_token_secret=X_ACCESS_TOKEN_SECRET
)
client.create_tweet(text=radio_name)
作成した関数を実行する
文字列でプロンプトを定義して、作成した関数を順に実行します。
if __name__ == "__main__":
prompt = """
めちゃくちゃ面白いラジオネームを1つ考えてください。
出力時は、考えたラジオネームだけを出力してください。
"""
generated_radio_name = send_request_to_gemini_api(prompt)
post_tweet(generated_radio_name)
感想
「作ろう」と思ったときは、もっと難しいかと思っていました。
ライブラリが整っており、API Keyを取得する作業になりました。
プロンプトについて、もっといい頼み方があるんだろうなぁと思っています。
もっと面白いラジオネームを出力してくれるように、改善をしていきたいと思います。
Discussion