記事ページに要約機能をつけた

作成日: 2024-10-09 作成者: Morix

生成AIによる要約

この記事では、Amazon Bedrockを使って記事の自動要約機能を実装した過程を説明しています。Bedrockの基本的な使い方や、GoでのAPI呼び出し方法、リクエストパラメーターの意味について触れています。また、システムプロンプトの設定方法や今後の調整の必要性についても言及しています。

この記事ページの冒頭に、記事の要約を載せるようにした。
これは記事本文を生成AIに読み込ませ要約をお願いし、その結果を載せてるだけだ。
どんなふうに実現しているのかを説明するよ。

Amazon Bedrock

Amazon BedrockはAWSが提供しているAIサービスで、用意されてる基盤モデルを使ってAPIで簡単に生成AIを呼び出せるよ。
Amazon Bedrock 生成AIアプリ開発入門 [AWS深掘りガイド] という本でハンズオンで学習できるのでおすすめ。

今回は記事を登録するときにBedrockを呼び出し、本文から自動で要約を作成しDBに保存するようにした。
この要約は記事ページに表示するのと、HTMLのdescriptionで使ってる。

どうやってGoで実装するかはサンプルが提供されてたりするので気になる人はそこを参照してね。

リクエストパラメーター

BedrockのAPIを使うときに指定するリクエストパラメーターのことがよくわからなかったので調べたよ。
この推論パラメーターを調整することで生成AIの回答をいい感じにできる。

パラメーター名 説明
max_tokens この数値が大きければ生成されるテキスト量が多くなる
messages 生成AIに問い合わせるテキストメッセージ
system システムプロンプト
temperature レスポンスのランダム性。数値をあげるほどランダム性が強くなる
top_p 関連する語を関連確率でソートし上位何%を選択対象にするか。この数値が高いと選択した語がほとんど使われる

説明はこのページを参考にした。

Anthropic Claude Messages API
https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html#model-parameters-anthropic-claude-messages-request-response

どういう値がいいのかわからないので適当に設定したけど、これは今後微調整を続けると思う。

システムプロンプト

システムプロンプトはこんな感じ。

私はMarkdown形式のブログ記事をあなたに渡すので、あなたはその記事内容をすべて読み、私になりきって80文字から100文字程度に要約してください。

これでそれっぽくなったけどどうだろう?
自分が紹介してる風にしたんだけど、違和感あるかもしれない。これも今後調整していきたいな。