OpenAI の API を利用してブログの本文の要約を自動生成する機能をつけてみた。ブログの編集画面に要約欄を追加し、チェックボックスにチェックが入っていれば OpenAI の API にリクエストを投げて記事本文の要約を生成して保存するようにした。

これも ChatGPT に設計を依頼してレビュー&手直ししながらやった。めっちゃ便利。要約生成君のコードはこんな感じ。
require 'openai'
class EntrySummarizer
MODEL = 'gpt-4o-mini'
def initialize(content)
@content = content
@client = OpenAI::Client.new(access_token: ENV['OPENAI_API_KEY'])
end
def summarize
response = @client.chat(
parameters: {
model: MODEL,
messages: [
{ role: "system", content: "以下のブログ記事を著者になりきって、日本語で簡潔に要約してください。文章の長さは200文字以内で、受動態表現と「ですます」調を避けて下さい。" },
{ role: "user", content: @content }
],
temperature: 0.3,
max_tokens: 150
}
)
response.dig("choices", 0, "message", "content").strip
rescue => e
puts "要約生成エラー: #{e.message}"
nil
end
end