Commit 663fd9f2 by ccran

feat: fix review bugs;

parent 300ece59
...@@ -46,7 +46,7 @@ FILE_SUFFIX = "-审核批注" ...@@ -46,7 +46,7 @@ FILE_SUFFIX = "-审核批注"
## 关键参数** ## 关键参数**
use_non_fastgpt_llm = False use_non_fastgpt_llm = False
use_lufa = True use_lufa = False
use_jp_machine = True use_jp_machine = True
## 关键参数** ## 关键参数**
...@@ -68,9 +68,9 @@ else: ...@@ -68,9 +68,9 @@ else:
base_fastgpt_url = "http://192.168.252.71:18088" base_fastgpt_url = "http://192.168.252.71:18088"
base_backend_url = "http://192.168.252.71:48080" base_backend_url = "http://192.168.252.71:48080"
else: else:
outer_backend_url = "http://172.21.107.45:48080" outer_backend_url = "https://172.21.107.45:48080"
base_fastgpt_url = "http://172.21.107.45:3030" base_fastgpt_url = "http://172.21.107.45:3030"
base_backend_url = "http://172.21.107.45:48080" base_backend_url = "http://172.21.107.45:1122"
ocr_url = "http://172.21.107.45:8202/openapi/ocrUploadFile" ocr_url = "http://172.21.107.45:8202/openapi/ocrUploadFile"
segment_review_api_key = ( segment_review_api_key = (
"fastgpt-vLu2JHAfqwEq5FUQhvATFDK0yDS6fs804v7KwWBMyU4sRrHzh4UGl89Zpa" "fastgpt-vLu2JHAfqwEq5FUQhvATFDK0yDS6fs804v7KwWBMyU4sRrHzh4UGl89Zpa"
......
...@@ -309,7 +309,7 @@ class SegmentReviewTool(LLMTool): ...@@ -309,7 +309,7 @@ class SegmentReviewTool(LLMTool):
party_role: str, party_role: str,
context_summaries: Optional[List[Dict]] = None, context_summaries: Optional[List[Dict]] = None,
context_memories: Optional[List[Dict]] = None, context_memories: Optional[List[Dict]] = None,
merge_rules_prompt: bool = True, merge_rules_prompt: bool = False,
) -> Dict: ) -> Dict:
rules = rules or [] rules = rules or []
result = self._evaluate_rules( result = self._evaluate_rules(
...@@ -372,7 +372,9 @@ class SegmentReviewTool(LLMTool): ...@@ -372,7 +372,9 @@ class SegmentReviewTool(LLMTool):
context_memories: Optional[List[Dict]], context_memories: Optional[List[Dict]],
) -> List[Dict[str, str]]: ) -> List[Dict[str, str]]:
ruleset_text = "\n\n".join([self._stringify_rule(rule) for rule in rules]) ruleset_text = "\n\n".join([self._stringify_rule(rule) for rule in rules])
user_content = REVIEW_USER_PROMPT.format( user_content = (
REVIEW_USER_PROMPT_JP if not use_lufa else REVIEW_USER_PROMPT_LF
).format(
segment_id=segment_id, segment_id=segment_id,
segment_text=segment_text, segment_text=segment_text,
party_role=party_role, party_role=party_role,
...@@ -494,24 +496,27 @@ class SegmentReviewTool(LLMTool): ...@@ -494,24 +496,27 @@ class SegmentReviewTool(LLMTool):
if __name__ == "__main__": if __name__ == "__main__":
tool = SegmentReviewTool() tool = SegmentReviewTool()
segment_text = """ segment_text = """
answer: 1.1“甲方(买方)”是指【冕宁县穗发新能源有限公司 】,包括其指定继承人(其指定继承人将全面继承需方在本合同的权利、义务和责任)。 买方取消订单时,卖方有证据证明其已经安排生产的,如是定制产品,买方应当按取消订单产品价款的80%向卖方赔偿损失;如是常规产品,买方应当按照取消订单部分产品价款的50%向卖方赔偿损失。
answer: 14.11由于买方与卖方的合同分包商和外购设备供货商没有直接的合同关系,故本合同设备的卖方的分包和外购设备的付款由卖方负责。但如果发生由于个别原因(包括但不限于买方虽按时向卖方付款而卖方没有按时向其分包商或外购设备供货商付款等情形)导致卖方的分包和外购设备有可能无法按时交货以至于影响施工进度的情况,买方有权暂时中止向卖方付款。在卖方向其分包商或外购设备供货商支付相关款项后,买方将继续向卖方付款,同时买方还将追究卖方延误工期的责任。如果卖方仍未向其分包商或外购设备供货商付款,买方将出于保障工程进度的目的,有权直接向其分包商或外购设备供货商付款。但在此情况下,卖方必须协助买方同卖方的分包商或外购设备供货商另行签订转付款协议书,同时该协议书中此转付款连同买方发生的贷款利息将从下一笔买方向卖方的应付款中扣除。 """
answer: 14.12若买方认为卖方因财务或其他问题未能履行本合同内的义务,买方有权自行或另请其他方履行本合同余下的义务。卖方保证分包合同中将载有规定,在卖方无法继续经营或履行分包合同的情况下,卖方在各分包合同下的权利自动转让给买方或买方指定的其他方。
answer: 20.8.2 卖方资质出现失效、未通过年审(年检)或被主管部门注销的,买方有权单方面解除合同并将合同未完成事项转由有资质的单位承接,已完成的事项按实结算。如因上述情形导致买方损失的,卖方应予完全赔偿。 """
result = tool.run( result = tool.run(
segment_id=1, segment_id=1,
segment_text=segment_text, segment_text=segment_text,
rules=[ rules=[
{ {
"title": "第三方审查", "title": "变更取消责任审查",
"rule": """ "rule": """
1)货款支付不能涉及第三方(业主或委托付款方) 1)我司不能接受,买方单方面变更或取消合同,同时又未明确责任或者责任过轻不足以弥补损失
2)不能明确提及甲方将履行义务转移给第三方(业主或委托付款方) 2)我司不能接受,甲方合同发生变更同时又未明确甲方违约金额
3)买方转移债务到第三方(业主或委托付款方),由卖方直接向第三方(业主或委托付款方)行使债权,审查不合格 3)我司不能接受,甲方中途退货没有规定甲方违约责任或甲方违约金额低于80%(定制产品)/50%(常规产品)
""", """,
"case":"""
## 案例1:
原文:买方取消订单时,卖方有证据证明其已经安排生产的,如是定制产品,买方应当按取消订单产品价款的80%向卖方赔偿损失;如是常规产品,买方应当按照取消订单部分产品价款的50%向卖方赔偿损失。
结论:审查合格,定制产品为80%的额度,常规产品为50%的额度
"""
} }
], ],
party_role="麓谷发展", party_role="甲方",
) )
print(json.dumps(result, ensure_ascii=False, indent=2)) print(json.dumps(result, ensure_ascii=False, indent=2))
......
No preview for this file type
...@@ -113,7 +113,7 @@ def _resolve_download_filename(url: str, response: requests.Response) -> str: ...@@ -113,7 +113,7 @@ def _resolve_download_filename(url: str, response: requests.Response) -> str:
# 下载url到本地path # 下载url到本地path
def download_file(url, path, input_url_to_inner=True): def download_file(url, path, input_url_to_inner=True):
if not url.startswith("http:"): if not url.startswith("http:") and not url.startswith("https:"):
url = base_fastgpt_url + url url = base_fastgpt_url + url
url = url.replace(outer_backend_url, base_backend_url) url = url.replace(outer_backend_url, base_backend_url)
logger.info(f"url准备下载:{url}") logger.info(f"url准备下载:{url}")
...@@ -146,5 +146,5 @@ def url_replace_fastgpt(origin: str): ...@@ -146,5 +146,5 @@ def url_replace_fastgpt(origin: str):
if __name__ == "__main__": if __name__ == "__main__":
# d = '/home/ccran/file.docx' # d = '/home/ccran/file.docx'
d = "/home/ccran/lufa-contract/tmp/default.json" d = "/Users/chenran/VsProject/lufa-contract/demo/2020100593中建大成建筑(B类).pdf"
print(upload_file(d)) print(upload_file(d))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment