catch-img

【Dify活用】生成AIでSNS投稿を爆速で作成する方法①文字調整関数の活用

前回はDifyを使ったプレスリリースの自動生成について解説しました。今回はこのDify技術を応用して、SNSの投稿内容を作成する方法を解説します。

  Difyにプレスリリースを自動作成させる方法 ノーコードLLM構築ツールDifyでプレスリリース作成業務を自動化する方法を解説します。 広報・PR支援の株式会社ガーオン

実行には様々な手法があるかと思いますが、当記事では①文字調整関数の使い方、②エージェント(Function Calling)の活用、③RAGの活用 の3部に分けて解説します。

生成AIは文字量調整が意外と苦手

SNS、特にXの文章作成で以外と時間がかかってしまうのが文字数の調整です。有料プラン(

Xプレミアム)に入っていれば文字数制限は関係ないと思いますが、こうしたSNSの文字数調整は中でも意外に時間が取られてしまうタスクの筆頭ではないかと思います。

ChatGPTを始めとした生成AIの登場で、テキストの作成(出力)はだいぶ楽になったと思いますが、この文字調整だけは意外にうまくいきません。

例えばClaude3.5 opusで「XTwitterに使える140文字ぴったりの文章を出力してください」とすると結構いい加減に出力されます。

夏の夕暮れ、空を染める茜色。遠くで鳴く蝉の声が、懐かしい記憶を呼び覚ます。風に揺れる風鈴の音色。冷たい麦茶を飲みながら、ゆったりと過ごすひととき。時が止まったかのような穏やかな空気。この瞬間を大切に、明日への活力を静かに蓄える。(111文字)

これは「エクセルでlen関数でぴったり140文字になる文章を出力して」と聞くことで改善できます。

夏の陽射しが照りつける午後。風鈴の涼やかな音色が耳に届く。縁側でアイスコーヒーを飲みながら、遠くに見える山々を眺める。蝉の鳴き声が響き、木々のざわめきが心地よい。ふと、懐かしい思い出が蘇る。時の流れを感じつつ、今この瞬間の大切さを噛みしめる。明日への希望を胸に、静かに目を閉じる。(140文字)

では毎回このプロンプトで良いのでは、といえばそうはいきません。

それはX(旧Twitter)の文字数カウント方法が特殊だからです。

詳しくは以下のページなどが参考になりますが、専門でないとかなり理解が難しいロジックで計算されていることが分かります。

  ツイートの文字数を **厳密に** 数える方法 - Qiita 概要Twitter API 経由でツイートする場合には、リクエストを送る前に字数制限を越えていないか検証する必要があります。しかし Twitter の文字数カウントは独自の複雑な仕様になっており… Qiita

こうした文字数カウント方式を取っていることで、絵文字や記号などが入ってしまうと、生成AIにはカウントが難しいのです。

Pythonライブラリのtwitter_text

Pythonにはtwitter_textという便利なライブラリが公開されています。

  GitHub - swen128/twitter-text-python: Twitter Text Libraries for Python Twitter Text Libraries for Python. Contribute to swen128/twitter-text-python development by creating an account on GitHub. GitHub

このライブラリのparse_tweet関数を使うことで、Xの文字数チェックを厳密に行うことが可能です。

サンプルコードは以下です。

!pip install parse_tweet

from twitter_text import parse_tweet

# 文字数チェック関数
def check_tweet_len(text):
    response_message = ""
    parsed_tweet = parse_tweet(text)
    print(parsed_tweet)

    # ツイートが有効かどうかを判断
    if parsed_tweet.valid:
        response_message = "このテキストはTwitterに投稿可能です。"
    else:
        # 重み付けされた文字数が280文字を超えている場合
        if parsed_tweet.weightedLength > 280:
            response_message = f"テキストが長すぎます。{parsed_tweet.weightedLength}文字ありますが、280文字以下にしてください。"
        # permillageを使って、許容範囲を超えているかを詳細に確認
        elif parsed_tweet.permillage > 1000:
            response_message = f"テキストが許容される最大値を超えています。現在の使用量: {parsed_tweet.permillage / 10}%"
        # その他の無効な理由
        else:
            response_message = "テキストは何らかの理由で無効です。"

    # 有効範囲内でテキストを調整するための提案
    if not parsed_tweet.valid:
        response_message += f"有効なテキスト範囲: {parsed_tweet.validRangeStart}から{parsed_tweet.validRangeEnd}文字目までです。"

    return response_message

この関数を使うことで、140文字以内のときは投稿可能と出力され、140文字を超過するときは、長過ぎると出力されます。

ポイントは戻り値に具体的な改善ポイントを入れておくことです。理由は②で解説します。

  【Dify活用】生成AIでSNSの投稿を爆速で作成する方法②エージェントの活用 Dify技術を活用したSNS投稿作成の効率化方法(②エージェントの活用)を解説します。 広報・PR支援の株式会社ガーオン



関連記事

広報・PRやプレスリリースまわりでお困りのことはございませんか?
多数の企業サポートを行ってきた当社が解決いたします。
お気軽にお問合せください。