#!/usr/bin/env python3 """合同知识库和 Agent 提示词。合同原文不在仓库里,先在页面上传。 现网知识库 id 是 71042108-5f9a-4856-a0db-4359e8e7fa98。 空白环境上传后用接口返回的新 id,不要拿这个旧 id 再索引一份。 """ DATASET_NAME = "阿里云合同条款" PROVIDER = "langgenius/xinference/xinference" SYSTEM_PROMPT = """# 角色 你是【阿里云框架合同解析智能Agent】,服务采购、IT、法务。只解析阿里云框架协议、服务条款、补充协议、订单、账单、SLA、免责、费用、终止、数据安全。其他问题请用户找对应负责人。 # 检索 需要合同原文时,调用一次 knowledge_base_search:set_name 为「Retrieval 1」,query 只用条款主题加关键词。 本轮对话已经引用过该条款原文时,直接作答。 没有命中时,只回复:【知识库未检索到本合同相关条款,请查阅原件或咨询法务/阿里云客户经理】。 # 作答 结论必须带章节或条款号,并摘一句原文。立场是甲方。框架与订单或补充协议冲突时,写明以订单/补充协议为准。 一问一答只答所问:加粗结论、一句原文、风险色标、一条建议。 用户要求总结或报告时,输出三块:【核心信息摘要】【关键条款清单】【风险清单与建议】。报告优先看:主体与期限、计费与最低消费、SLA 与赔付上限、数据与保密、责任上限与间接损失、终止与数据留存、管辖与单方变更。 🔴高风险:责任上限过低、免除重大损失、数据迁出限制、无 SLA 赔付、自动续费无提前告知、单方变更条款。 🟡中风险:表述模糊、期限不清、流程繁琐、赔付条件苛刻。 🟢低风险:常规商业条款。 每条风险包含:原文摘抄、风险说明、我方建议。 只做条款解读、提取、对比、风险识别和摘要。签署结论留给法务。 每次回复末尾加:本内容仅为合同条款辅助解析,不构成法律意见,合同签署前务必由公司法务最终审核。 只有用户要求总结或报告时,最后再问:是否需要整理成精简关键条款清单?""" retrieval_model = { "search_method": "hybrid_search", "reranking_enable": True, "reranking_mode": "reranking_model", "reranking_model": { "reranking_provider_name": PROVIDER, "reranking_model_name": "bge-reranker-v2-m3", }, "top_k": 4, "score_threshold_enabled": False, "weights": { "weight_type": "customized", "vector_setting": { "vector_weight": 0.7, "embedding_provider_name": PROVIDER, "embedding_model_name": "bge-m3", }, "keyword_setting": {"keyword_weight": 0.3}, }, } init_body = { "name": DATASET_NAME, "indexing_technique": "high_quality", "doc_form": "text_model", "doc_language": "Chinese", "embedding_model": "bge-m3", "embedding_model_provider": PROVIDER, "process_rule": {"mode": "automatic"}, "retrieval_model": retrieval_model, } knowledge_set = { "id": "retrieval-1", "name": "Retrieval 1", "description": "阿里云框架合同原文及附件", "query": {"mode": "generated_query"}, "retrieval": { "mode": "multiple", "top_k": 4, "reranking_mode": "reranking_model", "reranking_enable": True, "reranking_model": {"provider": PROVIDER, "model": "bge-reranker-v2-m3"}, }, "metadata_filtering": {"mode": "disabled"}, } print("系统提示词字数", len(SYSTEM_PROMPT)) print("创建知识库 POST /console/api/datasets/init") print("查询模式用 generated_query。user_query 会在页面打开时查固定句子。") print("保存草稿 PUT /console/api/agent//composer ,save_strategy=save_to_current_version") print("发布 POST /console/api/agent//publish")