📻

ラジオネーム生成 bot を作ってみた

2025/02/10に公開

概要

生成AIを使ってみたい、Xの自動投稿をしてみたい、という気持ちがあったので

  1. Gemini で架空のラジオネームを生成する
  2. 生成したラジオネームを X にポストする

という処理を行うプログラムを作ってみました。

生成されたラジオネームが投稿されているのは、以下のアカウントです。
フォローしてくれたらうれしいです。

https://x.com/rn_bot64

なぜラジオネーム?

なぜラジオネーム?という疑問は当然だと思います。
暇な時間に架空のラジオネームを考えるのが好きだからです。
ただ、ラジオにメール等を送ったことはないです...
(もっと役立つことに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 を取得します。

https://ai.google.dev/gemini-api/docs/quickstart?hl=ja&lang=python

X の API Key, Token

X の API Key と Token を取得します。
以下を参考に取得しました。

https://qiita.com/neru-dev/items/857cc27fd69411496388

環境変数の設定

~/.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>"

プログラムの作成

以下の内容でプログラムを作成しました。

  1. 環境変数から API Key, Token を取得する
  2. Gemini で架空のラジオネームを生成する
  3. 生成したラジオネームを 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