ブログ生成
概要
ブログ生成は、AI が読みもののブログ記事を作成する機能です。次の2系統があります。
| 系統 | 内容 | 起点 |
|---|---|---|
| リライト | 取り込んだ過去ブログを、内容を変えずに書き直す | 過去ブログ詳細画面 |
| 書き下ろし | レースの情報からブログを新規に書く(レース回顧・レース予想) | レース詳細画面 |
どちらも生成中は「生成中」となり、完了すると「下書き」として保存されます。 公開は担当者の操作で行います。
生成されたブログは、オッズパークの実際の記事デザインで組み上げられます。 カテゴリに応じて、予想記事・レース結果記事・汎用テンプレートを使い分けます。
リライト
取り込んだ過去ブログ(old_blog)を、内容を変えずに読みやすく書き直します。
flowchart TD
Import([過去ブログを取り込む]) --> Request([担当者がリライトをリクエスト])
Request --> Generating[ブログが「生成中」として登録される]
Generating --> Race{レースに紐づいているか}
Race -->|紐づく| Analyze[レース結果・動画・コース画像をAIが読み取る]
Race -->|紐づかない| Skip[レース情報なしとして進む]
Analyze --> Rewrite
Skip --> Rewrite[原文の内容と文体を保ったまま書き直す]
Rewrite --> Summary[記事冒頭の10秒サマリーを生成する]
Summary --> Build[カテゴリに応じた記事デザインでHTMLを構築する]
Build --> Saved[「下書き」として保存される]
リライトの方針
- 内容を変えない(原文の情報・書き手の文体を保つ)
- オッズパークのトーンオブボイス ガイドラインに沿った表現にする
- 記事の内容に合わせて、見出し・段落・箇条書き・予想印・インタビュー Q&A などの「部品」に構造化する
- レースに紐づくブログでは、本文に書かれた出走馬・出馬表の一覧を削除する (出走者や着順の情報はシステムが公式データから別途表示するため)
レースに紐づかないブログ
過去ブログは必ずしもレースに紐づきません。 紐づかない場合はレース動画・結果の解析をスキップし、原文の内容を保ったリライトのみを行います。
書き下ろし(レース回顧・レース予想)
元記事を持たず、レースの情報からブログを新規に書きます。
| 種類 | タイミング | 入力 | 必要な前提 |
|---|---|---|---|
| レース回顧 | レース後 | レース結果・レース動画・コース画像(競馬のみ) | 着順があること |
| レース予想 | レース前 | 出走表と AI予想印 | 予想データが登録済みであること |
レース予想はレースがまだ行われていないため、レース動画の解析は行いません。 また、着順・払戻・タイムといった結果由来の情報は使いません。
タイトルを省略すると、レース名から「◯◯のレース回顧」「◯◯のレース予想」を自動で組み立てます。 カテゴリも自動で紐づきます(回顧 →「レース結果・回顧」、予想 →「レース予想・検証」)。
予想ブログには予想データの登録が必要
レース予想を書くには、レース前の出走表と AI予想印が登録されている必要があります。 未登録のレースでは生成できません。
事実の正しさを守る仕組み
書き下ろしでは、記事生成と同じ仕組みで事実の正しさを守ります。
| 仕組み | 内容 |
|---|---|
| 生成可否の判定 | 着順が無いレース(不成立・中止)は回顧を生成しない |
| 値の差し込み | 出走者名・払戻金額・組番・人気は AI に書かせず、公式データから機械が差し込む |
| 事実照合 | 公式レース結果との食い違いがないか検査する |
| NGワード検査 | 生成文に NGワードが含まれていないか検査する |
検出された場合は作り直し(最大2回)、それでも解消しなければ生成を失敗させて公開しません。
リライトでは NGワード検査を行いますが、元の過去ブログに既に含まれていた語は対象外です。 リライトは内容を変えない前提のため、元記事由来の語(例: 騎手名に含まれる語)は作り直しても除去できないためです。
ブログのステータス
| ステータス | 説明 |
|---|---|
| 生成中 | 生成リクエストを受け付け、AI が生成している状態 |
| 下書き | 生成完了後、または手動作成後で未公開の状態 |
| 公開 | 担当者が公開操作を行い、公開されている状態 |
ブログには「生成失敗」がない
記事と異なり、ブログは生成に最後まで失敗するとレコードごと削除されます。 一覧に本文が空のブログが残ると、再リライトの妨げになるためです。
生成後にできること
生成されたブログには、あとから次の操作ができます。
| 操作 | 内容 |
|---|---|
| 本文・タイトルの編集 | 担当者が直接修正する。タイトルを変えると本文の見出しも自動で差し替わる |
| サムネイル生成 | レース動画からサムネイル画像を作り、本文に埋め込む |
| 関連情報の生成 | 内容の近いブログ2件へのリンクを記事下部に差し込む |
関連情報
ブログ同士の内容の近さを、文章の意味を数値化した「埋め込みベクトル」で比較し、 距離が近い順に2件を「関連情報」として記事下部に挿入します。
同じ記事とみなされるものは候補から除外します。
| 除外条件 | 理由 |
|---|---|
| 同じ過去ブログからリライトされたブログ | ベクトルが同一になるため |
| タイトルが完全一致するブログ | 同一記事の重複登録 |
| 内容が実質同一のブログ | 重複とみなす |
レースに紐づくブログでは、関連情報の先頭にレース結果ページへのカードも表示します。