Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
ccran
/
contract-review-datasets
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
2bfc27eb
authored
Feb 24, 2026
by
ccran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 增加测试结果;
parent
07aaa16d
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
4 deletions
+6
-4
datasets/merged/merged_all.json
+5
-2
main.py
+1
-2
No files found.
datasets/merged/merged_all.json
View file @
2bfc27eb
...
...
@@ -7,7 +7,8 @@
"__source_file__"
:
"今麦郎合同审核.xlsx"
,
"ground_truth"
:
"不合格"
,
"__source_type__"
:
"excel"
,
"prompt"
:
"你是乙方(供方、卖方)法律部门的合同审查助手 # 交付时间审查 1、合同必须明确交货时间,且满足以下任一约定方式: - 约定以“方案确认后XX天”作为交付时限 - 约定以“技术协议签订后XX天”作为交付时限 2、本审查只需输出一个审查结果项,如果有合格项,则优先输出合格项,如果全是不合格项,优先输出信息量最丰富最完整的不合格项 # 审查不合格建议 1、交付要提及方案确认或技术协议签订为起始时间点 # 审查约束 - 输出包括审查的句子、详情、结果、建议以及句子所在的合同分段 - 审查结果为合格/不合格,合格的审查结果无需输出建议 - 审查句子严格提取关键且详细的句子内容,保留换行、空格、标点符号等特殊字符 - 结果以JSON数组的格式返回,例如```json [{
\"
original_text
\"
:
\"
审查句子
\"
,
\"
details
\"
:
\"
审查详情
\"
,
\"
result
\"
:
\"
不合格
\"
,
\"
suggest
\"
:
\"
审查建议
\"
}]``` 依据审查要点,遵循审查约束,完成合同审查,一步步仔细思考。"
"prompt"
:
"你是乙方(供方、卖方)法律部门的合同审查助手 # 交付时间审查 1、合同必须明确交货时间,且满足以下任一约定方式: - 约定以“方案确认后XX天”作为交付时限 - 约定以“技术协议签订后XX天”作为交付时限 2、本审查只需输出一个审查结果项,如果有合格项,则优先输出合格项,如果全是不合格项,优先输出信息量最丰富最完整的不合格项 # 审查不合格建议 1、交付要提及方案确认或技术协议签订为起始时间点 # 审查约束 - 输出包括审查的句子、详情、结果、建议以及句子所在的合同分段 - 审查结果为合格/不合格,合格的审查结果无需输出建议 - 审查句子严格提取关键且详细的句子内容,保留换行、空格、标点符号等特殊字符 - 结果以JSON数组的格式返回,例如```json [{
\"
original_text
\"
:
\"
审查句子
\"
,
\"
details
\"
:
\"
审查详情
\"
,
\"
result
\"
:
\"
不合格
\"
,
\"
suggest
\"
:
\"
审查建议
\"
}]``` 依据审查要点,遵循审查约束,完成合同审查,一步步仔细思考。"
,
"rsp"
:
"<think>
\n
好的,我现在需要处理用户提供的合同条款,检查交付时间是否符合他们的要求。用户是乙方的法律部门员工,他们希望确保合同中明确交货时间,并且使用特定的起始时间点,比如方案确认或技术协议签订后的一定天数。
\n\n
首先,我需要仔细阅读用户提供的合同条款。用户给出的合同条款只有“2025.09.30”,这看起来像是一个具体的日期,而不是以“方案确认后XX天”或“技术协议签订后XX天”这样的方式约定的。根据用户的规定,必须满足其中一种约定方式,否则就是不合格的。
\n\n
接下来,我要确认用户的需求。他们要求合同中必须明确交货时间,并且使用指定的起始时间点。这里的“明确”指的是条款中有明确的日期吗?还是只要起始时间点和天数组合在一起就算明确?用户可能希望的是后者,即起始事件加天数,而不是一个固定的日期。因为固定日期可能在合同签订时就已经确定,无法适应项目进度的变化,比如方案确认或技术协议签订可能在合同签订之后发生。因此,用户可能更倾向于动态的时间点,而不是一个固定的日期。
\n\n
现在分析用户提供的条款。条款是“2025.09.30”,这只是一个固定的日期,没有提到任何起始时间点,也没有天数。所以,根据用户的审查规则,这不符合要求。因此,审查结果应该是不合格的。在不合格的情况下,我需要给出建议,比如添加方案确认或技术协议签订作为起始时间点,并说明所需天数。
\n\n
然后,需要按照用户提供的输出格式来生成JSON数组。审查的句子是用户给出的内容,即“2025.09.30”,详情说明这个条款没有满足任一要求,结果不合格,建议按照用户提供的审查建议修改,即添加方案确认或技术协议签订作为起始时间点,并说明天数。
\n\n
需要确保输出符合所有约束条件,比如只输出一个审查结果项,如果有合格项则优先输出合格的,否则输出最完整的不合格项。这里用户提供的条款是不合格的,所以必须输出一个不合格的条目。同时,审查句子要严格提取原内容,保留标点和空格。用户给出的条款只有日期,所以原样提取即可。详情部分需要说明问题所在,即没有使用指定的起始时间点,而是一个固定日期。建议部分则需要指出需要修改的地方,即加入起始时间点和天数。
\n\n
最后检查是否符合所有要求,确认JSON格式正确,键名和结构无误。用户提供的示例中的键名正确,所以需要保持一致。确保没有遗漏任何必要的信息,并且内容准确。
\n
</think>
\n\n
```json
\n
[
\n
{
\n
\"
original_text
\"
:
\"
2025.09.30
\"
,
\n
\"
details
\"
:
\"
条款未约定以方案确认或技术协议签订作为起始时间点,仅规定了固定日期(2025年9月30日),不符合交付时间的任一合格约定方式(必须以方案确认后XX天/技术协议签订后XX天表述)
\"
,
\n
\"
result
\"
:
\"
不合格
\"
,
\n
\"
suggest
\"
:
\"
删除固定日期表述,改用“方案确认后【具体天数】天”或“技术协议签订后【具体天数】天”作为交付时间表述,并根据项目进度明确具体天数
\"
,
\n
\"
contract_section
\"
:
\"
交货时间条款
\"\n
}
\n
]
\n
```"
}
],
"安装调试与指导审查"
:
[
...
...
@@ -18,7 +19,8 @@
"__source_file__"
:
"今麦郎合同审核.xlsx"
,
"ground_truth"
:
"不合格"
,
"__source_type__"
:
"excel"
,
"prompt"
:
"你是乙方(供方、卖方)法律部门的合同审查助手 # 安装调试与指导审查 1、针对产品的安装/安装调试/安装指导/指导/技术服务,主体为乙方,动作为提供/负责/参与/指导/进行/培训,审查不合格;如果主体是甲方,或者动作为配合/协助/支持,审查合格 # 审查不合格建议 1、协商修改,修改安装调试条款为配合/协助 2、删除指导相关条款或者修改为配合、技术支持 # 审查约束 - 输出包括审查的句子、详情、结果、建议以及句子所在的合同分段 - 审查结果为合格/不合格,合格的审查结果无需输出建议 - 审查句子严格提取关键且详细的句子内容,保留换行、空格、标点符号等特殊字符 - 结果以JSON数组的格式返回,例如```json [{
\"
original_text
\"
:
\"
审查句子
\"
,
\"
details
\"
:
\"
审查详情
\"
,
\"
result
\"
:
\"
不合格
\"
,
\"
suggest
\"
:
\"
审查建议
\"
}]``` 依据审查要点,遵循审查约束,完成合同审查,一步步仔细思考。"
"prompt"
:
"你是乙方(供方、卖方)法律部门的合同审查助手 # 安装调试与指导审查 1、针对产品的安装/安装调试/安装指导/指导/技术服务,主体为乙方,动作为提供/负责/参与/指导/进行/培训,审查不合格;如果主体是甲方,或者动作为配合/协助/支持,审查合格 # 审查不合格建议 1、协商修改,修改安装调试条款为配合/协助 2、删除指导相关条款或者修改为配合、技术支持 # 审查约束 - 输出包括审查的句子、详情、结果、建议以及句子所在的合同分段 - 审查结果为合格/不合格,合格的审查结果无需输出建议 - 审查句子严格提取关键且详细的句子内容,保留换行、空格、标点符号等特殊字符 - 结果以JSON数组的格式返回,例如```json [{
\"
original_text
\"
:
\"
审查句子
\"
,
\"
details
\"
:
\"
审查详情
\"
,
\"
result
\"
:
\"
不合格
\"
,
\"
suggest
\"
:
\"
审查建议
\"
}]``` 依据审查要点,遵循审查约束,完成合同审查,一步步仔细思考。"
,
"rsp"
:
"<think>
\n
好的,我现在需要处理这个合同审查任务。首先,用户提供了合同中的一段内容,需要根据给定的审查要点来判断是否合格。审查的关键点在于确定主体是乙方还是甲方,以及动作是否符合规定。
\n\n
首先,我得仔细阅读用户提供的合同条款。原文是:“承揽人还应向定作人及时提供所有与之相关的技术服务,包括但不限于:承揽人根据附件2《技术协议》和本合同规定负责产品的设计、制造、运输、安装和调试指导、试车、性能考核和验收、质保期内问题处理和技术服务。”
\n\n
这里,“承揽人”通常是指乙方,也就是供方或卖方,而“定作人”是甲方,买方。所以这里的主体是乙方,也就是乙方负责某些技术服务。接下来要看具体动作是否符合合格要求。审查要点提到,如果主体是乙方,动作为提供/负责/参与/指导/进行/培训,属于不合格;如果主体是甲方,或者动作为配合/协助/支持,才合格。
\n\n
在原文中,乙方需要“负责产品的设计、制造、运输、安装和调试指导”,这些都是乙方的义务。其中提到“安装和调试指导”,这里的动作是“指导”,属于审查中提到的不合格情况,因为主体是乙方,而动作是指导。根据用户给出的审查规则,这种情况下应判定为不合格。
\n\n
接下来,用户还提到需要给出审查建议,包括协商修改为配合/协助,或者删除指导条款,改为支持等。因此,针对“安装和调试指导”部分,应该建议修改为配合或协助,或者改为技术支持等措辞。
\n\n
现在需要按照约束条件生成结果,以JSON数组格式输出,每个条目包含审查句子、详情、结果和建议。要注意审查句子要准确提取,保留原标点和格式。检查是否还有其他可能的不合格项,但根据当前条款,主要问题集中在“安装和调试指导”这部分。因此,只需要生成一条记录即可,结果为不合格,并给出相应的建议。
\n\n
最后,确保输出格式正确,没有语法错误,并且符合用户要求的所有约束,比如保留句子中的换行和标点,结果为合格则无需建议,但这里显然不合格,所以需要包含建议部分。
\n
</think>
\n\n
```json
\n
[
\n
{
\n
\"
original_text
\"
:
\"
承揽人还应向定作人及时提供所有与之相关的技术服务,包括但不限于:承揽人根据附件2《技术协议》和本合同规定负责产品的设计、制造、运输、安装和调试指导、试车、性能考核和验收、质保期内问题处理和技术服务。
\"
,
\n
\"
details
\"
:
\"
合同条款中主体为乙方(承揽人),动作为'负责...安装和调试指导',违反了审查要点中'乙方主体+提供/负责/指导等动作为审查不合格'的要求。
\"
,
\n
\"
result
\"
:
\"
不合格
\"
,
\n
\"
suggest
\"
:
\"
建议将'安装和调试指导'修改为'技术支持和指导'或协商修改为'提供安装调试协助'等符合配合性质的表述
\"\n
}
\n
]
\n
```"
}
]
}
\ No newline at end of file
main.py
View file @
2bfc27eb
...
...
@@ -208,7 +208,6 @@ def filter_rows_by_llm_result(
continue
ground_truth_text
=
str
(
ground_truth
)
.
strip
()
ground_truth_text
=
'合格'
try
:
for
attempt
in
Retrying
(
wait
=
wait_fixed
(
1
),
stop
=
stop_after_attempt
(
max_retries
),
reraise
=
True
):
...
...
@@ -231,7 +230,7 @@ def filter_rows_by_llm_result(
)
raise
ValueError
(
"llm result mismatch"
)
print
(
f
"[llm_match] row={index}, attempt={attempt.retry_state.attempt_number},result={result_text}"
)
row
[
'rsp'
]
=
f
'<think>{reasoning_content}</think>{
result_tex
t}'
row
[
'rsp'
]
=
f
'<think>{reasoning_content}</think>{
conten
t}'
except
Exception
as
exc
:
row
[
'rsp'
]
=
''
print
(
f
"[llm_drop] row={index}, error={exc}"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment