01 シナリオ概要
在企業契約書管理業務中、法務部门必要对每一份契約書进行系统性レビュー、主要关注以下三个维度:- 財務条項レビュー:金額计算と大小写整合性、税率コンプライアンス性、支払条件と比例明確性、違約金/滞纳金妥当性など。
- 法務コンプライアンスレビュー:必备条項完全性、締結当事者情報整合性、权力义务明確性、知的財産権归属など。
- 文面品質レビュー:数字计算チェック、条項間ロジック整合性、誤字と意味の曖昧さチェックなど。
契約書レビューシナリオ必要なのは設定1 つのファイルカテゴリ(購買契約書)、但規則较多(3 个規則グループ、22 条規則)、覆盖契約書レビュー的常见风险点。
02 業務フロー

ワークスペース、ファイルカテゴリレビュー規則リポジトリ必要なのは設定一次、以降可持续再利用——直接アップロード新的契約書ファイル并作成新的レビュータスク即可。本例为演示完全なフロー、将設定ステップ和処理ステップ放在同一段コード中実行。
03 前提条件
- TextIn コンソール にログインし、
x-ti-app-idとx-ti-secret-codeを取得します - サンプルファイル、或使用自己的購買契約書ファイル
04 カテゴリとフィールド設定
本例只設定1 つのファイルカテゴリ:購買契約書。契約書是複雑的长文書、フィールド较多、建议使用 Model 2(複雑文書理解) 以获得更准确的抽出效果。購買契約書(サンプル:sample_contract.docx)
購買契約書(サンプル:sample_contract.docx)
購買契約書含む当事者情報、対象条項、財務条項、法務条項など複数の维度的フィールド、全部为基本情報フィールド:
| フィールド名 | タイプ |
|---|---|
| 契約書番号 | 基本情報フィールド |
| 契約書名称 | 基本情報フィールド |
| 締結日 | 基本情報フィールド |
| 発効条件 | 基本情報フィールド |
| 甲正式名称 | 基本情報フィールド |
| 甲統一社会信用コード | 基本情報フィールド |
| 甲連絡先 | 基本情報フィールド |
| 甲住所 | 基本情報フィールド |
| 乙正式名称 | 基本情報フィールド |
| 乙統一社会信用コード | 基本情報フィールド |
| 乙連絡先 | 基本情報フィールド |
| 乙住所 | 基本情報フィールド |
| 乙法定代表者/委任代理人 | 基本情報フィールド |
| 対象名称 | 基本情報フィールド |
| 対象規格型番/基準 | 基本情報フィールド |
| 対象技術/品質基準 | 基本情報フィールド |
| 対象数量/サービス范围 | 基本情報フィールド |
| 税込合計金額(大文字表記) | 基本情報フィールド |
| 不税込金額 | 基本情報フィールド |
| 税額 | 基本情報フィールド |
| 税率 | 基本情報フィールド |
| 請求書条項 | 基本情報フィールド |
| 支払方法 | 基本情報フィールド |
| 支払条件 | 基本情報フィールド |
| 支払比例 | 基本情報フィールド |
| 支払サイト | 基本情報フィールド |
| 受取口座情報 | 基本情報フィールド |
| 履行期限 | 基本情報フィールド |
| 履行地点 | 基本情報フィールド |
| 交付/検収基準とフロー | 基本情報フィールド |
| 違約責任 | 基本情報フィールド |
| 免责条項 | 基本情報フィールド |
| 紛争解決方法 | 基本情報フィールド |
| 契約書解除と终止条件 | 基本情報フィールド |
| 秘密保持条項 | 基本情報フィールド |
| 知的財産権声明 | 基本情報フィールド |
| 契約書部数 | 基本情報フィールド |
| 添付資料一覧 | 基本情報フィールド |
| 締結人签字/盖章 | 基本情報フィールド |
05 レビュー規則設定
本例的レビュー規則リポジトリ含む 3 个規則グループ、22 条レビュー規則、全面覆盖契約書レビュー的常见风险:規則グループ 1:財務条項レビュー(12 条規則)
規則グループ 1:財務条項レビュー(12 条規則)
| 規則名 | リスクレベル | レビュー条件 |
|---|---|---|
| 连带责任条項 | ● 中リスク | 若存在三方关系(発行方/支払方/締結当事者一致しません)、契約書须明确各方债权债务关系 |
| 履行保证金条項 | ● 中リスク | 若取り決めます保证金/质保金、须明确退还条件、时间节点及不予退还的情形 |
| 滞纳金/違約金妥当性 | ● 中リスク | 逾期支払或逾期交付的違約金日费率 ≤ 0.05% |
| 検収/交付基準明確性 | ● 中リスク | 契約書须明确交付完了的判定基準 |
| 币别整合性 | ● 中リスク | 契約書全文涉及金額的币别须前后一致 |
| 支払方法明確性 | ● 中リスク | 支払方法须为銀行转账、承兑汇票或第三方支付之一 |
| 支払条件明確性 | ● 中リスク | 支払节点和期限须明确 |
| 税率妥当性 | ● 高リスク | 税率须为有效值(6%/9%/13%/1%/3%/免税/0%)且と契約書対象タイプ照合 |
| 支払比例合計 | ● 高リスク | 分阶段支払比例合計须など于 100% |
| プロダクト明细合計と合計金額整合性 | ● 高リスク | 各明细行単価×数量=金額、すべての明細行金額合計=契約書合計金額(許容±0.01元) |
| 金額コンプライアンスチェック | ● 高リスク | 不税込金額×税率=税額。不税込金額+税額=税込合計金額(許容±0.01元尾差) |
| 契約書金額大小写整合性 | ● 高リスク | 大小写金額须一致。仅有大文字表記时チェック中文金額书写规范 |
規則グループ 2:法務コンプライアンスレビュー(9 条規則)
規則グループ 2:法務コンプライアンスレビュー(9 条規則)
| 規則名 | リスクレベル | レビュー条件 |
|---|---|---|
| 不可抗力条項 | ● 低リスク | 须含む不可抗力条項且定義清晰(范围、通知时限、责任豁免方法) |
| 秘密保持条項完全性 | ● 低リスク | 保密情報定義、保密期限、違約責任三要素齐全 |
| 知的財産権归属 | ● 低リスク | 涉及技術开发/软件开发时、须有明确的知的財産権归属条項 |
| 違約金上限妥当性 | ● 低リスク | 違約金须設定上限(如不超過契約書合計金額的 20%) |
| 违约对など性チェック | ● 低リスク | 甲乙双方逾期違約金比例差异不超過设定阈值(如 ≥50% 时标记) |
| 契約書日付妥当性 | ● 中リスク | 締結日 ≤ 生效日付 ≤ 到期日付。生效日付不得早于当前日付 |
| 締結当事者名称整合性 | ● 高リスク | 契約書首部、尾部署名・押印处、正文中的締結当事者名称须完全一致 |
| 締結当事者情報完全性 | ● 高リスク | 甲乙双方的名称、住所、連絡先均不空 |
| 必备条項完全性 | ● 高リスク | 须含む当事者情報、対象、数量、价款、履行期限、違約責任、紛争解決など必备条項 |
規則グループ 3:文面品質と整合性レビュー(3 条規則)
規則グループ 3:文面品質と整合性レビュー(3 条規則)
| 規則名 | リスクレベル | レビュー条件 |
|---|---|---|
| 数字计算チェック | ● 低リスク | 単価×数量=金額(每行)。各分项金額合計=契約書合計金額 |
| 内部整合性チェック | ● 中リスク | 条項間ロジック无矛盾:支払条件と交付条項不冲突、金額前后一致、期限起止合理 |
| 誤字/语义错误チェック | ● 低リスク | チェック誤字、用词不当、意味の曖昧さ |
06 コード構成
例コード将完全な七步フローまとめて実行。在実際本番中、ステップ 1、2、5 必要なのは一度だけ実行。以降レビュー新契約書时、必要なのは繰り返すステップ 3、4、6、7、直接再利用既存の設定即可。参照: 契約書レビューシナリオ(完了済み設定)。 例コード中的関数分为两类、理解この一点有助于照合 API 文書进行デバッグ和拡張。2 種類の関数
REST API 呼び出し関数 — 各関数は API エンドポイントを直接ラップします、関数パラメータとAPI文書対応:| 関数(Python) | メソッド(Java) | 対応する API エンドポイント | 説明 |
|---|---|---|---|
create_workspace | createWorkspace | POST /workspace/create | ワークスペースを作成、workspace_id を返す |
create_category | createCategory | POST /category/create | ファイルカテゴリを作成し、サンプルをアップロード、category_id を返す |
upload_file | uploadFile | POST /file/upload | 非同期でファイルをアップロードし、batch_number を返します。結果取得にはポーリングが必要です |
upload_file_sync | uploadFileSync | POST /file/upload/sync | 同期でファイルをアップロードし、抽出結果を直接返します。ポーリングは不要です |
create_rule_repo | createRuleRepo | POST /review/rule_repo/create | レビュー規則リポジトリを作成、repo_id を返す |
create_rule_group | createRuleGroup | POST /review/rule_group/create | 在規則リポジトリ内規則グループを作成、group_id を返す |
create_rule | createRule | POST /review/rule/create | 在規則グループ内レビュー規則を作成、適用カテゴリを紐付け |
submit_review_task | submitReviewTask | POST /review/task/submit | レビュータスクを送信し、レビュー task_id を返します |
| 関数(Python) | メソッド(Java) | 役割 |
|---|---|---|
_headers | authHeaders | 認証リクエストヘッダーを構築 |
_check | checkResponse | レスポンス code を検証し、例外処理を統一 |
_mime | mimeType | 拡張子から MIME タイプを推定 |
wait_for_result | waitForResult | ループでポーリング file/fetch、抽出完了を待機 |
display_result | displayResult | 抽出結果を整形して出力 |
wait_for_review | waitForReview | ループでポーリング review/task/result、レビュー完了を待機 |
display_review_result | displayReviewResult | レビュー結果を整形して出力 |
ステップ別コード説明
ステップ 2:作成購買契約書カテゴリ
ステップ 2:作成購買契約書カテゴリ
契約書フィールド较多、直接在
create_category 的 fields パラメータ中一度だけの传入所有フィールド、不要额外调用 batch_add_category_fields。- Python
- Java
ステップ 3:処理対象ファイルをアップロード
ステップ 3:処理対象ファイルをアップロード
DocFlow 提供两种アップロード方法:方法 2:同期アップロード(抽出結果を直接返す、スキップステップ 4)
- 非同期アップロード
file/upload:立即返すbatch_number、需配合ステップ 4 ポーリングfile/fetch取得結果、適しています一括并行アップロード - 同期アップロード
file/upload/sync: 処理完了まで待機し、抽出結果を直接返します(構造はfile/fetchと同じ)。ポーリングは不要で、シンプルな連携や少数ファイルのリアルタイム処理に適しています。
- Python
- Java
- Python
- Java
ステップ 4:抽出結果を取得(同期アップロード使用時は省略可能)
ステップ 4:抽出結果を取得(同期アップロード使用時は省略可能)
若ステップ 3 使用了同期アップロード
file/upload/sync、则已直接获得抽出結果、可スキップ本ステップ。fields 数组含む所有抽出到的フィールド和值。- Python
- Java
抽出結果の例

レビュー結果の例

07 完全なサンプルコードのダウンロード
完全な実行可能コード(Python 版、Java 版)は、ドキュメントリポジトリのexamples/ ディレクトリに同梱されています:
Python 例
確認 Python 完全な例コード
Java 例
確認 Java 完全な例コード
08 サンプルの実行
- Python
- Java
環境要件:Python 3.8+1. 依存関係をインストール2. 入力設定開き 3. 実行
contract_review.py、入力ファイル上部的設定項目:想定されるコンソール出力
成功実行后、コンソール将出力如下内容(workspace_id、category_id など ID 因実行环境不同而变化):09 結果の説明
抽出結果
処理完了後、契約書ファイルの分類結果とフィールド抽出結果が返されます。フィールド抽出結果はdata.fields[] に格納され、各フィールドには key、value、座標情報 position が含まれます(原文のハイライト表示に利用できます)。契約書シナリオでは Model 2(複雑文書理解) を使用することで、長文書の理解とフィールド抽出の精度を高められます。
以下は、購買契約書サンプルファイルに対する実際の API レスポンス例です(file/fetch から取得。一部の position 座標は省略しています)。
sample_contract.docx
sample_contract.docx
レビュー結果
レビュー完了後、review/task/result API から次の情報を取得できます:
status:タスク全体のステータス(1=レビュー合格、4=レビュー不合格、2=レビュー失敗)statistics:規則合格数、不合格数汇总groups[].review_tasks[]:各規則的詳細レビュー結果、含む:review_result:この規則的レビュー結論(1=合格、4=不合格)reasoning:AI によるレビュー根拠の説明anchors:原文内で根拠となる座標位置(ハイライト表示に利用できます)

