出版社の編集部とライツの担当が、著者との出版契約と覚書を引き、電子版・翻訳・映像化などの二次利用の条件を条文で確かめる
海外の版元から翻訳の打診が来た、映像の制作会社から映像化の相談が来た、というときに、作品の番号を入れると、その作品の出版契約と覚書から、利用の種類ごとに当たる条文をそのまま抜き出して締結の日の順に並べます。許諾できるかは、ライツと法務が判断します。
- 生成AI
- Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/広告
- 対象部門
- 法務
- 対象業務
- 内容確認・チェック/情報検索
- 主な課題
- 判断に時間がかかる/情報が見つからない/確認ミスが多い
- AIで行う処理
- 検索(RAG)
- 主な効果
- 判断支援/検索時間短縮/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当が、打診の内容(利用の種類、地域、言語、媒体、期間)を確かめる
- 作品の台帳で、作品の番号と著者、契約の種類を確かめる
- 契約書のPDFを著者名で探し、作品名で原契約を見つける。無ければ紙のファイルを探す
- 覚書が無いかを、同じ著者のファイルの中から探す
- 原契約と覚書を読み、利用の種類に当たる条文を探して書き出す
- 定めが無いもの、読み方に迷うものは法務に相談し、著者への確認が要るかを決める
- 人担当が、確認の画面で作品の番号と、利用の種類(電子/翻訳/映像化/音声/転載)、地域・言語・媒体を入れて送る
- 自動中継プログラムが、作品の台帳から著者と契約の一覧を引き、作品の番号で絞った検索を、利用の種類ごとの質問文で行う
- 自動Agent Search(Vertex AI Search)が、契約と覚書から当たる箇所の本文をそのまま抜き出して返す
- 自動中継プログラムが、抜き出した条文を文書ごとにまとめ、締結の日の順に並べる
- 自動Gemini が、条文を利用の種類ごとの欄に振り分け、条文に書かれている条件(期間、地域、窓口、配分)を本文の言葉のまま写す
- 自動中継プログラムが、定めが見つからない利用の種類と、覚書が原契約の同じ条件に触れているものに印を付け、`listed`(条文が見つかった)/`review`(ライツと法務の確認)に分ける
- 人ライツの担当が条文を読み、打診への返事を決める。`review` は法務と読み合わせ、要るものは著者か著者の代理人に確かめる
各工程の詳しい説明を読む
- 担当が、打診の内容(利用の種類、地域、言語、媒体、期間)を確かめる
- 作品の台帳で、作品の番号と著者、契約の種類を確かめる
- 契約書のPDFを著者名で探し、作品名で原契約を見つける。無ければ紙のファイルを探す
- 覚書が無いかを、同じ著者のファイルの中から探す
- 原契約と覚書を読み、利用の種類に当たる条文を探して書き出す
- 定めが無いもの、読み方に迷うものは法務に相談し、著者への確認が要るかを決める
(a)覚書が見つからない。 原契約は見つかっても、後から結んだ覚書が別のファイル名で保存されていて見落とします。覚書で翻訳の窓口を任されていたのに、「契約に定めが無い」と著者に確かめ直すことが起きます。
(b)覚書で変わった条件に気づかない。 電子版の印税率や配信の範囲を覚書で変えていたのに、原契約の条文で答えてしまいます。打診の相手に伝えた条件を、後から言い直すことになります。
(c)定めの無い利用を、許諾済みと思い込む。 出版の契約を結んでいるので、翻訳や映像化も出版社が決められると考えてしまう担当がいます。契約に定めが無いまま打診に応じかけると、著者との関係に響きます。
(d)探すのに時間がかかる。 打診は返事の早さで決まることがあります。海外の版元の打診に数週間返事ができず、他の作品に移られることもあります。
- 【人】 担当が、確認の画面で作品の番号と、利用の種類(電子/翻訳/映像化/音声/転載)、地域・言語・媒体を入れて送る
- 【自動】 中継プログラムが、作品の台帳から著者と契約の一覧を引き、作品の番号で絞った検索を、利用の種類ごとの質問文で行う
- 【自動】 Agent Search(Vertex AI Search)が、契約と覚書から当たる箇所の本文をそのまま抜き出して返す
- 【自動】 中継プログラムが、抜き出した条文を文書ごとにまとめ、締結の日の順に並べる
- 【自動】 Gemini が、条文を利用の種類ごとの欄に振り分け、条文に書かれている条件(期間、地域、窓口、配分)を本文の言葉のまま写す
- 【自動】 中継プログラムが、定めが見つからない利用の種類と、覚書が原契約の同じ条件に触れているものに印を付け、
listed(条文が見つかった)/review(ライツと法務の確認)に分ける - 【人】 ライツの担当が条文を読み、打診への返事を決める。
reviewは法務と読み合わせ、要るものは著者か著者の代理人に確かめる
3番目で、生成AIの回答ではなく、検索の結果から本文を抜き出す機能を使うのが、この設計の前提です。 抜き出しの結果は、契約書の文字のままです。生成AIは5番目で振り分けるだけで、条文の言葉を書き換える役は持たせません。
6番目の印は、AIではなく中継プログラムが付けます。 「どの利用の種類で条文が1つも見つからなかったか」は、振り分けの結果を数えれば分かります。
02今回想定するシステム構成
出版契約(原契約) 覚書(電子化・翻訳・映像化・印税率) 作品の台帳 │ スキャンはOCRで文字に。作品の番号・文書の種類・締結の日を付ける ▼ Cloud Storage ── メタデータ(JSON Lines) ▼ Agent Search(Vertex AI Search)── データストア(OCR パーサー/デジタル パーサー) │ work_id/doc_kind/signed_date/amends ▼ ライツの確認の画面 ──【トリガー】担当の送信 ▼ 中継プログラム(Python、Cloud Run) ├──▶ 作品の番号で絞り、利用の種類ごとに検索 ├──▶ 抜き出した条文(extractive segments)を締結の日の順に ├──▶ Gemini:利用の種類ごとの欄に振り分け └──▶ 定めの無い種類・覚書の重なりに印、listed / review ▼ ライツの確認の画面 / 法務の読み合わせの一覧
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の検索(抜き出しの機能を使う) | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(Vertex AI で呼ぶ。抜き出した条文の振り分け) | Claude API |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、確認の画面・作品の台帳・検索・生成AIをつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(契約と覚書の写しとメタデータ、確認の記録) | ─ |
作品の台帳は読むだけです。 契約の内容を台帳に書き戻すことはしません。台帳の「契約の種類」の欄は、人が契約を読んで書いたもので、覚書の内容までは反映されていないことが多いからです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の検索の抜き出しの機能です。 公式のドキュメントでは、検索の結果ごとに、短い抜粋(snippets)、短い本文の抜き出し(extractive answers、最大5件)、長めの本文の抜き出し(extractive segments、最大10件)を返せます。extractive segments は前後の部分を最大3つずつ付けて返すこともでき、関連の度合いのスコア(−1.0〜1.0)も付けられます。 非構造化データで抜き出しの機能を使うには、Enterprise エディションの機能が要るとされています。
取り込みには、古いスキャンに OCR パーサー、作成したPDFとWordにデジタル パーサーを使います。 公式では、OCR パーサーはスキャンしたPDFや画像の中の文字に向き、PDFの最初の500ページだけを処理します。ファイルの種類ごとにパーサーを変える設定(parsingConfigOverrides)があります。抜き出しの機能のページはチャンクを有効にした場合の扱いを書いていないため、本記事では契約のデータストアをチャンクを使わずに作る前提にします。 チャンクの有無はデータストアの作成後に切り替えられないので、最初に決めます。
03どうやって実装するのか
処理の起点を決める
起点は、ライツの担当か編集部の契約の担当が、確認の画面で送信したことです。 打診のメールを受け取った担当が、作品と利用の種類を選んで送ります。
| 画面の項目 | 書き方 | 使い道 |
|---|---|---|
| 作品の番号 | 作品の台帳の番号(書名から選ぶ) | 絞り込み |
| 利用の種類 | 電子/翻訳/映像化/音声/転載(複数可) | 検索の質問文、振り分けの欄 |
| 地域・言語 | 国・地域、言語(翻訳のとき) | 振り分けの補足 |
| 媒体・期間 | 配信先、放送や配信、雑誌など。希望の期間 | 振り分けの補足 |
| 打診の要点 | 自由記述(相手の会社名は書いてよい) | 記録 |
作品の番号が決まらない打診は、検索しません。 書名だけで探すと、同じ書名の別の版や、文庫化した版の契約が混ざります。文庫化や新装版は台帳で別の番号を持たせ、原作の番号とのつながりを台帳に書きます。
もう一つのトリガーは、契約と覚書の締結です。 新しい契約や覚書を結んだら、ライツの担当がスキャンして置き、メタデータに作品の番号と締結の日を書きます。取り込みは毎晩行います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 確認の依頼 | 画面の5項目、担当、日時 | ライツの確認の画面 |
| 作品の情報 | 作品の番号、著者、刊行の日、原作と派生の版のつながり | 作品の台帳 |
| 出版契約 | 出版権の設定、存続期間、電子の扱い、二次利用の条項、印税 | 契約書のPDF(スキャンを含む) |
| 覚書 | 電子化の追加、翻訳・映像化の窓口、印税率の変更、締結の日 | 覚書のPDF |
質を決めるのは、契約と覚書の1通ずつに付ける作品の番号と締結の日です。 1通の覚書が複数の作品をまとめて扱うことがあるので、work_id は配列で持たせます。覚書がどの契約を変えるものかも、amends に原契約の番号で書きます。
著者の口座や住所の書かれた別紙は、取り込みません。 二次利用の条件を確かめるのに要らず、検索の抜き出しに出てくると、確認の画面を見る全員の目に触れます。
データの取得方法を決める
契約と覚書は1通ずつファイルにして Cloud Storage に置きます。公式では、非構造化データは PDF・DOCX などに対応し、1ファイルの上限は200MBです。メタデータは JSON Lines で、1行ごとに id、structData、content(mimeType と uri)を書きます。
{"id":"C-2016-0412","structData":{"doc_kind":"contract",
"work_id":["W-03318"],"signed_date":"2016-04-12T00:00:00Z",
"amends":[]},
"content":{"mimeType":"application/pdf","uri":"gs://rights-docs/C-2016-0412.pdf"}}
{"id":"M-2021-0907","structData":{"doc_kind":"memorandum",
"work_id":["W-03318","W-03319"],"signed_date":"2021-09-07T00:00:00Z",
"amends":["C-2016-0412"]},
"content":{"mimeType":"application/pdf","uri":"gs://rights-docs/M-2021-0907.pdf"}}
問い合わせのたびに、作品の番号で絞ります。 公式の構文では、文字の項目は ANY() に並べた値のどれかと完全に一致するかを見られます。項目はスキーマで索引可能にしておかないと絞り込みに使えません。
work_id: ANY("W-03318")
利用の種類ごとに、質問文を変えて検索を呼びます。 翻訳なら「翻訳 外国語 海外 翻訳出版 窓口」、映像化なら「映像化 映画 ドラマ 映像 翻案 窓口」のように、契約で使われる言葉を並べた質問文を中継プログラムが持ちます。抜き出しの指定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
extractiveContentSpec.maxExtractiveSegmentCount | 5 | 1通の契約から複数の条文を拾う(最大10) |
numPreviousSegments/numNextSegments | 1 | 条文の前後(見出しやただし書き)を付ける(最大3) |
returnExtractiveSegmentScore | 有効 | 関連の薄い抜き出しを中継プログラムで落とす |
snippetSpec.returnSnippet | 有効 | 画面で一覧を見るための短い抜粋 |
中継プログラムが送る検索の要求は、翻訳の欄なら次のようになります。
{"query": "翻訳 外国語 海外 翻訳出版 窓口 許諾",
"filter": "work_id: ANY(\"W-03318\")",
"contentSearchSpec": {
"snippetSpec": {"returnSnippet": true},
"extractiveContentSpec": {
"maxExtractiveSegmentCount": 5,
"returnExtractiveSegmentScore": true,
"numPreviousSegments": 1,
"numNextSegments": 1}}}
利用の種類が3つなら、この要求を3回送ります。 1回の質問文に全部の言葉を並べると、電子の条文ばかりが上に来て、翻訳や映像化の条文が抜き出しの5件に入らないことがあります。
前後の部分を付けるのは、条文の「ただし」が次の段落に続くことが多いからです。 公式では、前後を付けたりスコアを返したりすると応答が遅くなることがあるとされています。打診の返事は数分を争うものではないので、正確さを取ります。
AIへ渡す前に整形する
- スキャンを確かめる … 古い契約は OCR パーサーで読みます。読み取れない契約は、ライツの担当が原本を見てスキャンし直します
- 別紙を外す … 著者の口座・住所・印鑑の書かれたページは取り込みません
- 作品の番号と締結の日を付ける … 契約の本文の作品名と台帳を照らし、ライツの担当が
work_idとsigned_dateを書きます - 覚書の
amendsを書く … 覚書の前文の「原契約」を読み、変える契約の番号を書きます - 派生の版をつなぐ … 文庫・新装版・合本の作品の番号を、原作の番号と台帳でつなぎます
3番目と4番目は、機械に推し量らせません。 覚書の前文は「平成28年4月12日付出版契約書」のように日付で原契約を指していることが多く、同じ日に複数の作品の契約を結んだ著者だと、どの契約かを読み違えます。
AIに処理させる
検索の抜き出しで条文を取り出し、Gemini には、取り出した条文を利用の種類ごとの欄に振り分けさせます。
| させること | 中身 |
|---|---|
| 欄に振り分ける | 抜き出した条文を、電子/翻訳/映像化/音声/転載のどの欄に当たるか |
| 条件を写す | 条文に書かれた期間、地域、窓口、配分、承諾の要否を、本文の言葉のまま |
| 出典を付ける | 文書の番号、文書の種類、締結の日、条の番号 |
| させないこと | 理由 |
|---|---|
| 許諾できるか・できないかの結論 | ライツと法務が判断し、要るものは著者に確かめる |
| 覚書と原契約を合成した条件 | 覚書がどこまでを変えたかは人が読み合わせる |
| 条文の言い換え・要約 | 1語の違いで、自分で使えるか他社に許諾できるかが変わる |
| 定めの無い利用を推し量る | 定めが無いことそのものが確認の材料 |
Gemini に渡すのは、抜き出した条文の本文と出典だけです。 契約の全文は渡しません。条文に無いことを書く余地を、入力の側で狭めます。
振り分けに生成AIを使うのは、契約の言葉が作品と年代でばらばらだからです。 「翻訳出版」「外国語版」「海外での出版」「翻訳権の管理」は、どれも翻訳の欄に入る言葉です。言葉の一覧で機械的に振り分けると、一覧に無い言い方の条文が other に落ちます。 振り分けの誤りは、担当が条文を読めば気づけるので、生成AIに任せてよい範囲と考えます。
指示内容を固定する
中継プログラムが、利用の種類ごとに抜き出した条文を、文書の番号・種類・締結の日と一緒に並べて Gemini に渡します。
あなたは出版社のライツ部の担当として、作品の出版契約と覚書から
抜き出された条文を、二次利用の種類ごとに整理する立場です。
読むのはライツと法務の担当で、許諾できるかは担当が判断します。
【入力】
抜き出された条文が、文書の番号、文書の種類(契約/覚書)、
締結の日、抜き出しの本文の組で並んでいます。
【やること】
1. 各条文が、電子/翻訳/映像化/音声/転載のどの欄に当たるかを決める。
どの欄にも当たらない条文は other に入れる
2. 条文に書かれている条件を、次の項目ごとに本文の言葉のまま写す。
期間、地域、言語、窓口(誰が交渉・許諾するか)、配分、承諾の要否
3. 条の番号が本文から読み取れれば写す
【厳守事項】
- 条文の言葉を言い換えたり、要約したりしないでください。
条件の項目にも、本文にある言葉だけを写してください。
- 本文に無い条件を書かないでください。書かれていない項目は空にしてください。
- 許諾できる、できない、出版社が決められる、と書かないでください。
- 覚書と原契約の条件をまとめて1つにしないでください。
文書ごとに分けて書いてください。
- 一般的な出版の慣行や法律の説明で補わないでください。
- 決められた形の JSON だけを返してください。
「条件の項目にも、本文にある言葉だけを写す」を明記しないと、AIは条件を整えて書きます。 窓口の欄に「甲が窓口となり、乙と協議のうえ」とあるのを「出版社が窓口」と縮め、「協議のうえ」が落ちます。 協議が要るかどうかは、打診への返事の速さを決める条件です。
出力形式を固定する
Gemini の返り値と抜き出しの結果を、中継プログラムが次の形にまとめます。
{
"request_id": "",
"work_id": "",
"uses": ["translation", "screen"],
"documents": [ { "doc_id": "", "doc_kind": "contract | memorandum",
"signed_date": "", "amends": [] } ],
"clauses": [ { "use": "ebook | translation | screen | audio | excerpt | other",
"doc_id": "", "signed_date": "", "article": "",
"quote": "", "conditions": { "term": "", "territory": "",
"language": "", "agent": "", "share": "", "consent": "" },
"segment_score": 0 } ],
"flags": { "no_clause": [], "overlap": [] },
"route": "listed | review"
}
quote は、Gemini の返り値ではなく、検索の抜き出しの本文から中継プログラムが入れます。 Gemini が返すのは欄と条件の項目だけで、条文そのものは抜き出しの結果と照らして一致するものだけを残します。 一致しなかった条文は、Gemini が書き換えたものとして捨てます。
route は次の規則で決めます。
| 印 | 立てる条件 |
|---|---|
no_clause | 依頼された利用の種類に、条文が1つも振り分けられなかった |
overlap | 同じ利用の種類に、原契約と、それを amends に持つ覚書の両方の条文がある |
low_score | 振り分けられた条文の抜き出しのスコアが、決めた値より低い |
unmatched | Gemini が返した条文が、抜き出しの本文と一致しなかった |
term_check | 原契約の存続期間の条文が見つからない、または期間の終わりが近い |
どれにも当たらないものだけが listed です。 listed でも、打診への返事を決めるのはライツの担当です。no_clause は「定めが無い」という事実で、許諾できないという意味ではありません。 著者に確かめるかを法務と決めます。
確認の画面には、利用の種類ごとに次の形で出します。 同じ欄の中は締結の日の古い順に並べ、覚書には変えた契約の番号を添えます。
【翻訳】作品 W-03318
■ 契約 C-2016-0412(2016-04-12)第12条
「本著作物の翻訳出版については、甲乙協議のうえ別途定める。」
■ 覚書 M-2021-0907(2021-09-07、C-2016-0412 を変更)第2条
「甲は乙に対し、本著作物の翻訳出版に関する海外の出版社との
交渉の窓口を委託する。ただし許諾の可否は甲が決定する。」
印:overlap
覚書の「ただし許諾の可否は甲が決定する」が、前後の部分を付けた抜き出しで拾われます。 窓口を任されていても、許諾を決めるのは著者だと読めるので、ライツの担当は打診の相手に条件を出す前に著者に確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| ライツの確認の画面 | 画面から中継プログラムを呼ぶ | 依頼を受け取り、条文の表を返す |
| 作品の台帳 | 読み出し | 著者、派生の版のつながりを引く |
| Agent Search | 検索(抜き出しの指定付き) | 作品の番号で絞った条文の抜き出し |
| Gemini | 呼び出し | 利用の種類ごとの振り分け |
| 法務の読み合わせの一覧 | 1行足す | review を回す |
法務の1行には、作品の番号、利用の種類、条文の表、印を付けます。 法務の担当は、ファイルを探すところからではなく、条文を読み合わせるところから始められます。
人が確認する
打診への返事を決めるのは、いつもライツの担当です。 定めの無い利用と、覚書の読み合わせは、法務と一緒に行います。
- 文書がそろっているかを見る …
documentsの一覧に、台帳で知っている覚書が全部あるかを確かめます - 条文を読む …
quoteを読み、条件の項目が本文と合っているかを見ます overlapは読み合わせる … 覚書が原契約のどの条件を変えたかを、両方の条文を並べて読みますno_clauseは法務と決める … 著者か代理人に確かめるかを決めます
1番目を省かないでください。 覚書の取り込み漏れがあると、条文が見つからないのではなく、文書が無いだけです。no_clause の多くは、最初の数か月は取り込み漏れから出ます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 作品の番号に文書が1通も無い | 「契約が登録されていません」と返し、ライツの担当が原本を探す |
| スキャンの文字が読み取れない | 抜き出しが空か崩れる。原本をスキャンし直す |
| 1通の覚書が複数の作品を扱う | work_id の配列で、どの作品からも引けるようにする |
| 派生の版(文庫・新装版)の打診 | 台帳のつながりで原作の番号も絞り込みに入れる |
| Gemini が条文を書き換えた | unmatched で捨て、抜き出しの本文だけを画面に出す |
覚書の締結の日が、amends の原契約より前 | メタデータの誤りとしてライツの担当に知らせ、表は出さない |
| 存続期間の終わりが過ぎている | term_check で法務へ。更新の条項の有無を読み合わせる |
| 検索の呼び出しが失敗した | 「確認できませんでした」と返し、従来どおりファイルを探す |
4行目は、文庫化の打診でよく起きます。 文庫の契約だけを見ると、原作の契約の翻訳の窓口の条文が見つからず、no_clause に見えてしまいます。
記録を残す
- 確認の依頼(作品の番号、利用の種類、地域・言語・媒体)、担当、日時
- 検索の要求(絞り込み、質問文、抜き出しの指定)と返り値の全文
- Gemini への入力と返り値、
unmatchedで捨てた条文 - 条文の表、印、
route、ライツと法務の判断と、著者への確認の結果
著者への確認の結果は、次の打診のときの材料になります。 同じ作品で同じ利用の種類の打診が来たときに、前回の判断と著者の返事を、契約の条文と並べて見られるようにします。
04実装レベルの3段階
最小構成では件数がさばけません。 作品ごとに契約を集めて貼る手間がかかり、確かめるための段階です。 半自動化で、20分が10分程度になります。 ファイルを探す時間は無くなりますが、抜き出しを利用の種類ごとに並べ直す手間が残ります。本格構成で6分になり、この段階が本記事の想定です。 差が大きいのは、利用の種類ごとの表と、確かめるべき箇所の印が自動で付くことです。
05工数削減シミュレーション
導入後 240件 × 6分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 既刊が数千点あり、著者ごとに出版契約と、電子化・翻訳・映像化の窓口などを後から定めた覚書が積み重なっている出版社。海外の版元や映像の制作会社からの打診、電子版の配信先の追加、雑誌やウェブへの転載の相談が毎月あり、そのたびに編集部とライツの担当が紙の契約書のファイルとスキャンしたPDFを探している場合。
- 刊行点数が少なく、契約がすべて同じ雛形で覚書もほとんど無い場合。二次利用の可否をAIの回答で決めたい場合(この構成は条文を抜き出して並べるだけで、許諾できるかはライツと法務が判断し、要るものは著者に確かめます)。契約書のスキャンが読み取れないほど古く、文字として取り出せないものが大半の場合。
07最小構成で試す方法
- 打診の多い作品を10点選び、原契約と覚書をすべて集める(覚書のある作品、文庫化した作品、古いスキャンの作品を入れる)
- 過去半年の打診から20件を拾い、当時ライツの担当が書き出した条文を集める
- 手元のAIサービスに作品の契約と覚書を貼り、利用の種類を指定して「当たる条文を、言い換えずにそのまま抜き出し、文書と締結の日を付けて並べてください」と指示する
- 出てきた条文を、当時の書き出しと突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ条文を、文字のまま並べた | 検索基盤への取り込みに進む |
| 条文を要約して「出版社が窓口」と書いた | 抜き出しの機能を使う設計で進める。 生成AIに条文を書かせない |
| 覚書の条文が出てこない | 作品の番号と amends を付ける作業が先 |
2行目が出ることは珍しくありません。 手元のAIサービスに「そのまま」と頼んでも、長い契約では縮めて書きます。検索の抜き出しで条文を取り、生成AIを振り分けだけにする理由が、ここで分かります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 条文が要約されて条件が落ちる | 条文は検索の抜き出しから取り、生成AIの返り値と照らして一致したものだけ残す |
覚書が見つからず no_clause になる | 覚書に作品の番号を配列で付け、documents の一覧を担当が確かめる |
| 覚書と原契約を合成してしまう | 文書ごとに並べ、overlap で読み合わせに回す |
| 文庫・新装版で原作の条文が引けない | 台帳で派生の版をつなぎ、原作の番号も絞り込みに入れる |
| 古いスキャンが読めない | OCR パーサーで読み、崩れるものは原本をスキャンし直す |
| 著者の口座や住所が抜き出しに出る | 別紙を取り込まない |
no_clause を「許諾できない」と受け取る | 定めが無いという事実として法務と扱いを決める |
| チャンクの有無を後から変えたくなる | データストアの作成後は切り替えられない。最初に決める |
上の3行が、この構成の失敗のほとんどです。 どれも、条文の言葉か文書の束が欠けたまま返事を決めてしまう誤りです。条文は抜き出し、文書の束は台帳とメタデータで守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 著者との出版契約と覚書(印税率などの取引の条件を含む)、作品の台帳、打診の相手と内容です。
- 出版権の範囲と、著者に残る権利を分けて考える … 著作権法は、出版権者が設定行為で定めるところにより、原作のまま文書として複製する権利(電子の記録媒体に記録するものを含む)と、それを用いた公衆送信の権利を専有すると定めています。一方、翻訳し、映画化し、その他翻案する権利は著作者が専有するとしています。翻訳や映像化の打診は、出版権の条文ではなく、それを定めた条項や覚書があるかで確かめます
- 他社への許諾の条文を見落とさない … 著作権法は、出版権者が他人に複製や公衆送信を許諾できるのは、複製権等保有者の承諾を得た場合に限るとしています。電子の配信を他社に任せる打診では、承諾の条文を探します
- 存続期間を確かめる … 著作権法は、出版権の存続期間は設定行為で定めるところによるとし、定めが無いときは最初の出版行為等から3年を経過した日に消滅するとしています。存続期間の条文が見つからない契約は
term_checkで法務に回します - 契約の条件を社外に出さない … 印税率や配分は著者ごとの取引の条件です。確認の画面はライツ・法務・編集部の契約の担当だけが使います
- データの置き場所を確かめる … 公式では、データストアの場所は
global・us・euで、日本のリージョンはありません。契約の写しをどこに置くかを、社内の情報の取扱いの規程と合わせて確かめてください
誤りが起きた場合のリスクは、契約に定めの無い利用を許諾済みと思い込んで打診に応じること、覚書で変わった条件で答え損ねることです。 どちらも著者との関係に直接響きます。条文は文字のまま並べ、判断は人が行う形を崩しません。
10まず何から始めるか
1週目:作品を絞り、契約の束をそろえる
打診の多い作品を50点選び、原契約と覚書をすべて集めます。覚書に作品の番号と amends を書きます。
2週目:20件の打診で試す
手元のAIサービスに契約を貼り、過去の打診20件で条文を抜き出させます。条文を縮めていないか、覚書の条文を拾っているかを最優先で見ます。
3週目:利用の種類ごとの質問文を作る
ライツの担当と、契約で使われている言葉を利用の種類ごとに集め、質問文にします。古い契約と新しい契約で言葉が違うので、両方を入れます。
4週目:データストアを作り、検索の画面で使う
50点の契約を取り込み、作品の番号で絞った抜き出しを、ライツの担当が検索の画面で使います。
2か月目: 利用の種類ごとの検索、Gemini の振り分け、条文の一致の確かめ、印の規則を作ります。3か月目以降: 刊行から10年以内の作品に広げます。新しい契約と覚書が締結の夜に取り込まれ、どの打診にも作品の契約の束から条文が文字のまま並ぶのが当たり前になった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
検索の結果ごとに snippets(snippetSpec.returnSnippet)、extractive answers(maxExtractiveAnswerCount、既定0・最大5)、extractive segments(maxExtractiveSegmentCount、既定0・最大10)を返せること。returnExtractiveSegmentScore(−1.0〜1.0)、numPreviousSegments/numNextSegments(既定0・最大3)、これらで応答が遅くなりうること。非構造化データで抜き出しを使うには Enterprise エディションの機能が要ること。チャンクを有効にした場合の扱いの記載が無いこと | Google Cloud: Get snippets and extracted content | 2026-10-15 |
絞り込みの ANY() が列挙した値との完全一致を見ること、項目を索引可能にする必要があること | Google Cloud: Filter custom search for structured or unstructured data | 2026-10-15 |
デジタル・OCR・レイアウトの3つのパーサーがあること。OCR パーサーがスキャンしたPDFに向き、PDFの最初の500ページだけを処理すること。parsingConfigOverrides でファイルの種類ごとにパーサーを変えられること。チャンクの有無がデータストアの作成後に切り替えられないこと | Google Cloud: Parse and chunk documents | 2026-10-15 |
非構造化データの対応形式と、1ファイル200MBの上限。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-15 |
データストアの場所が global・us・eu で、日本のリージョンが無いこと | Google Cloud: Locations | 2026-10-15 |
| 著作権法第27条(翻訳権・翻案権等は著作者が専有)、第79条(出版権の設定。電子計算機の映像面に表示する方式の記録媒体での頒布と公衆送信を含む)、第80条第1項・第3項(出版権の内容。他人への複製・公衆送信の許諾は複製権等保有者の承諾を得た場合に限る)、第83条(存続期間は設定行為による。定めが無いときは最初の出版行為等から3年で消滅) | e-Gov 法令API: 著作権法 | 2026-10-15 |
二次利用を許諾できるか、契約と覚書をどう読み合わせるかは、各社の法務と、必要に応じて著者・代理人・弁護士との確認に従ってください。 本記事は Google Cloud の公式ドキュメントと e-Gov の法令データで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1632)についてのご相談はこちらから。
